diff --git a/.travis.yml b/.travis.yml index 574714467460..7f869554c6af 100644 --- a/.travis.yml +++ b/.travis.yml @@ -174,6 +174,9 @@ matrix: script: - ${MVN} test -pl 'web-console' + - name: "docs" + script: cd website && npm install && npm run lint + - name: "batch index integration test" services: &integration_test_services - docker diff --git a/docs/_bin/make-redirects.py b/docs/_bin/make-redirects.py deleted file mode 100755 index ac645c79fee1..000000000000 --- a/docs/_bin/make-redirects.py +++ /dev/null @@ -1,65 +0,0 @@ -#!/usr/bin/env python3 - -# Licensed to the Apache Software Foundation (ASF) under one or more -# contributor license agreements. See the NOTICE file distributed with -# this work for additional information regarding copyright ownership. -# The ASF licenses this file to You 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 json -import os -import sys - -def normalize_target(redirect): - dirname = os.path.dirname(redirect["source"]) - normalized = os.path.normpath(os.path.join(dirname, redirect["target"])) - return normalized - -if len(sys.argv) != 3: - sys.stderr.write('usage: program \n') - sys.exit(1) - -docs_directory = sys.argv[1] -redirect_json = sys.argv[2] - -with open(redirect_json, 'r') as f: - redirects = json.loads(f.read()) - -all_sources = {} - -# Index all redirect sources -for redirect in redirects: - all_sources[redirect["source"]] = 1 - -# Create redirects -for redirect in redirects: - source = redirect["source"] - target = redirect["target"] - source_file = os.path.join(docs_directory, source) - - # Ensure redirect source doesn't exist yet. - if os.path.exists(source_file): - raise Exception('Redirect source is an actual file: ' + source) - - # Ensure target *does* exist, if relative. - if not target.startswith("/"): - target_file = os.path.join(docs_directory, normalize_target(redirect)) - if not os.path.exists(target_file) and source not in all_sources: - raise Exception('Redirect target does not exist for source: ' + source) - - # Write redirect file - os.makedirs(os.path.dirname(source_file), exist_ok=True) - with open(source_file, 'w') as f: - f.write("---\n") - f.write("layout: redirect_page\n") - f.write("redirect_target: " + target + "\n") - f.write("---\n") diff --git a/docs/_bin/missing-redirect-finder.py b/docs/_bin/missing-redirect-finder.py deleted file mode 100755 index 732cd804f60e..000000000000 --- a/docs/_bin/missing-redirect-finder.py +++ /dev/null @@ -1,54 +0,0 @@ -#!/usr/bin/env python3 - -# Licensed to the Apache Software Foundation (ASF) under one or more -# contributor license agreements. See the NOTICE file distributed with -# this work for additional information regarding copyright ownership. -# The ASF licenses this file to You 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 os -import subprocess -import sys - -deleted_paths_dict = {} - -# assumes docs/latest in the doc repo has the current files for the next release -# deletes docs for old versions and copies docs/latest into the old versions -# run `git status | grep deleted:` on the doc repo to see what pages were deleted and feed that into -# missing-redirect-finder2.py -def main(): - if len(sys.argv) != 2: - sys.stderr.write('usage: program \n') - sys.exit(1) - - druid_docs_path = sys.argv[1] - druid_docs_path = "{}/docs".format(druid_docs_path) - prev_release_doc_paths = os.listdir(druid_docs_path) - for doc_path in prev_release_doc_paths: - if (doc_path != "img" and doc_path != "latest"): - print("DOC PATH: " + doc_path) - - try: - command = "rm -rf {}/{}/*".format(druid_docs_path, doc_path) - outstr = subprocess.check_output(command, shell=True).decode('UTF-8') - - command = "cp -r {}/latest/* {}/{}/".format(druid_docs_path, druid_docs_path, doc_path) - outstr = subprocess.check_output(command, shell=True).decode('UTF-8') - except: - print("error in path: " + doc_path) - continue - -if __name__ == "__main__": - try: - main() - except KeyboardInterrupt: - print('Interrupted, closing.') diff --git a/docs/_bin/missing-redirect-finder2.py b/docs/_bin/missing-redirect-finder2.py deleted file mode 100755 index fd383934384a..000000000000 --- a/docs/_bin/missing-redirect-finder2.py +++ /dev/null @@ -1,49 +0,0 @@ -#!/usr/bin/env python3 - -# Licensed to the Apache Software Foundation (ASF) under one or more -# contributor license agreements. See the NOTICE file distributed with -# this work for additional information regarding copyright ownership. -# The ASF licenses this file to You 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 json -import sys - -# Takes the output of `git status | grep deleted:` on the doc repo -# and cross references deleted pages with the _redirects.json file -if len(sys.argv) != 3: - sys.stderr.write('usage: program \n') - sys.exit(1) - -del_paths = sys.argv[1] -redirect_json_path = sys.argv[2] - -dep_dict = {} -with open(del_paths, 'r') as del_paths_file: - for line in del_paths_file.readlines(): - subidx = line.index("/", 0) - line2 = line[subidx+1:] - subidx = line2.index("/", 0) - line3 = line2[subidx+1:] - dep_dict[line3.strip("\n")] = True - -existing_redirects = {} -with open(redirect_json_path, 'r') as redirect_json_file: - redirect_json = json.load(redirect_json_file) - for redirect_entry in redirect_json: - redirect_source = redirect_entry["source"] - redirect_source = redirect_source.replace(".html", ".md") - existing_redirects[redirect_source] = True - -for dep in dep_dict: - if dep not in existing_redirects: - print("MISSING REDIRECT: " + dep) diff --git a/docs/_bin/npm-license-helper.py b/docs/_bin/npm-license-helper.py deleted file mode 100755 index b6db90b05ac2..000000000000 --- a/docs/_bin/npm-license-helper.py +++ /dev/null @@ -1,73 +0,0 @@ -#!/usr/bin/env python3 - -# Licensed to the Apache Software Foundation (ASF) under one or more -# contributor license agreements. See the NOTICE file distributed with -# this work for additional information regarding copyright ownership. -# The ASF licenses this file to You 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 json -import re -import shutil -import sys - -# Helper program for generating LICENSE contents for dependencies under web-console. -# Generates entries for MIT-licensed deps and dumps info for non-MIT deps. -# Uses JSON output from https://www.npmjs.com/package/license-checker. - -if len(sys.argv) != 3: - sys.stderr.write('usage: program \n') - sys.stderr.write('Run the following command in web-console/ to generate the input license report:\n') - sys.stderr.write(' license-checker --production --json\n') - sys.exit(1) - -license_report_path = sys.argv[1] -license_output_path = sys.argv[2] - -non_mit_licenses = [] - -license_entry_template = "This product bundles {} version {}, copyright {},\n which is available under an MIT license. For details, see licenses/{}.MIT.\n" - -with open(license_report_path, 'r') as license_report_file: - license_report = json.load(license_report_file) - for dependency_name_version in license_report: - dependency = license_report[dependency_name_version] - - match_result = re.match("(.+)@(.+)", dependency_name_version) - dependency_name = match_result.group(1) - nice_dependency_name = dependency_name.replace("/", "-") - dependency_ver = match_result.group(2) - - try: - licenseType = dependency["licenses"] - licenseFile = dependency["licenseFile"] - except: - print("No license file for {}".format(dependency_name_version)) - - try: - publisher = dependency["publisher"] - except: - publisher = "" - - if licenseType != "MIT": - non_mit_licenses.append(dependency) - continue - - fullDependencyPath = dependency["path"] - partialDependencyPath = re.match(".*/(web-console.*)", fullDependencyPath).group(1) - - print(license_entry_template.format(dependency_name, dependency_ver, publisher, nice_dependency_name)) - shutil.copy2(licenseFile, license_output_path + "/" + nice_dependency_name + ".MIT") - - print("\nNon-MIT licenses:\n--------------------\n") - for non_mit_license in non_mit_licenses: - print(non_mit_license) diff --git a/docs/_config.yml b/docs/_config.yml deleted file mode 100644 index 701d46605188..000000000000 --- a/docs/_config.yml +++ /dev/null @@ -1,23 +0,0 @@ -# Licensed to the Apache Software Foundation (ASF) under one or more -# contributor license agreements. See the NOTICE file distributed with -# this work for additional information regarding copyright ownership. -# The ASF licenses this file to You 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. - -name: Druid Documentation - -markdown: redcarpet - -redcarpet: - extensions: ["tables", "no_intra_emphasis", "fenced_code_blocks", "with_toc_data"] - -highlighter: pygments diff --git a/docs/_graphics/druid-dataflow-3.svg b/docs/_graphics/druid-dataflow-3.svg deleted file mode 100644 index 4635ba4b84b8..000000000000 --- a/docs/_graphics/druid-dataflow-3.svg +++ /dev/null @@ -1,21 +0,0 @@ - - - - Produced by OmniGraffle 6.0.1 2013-11-07 21:29ZCanvas 1Layer 1BATCH DATACLIENTCLIENTDATA STREAMCLIENTDEEPSTORAGEDATAQUERIESINDEXINGINDEXINGREALTIMEBROKERHISTORICAL diff --git a/docs/_graphics/druid-dataflow.svg b/docs/_graphics/druid-dataflow.svg deleted file mode 100644 index c6733d1a3a93..000000000000 --- a/docs/_graphics/druid-dataflow.svg +++ /dev/null @@ -1,743 +0,0 @@ - - - - - - 2013-07-10 16:52Z - - - - image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - streaming - data - - - client - - - - batch - data - - - - - - - - - - - - - - - - realtime - nodes - - - - - historical - nodes - - - - - MySQL - - - - - coordinator - nodes - - - - - deep - storage - - - - - Zoo - Keeper - - - - - - broker - nodes - - - - - external dependencies - - - - - druid components - - - diff --git a/docs/_graphics/druid-manage-1.svg b/docs/_graphics/druid-manage-1.svg deleted file mode 100644 index ecf81e122776..000000000000 --- a/docs/_graphics/druid-manage-1.svg +++ /dev/null @@ -1,21 +0,0 @@ - - - - Produced by OmniGraffle 6.0.1 2013-11-07 21:29ZmanagementLayer 1BATCH DATACLIENTCLIENTDATA STREAMCLIENTDEEPSTORAGEDATAQUERIESINDEXINGINDEXINGREALTIMEBROKERHISTORICALmaskmanodesCOORDINATORMySQLZOOKEEPER diff --git a/docs/_graphics/druid-production.svg b/docs/_graphics/druid-production.svg deleted file mode 100644 index 7a8859509fc6..000000000000 --- a/docs/_graphics/druid-production.svg +++ /dev/null @@ -1,23917 +0,0 @@ - - - - - - - - - - - -]> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Deep Storage (S3) - Events - Query - Assign task - Cr - eate r - ealtime tasks - Announcing - Realtime task - Zookeeper - Client - Peons - (W - orkers) - : - 1, Segment handof - f 2, Realtime queries 3, Realtime indexing - - - Collector - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Kafka - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Historical - Nodes - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Br - oker - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Overlor - d - - - - - MM - peons - - - - - MM - peons - - - - - MM - peons - - - - - - Meta storage - Overlor - d - (Cold) - Co-Or - dinator - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - T - ranquility - - - - Storm/ - Samza - - - - - eJzcvYleMrnyP/zeAPcgKrLTG7si+6aouOCuyNIqymYDc+Y5V/8m6b3pdKehnTO//5nP8QE6naWS -VKoq9a3yedvX0eJw1uejXIze8fh8ZYHvLWdCdgf9utMcj1eLpQB/ClwFd5hEjAaFis10Vyp4ywuL -0WyahY8Y9LAG3w5c9SbBnUAQfL8ZLcc8+GUorEbD6FyYDVeDJXgltvjrIyi3CL5XektQLE5xNMUk -dthsPLnTPoPPe9O/eovF6L/gKZPk0hz4rTRbTYej6Udp9nd2J8omuZ1oJrMTz8R3uDQLnjdGV/zC -WIiNsRkWFEzHEmwiDkpzMSaVSINXmFgCvFSZDVYTfrpsC7MBv1iUZ+OZsMjulP/0pjtnvQ/wpLfz -wI/Hs//slMa9wbfmldpsugRFG/z4L345GvTO+RUPHof1v0Sby954NNC8d87zQ37o8O1iM9GtjcY8 -IPSkt9xhENmLTYbtllaj8fB8NenzYAq4DPyV66JxdBZgAGAs8DP8OdVtTsAv1/xyCSgEGoczd1Uv -accOfkT/BZ6u+I8RWgVgml6CUrXCbD7pCd8LibaJnSjDxsE/CSYF/kpEhSVv+Ml8DCYXzQPDwqcM -m0Z/lc9SSTAqebbSqMYULJFgOfA3zsXlcupM8X+N+P9kd85nU14kTFFYXotLJR6nafGv+ORqNeaF -znQESZ2EP2VE0pzNhvwYlFfer417iCLoP0b9Kxa46Qkf/BIsr9l4tUQrPy23ACjf6v3h4aJhxAYu -5vz0ZnaL+hhlEvF0jGMTqZ0MHY9xKTq5Q8eSyWRqh2U58COX3GGTqLlkcofhEkoPGPWv2BCsFlYq -t5YCk9cG03khjD5G06zU11S3LoyG6hSn2J20+AcNJ5bW/D8j/1/sNyDBcslPpXGAlVU+0ywVOnZ2 -DVqsTofl2QTOwwJuSbBGpmD5jGcf4jPlM3oCXl/NPU8eLkP9rGZLfgHqGvM7mST1IfT+4uEqoIrD -ES+AJwuqKIDHVHnAD0fjcY+q9garJU+dL8Hy5qkLuZiH6ihv9MQiPVQb1RuMBLBE3sf831RPLSO+ -30OVD+TKefSmh+LFV3nNq7zy6kisfiSWGWnKjJQyU1S9h5qJZWdi2Zmm7EwpOxO7shKLrsSiK7Wo -h1opZYe9jw9eoIaggzxPDQC9qcWSF8ZwFAse8VKqvxqP+SU17wmQAvNPCrwx6U2H/TGgkoC2L6ht -SA1m8z9gkXwuKbCdhzzcwJTYB6W52HS2HPLvVLFKXSzGvcWnR/lpDg6DyWi6UgvJ//7hp9RkZfzZ -s1ZO/ncmDN95UNVoysPPk95isBrDL3KBHvhdav1nxS/gIIez/0wp/u/BuDdBH8HqAqxxDF5Q3noH -+3k0Xe/GB2CMY34yAyfR+1L9JlICsPTRHI58Me8NeKooTkZRWmzSP1VqBtfIdAi6RPET9A9ayIDE -qFL5i1gn+qb+Lv44HP01ggtEIZpC8wfl07vQE2e0uhJmqKdopyj9Rt9QdR7qfQQGLC0P0DI1B+3M -hnCBoLlW91m/t+CVDqIvoOjyc7ZagCXioYqaJVrVfC6KK6OqdK4qkqYp/t7ULtemUqgpFroQC11o -6pPHfSGW6IglOtpqOuKjIZwpcOZTmrfFiZj0BgJc74Dzo2K9AdoQ4pYWd7SH+lxNP3rCajLurZZg -H4LD4Zsa9MB7npsq4qCJk+7NAhwh6snBdRGbqk4HMygzZHe6usPXcDg/UfrHlL6wyLhvHsWKAS+U -q925EVb8zZ85v1kvJBHAXC4w9kn6nTKtgaCHT0ySkZjODpPiKDB5/M+qNwZfktRo+g427/KPhiXA -CUMFAEcHEh1YDfCLh0kzkDMAzrQc9cbD0fs7BcY8QbIEJUmD1HwEalxCDgyqT2eoiwn/0dvxMJkE -BdgU3OU7TCZF9ebghb+lXmTSVIUfA5mMZeLS1gIs4b/89IPfYeM0LDwGm617/WfSn427lPivbuQJ -kdxdQP42WEHwfPOczz1Ivm2PV+BRXZit5s3p+8wTEAXiCv8OxK4d8SmQcMVfq9O/+PFszqu/K7+A -HbZz1xPmsd5oHrSs+gZsfTgDF/0vwNVBHdIP6qfr1WjJ21fUHvemPWEH/a50sTUCp2y7B0apdlL9 -zb5SIBIImvGhr/K/BF0CcsocnlV/yXUYumdRQPOIoKHe8hOI54BRL5S6xa/6YYu/2dd3PYCSkLBT -ElaLz52b2WysVKt/pNQu/Yx+heX/HW200QvTi6lIoPWWpALGloA8/K9rBZTGtwAe/ptrL/eAtIFE -NMCFTRowea60JD5zsrAQyxstJup60vzShix5MOav/wDhcGJVG6QG4PdDsBARC1J7O5vMoZa9c/3Z -m/OozuVnDZW8VipMwPNFy2OjUWvmmxGfQFVu+QccKx7qdAoEPvRlJwsGN50BclDnvQm/E/FQ1yOg -X/LyU3rnwkPHUgmaZaB6lcok0xz6QLMsCzUcmknGpVPgvueRNTzw5Q/4cgI+fIGf/rPD0DtnO08v -9M4Q/Hx/hQreA2FJZKGHnh1w+ryDfw19ewK/9lbj5Yt1BzW6HSN244q810XyXjOYXiMqg2lRaWw7 -Ue0e0DCAogRbbfeJe2u0HqBR3//Xs2ZVaA887ZLSDbk1JwulBarTzsDaKFGBTVYkQ4uPxO0Dq/n/ -pJ9BRYYfMZVLfZVNF5XesufxdSn5O1gY8NsICf894Y/4/f6sdT4b8uhLYG8olQVL63oJJd6dwN8T -oP8M+Sj8MwXLLQjWm69r/vyv3nglFcjsUE3Qpu7x8s9cegrUb6Fn1oMJv+wNQce37wCzWQcW7//5 -37UN5GZ+8Q82f6iWGXwC5Ufgp1IZwzLRFATHqzDqA7VqIRY9FF9YH8j1bCUMeGQi/VeOSd/lTx5q -vLb9jKfpGA1tu9QVD1QEXG/Zf3YGlN6vT8V/RsPlp+2wUokE4K2J9L9sWFLn10f1t+2IJIvxv2s8 -f5uN5Y/9WOQLhX/XaP6YjaY/Wy5nkxb/vhRNxbaDAxu7BETNf82o1gcQsXtnnQqz+XI0Gf0XCR6y -Wft/dqws0X3C/7wb7fM6GxdvlP79xwEQGqeLeQ+UHtjvT/pftoT1nV9fndAQJox7A374f25o2q6v -D2w6O4PaP7p0+z83NH3n1wc3IR9aYK+G/ocp+D8c5MRyiO+jMbpY+D83d2rHiQ6LTZmSjpE3KyRk -WiPD/5IvrfXfdAnwhIcEwYnyv10SykDcXRS/tbzgO/biQeBguugCLfnw30dyaQAbyGt/9YRRrz+G -3ir/OwFJ04n/eR/+lRq700nNLnrQLAoNYf/wxG6zA7N/ke1BMFWLf+smhGMw0drJGcxgtQBa2L91 -eL97zIOJBcv1HBHEjlb9EXJAZP59hNKOYn0pjGeDbwI5DwjFUxwV/odjk3v/m6vAwWb5N3OCf6/w -Y915zVUIorPofKwh8nexWVuNx/LtiuSlDJ4aNJRi87p2t1P9ez4Tljs3s53y9TVm+g3f49J0iRU0 -bs5aO7LovHMN/ciERWMmjP47my57Y/MqGX0nyrP5n51Sb/D9IUCrvDSyEXTT1a40sTDy3t25XvXf -Z2N4LavZyYZWDENFd5Lw2ra33LkbQZ+6hSlJtOXOegPlhMWV6UxHfyvTs/Z41B+NR8s/pi01p4Px -Cuyr+7O2aSudBW8crv68F4tVVvPxaNBb8jvQN1psvMR/9v4aKdqsgTKsfg6vQVFAYPVtdLk9hXdz -0B9qJ6Xfp2QvsVJXM47e4sS3SF8CK270X5mNOOtfWnwr6eiluBn97V6ipf7Rjt5ipLecTVVyo7cS -hvVrQXCyBQXv2fDNPdN0XG8IIHpNGlraYVOs6UTjXtOtKKejSmz4Hme+V2zfY4zzhh2VoSAqIs2y -aoA3YUF69i4xLNn33ZSp6d+oz6DLmcwKx7wZJzG0ARneWW/emg3QNYXZQjEcOsiNQ2vTYCxK31Tu -4O1dQ3MzaVm5eKJVJ/PlnzI/HkuDJjgEwckLfU/H9m3IQ75RhB5LmoJjQTmsD02LYE7dZCqVYpnE -ek/Us3dHYwM1nrzGouLRBP2e8J1Wj7DiYu2IN5kmY0/A5PaWvNlYNSX1w1aKKQ4m+ufqTDCMrsxq -vtPqTT9WaFSzOfTANOwI8EJb4Be88Be/c8P/vdypDkfLnvaERzAtpQG5dhHIpTIWrZnDMEnQqa4/ -6wlDeABQQLYYAEFQngdV1pGukRHWSLx+bc9G0+UVP76ZXYkXhHAGA+3ZYgSrR08ldiHClCTMEum7 -rEIM8a63XbwykKe5kLsuuSGpvZVJXhkt5uPen7Oe8C0+SKVpOIBUhkvr+oLaR7Al/WWnPL9SQ4iM -+iYgOKso8L0i8pqVREmRWjT8n0gy9FEjWl7f1hGsqzT7+/5BeikFXSosCt6pTgCBBJ20LGvgNvJ6 -yuzMe3Mgwy5Gk9VYw+040E+JzrDQxWo5Xy13rnoQyiLd3u6oOCxpHhK6d874xafNG7RuYct6xc4I -lILCZB/6CSMnbIvC31Ogcs5A5z5El2VEjaczfjhaTTQNvqyvZbPtJ4GvAEXQNltqhHuVV2R2evIW -GajMitU8194zgo6NhjsLdethtBlQlVRTSq5qOB/FDIPvjUfGc3IxnxkndtJbSOubS8pzMu8Nhxr+ -tFNcLWfK/Eh9S7BxjXRjHOcOuwMRCVPCsn1Fv04mElwCX5TZUS6IbEtqOmBbVu2AbV+VDgTkLbeD -2XsQ+6fZpOlkCvKPNJNh1vmHxnsewgG7V3AP3vamo8UnqA+Vk2Y8k0C1cEzSvhbogQFhBjyUBqp/ -LxVVXOZAa82qbKw5HfJ/X/ODmXwC4t6pjWczAbVyO1pIKqTmJMS9pvQN81Y0ITMWCyrxkBP9xaMu -mFGLY1PJFG6skMR1zSpVeJJpyQsgKSlHp3ZBmZa+kleJNN2pTJxg1hWa3MzmmlFgZwu2VFKWrtRU -Ou6oqRLy1dG0lo5z5CsMdcF0iaVSDPlyh70xmz/LkeNXTzxhOZU1IPMWIbDVrjTslqGwo/lUu6mf -UOjvbfPqNZDGN5lXSAVZDpKGl8YubMihAMGBqLPsTQc2GxaCsqWdgq8RjVi7DBx1XqXX2qq0aBPO -krbJeCKdilsxK82mt2IQqKy6vWyLKnse21NU7OL9fcHLC4HWSPj0zrsiUwjotI3+BV4Gp06/N9bN -jyLdaF8Bkg3E5u4sgbBPVnKxFGbf/LoyrSs8GI/m4PCDl4B/70CM8mxq88ZcVjtmf/HCHLrXL/Ry -j5Esqi5pNLbCtm9mO7IMLS+FTJqxOFU0U4adCcitNMaTJMvgVgyssa4XJSxKKmsAf5ogt0jtYYIv -Kq4XbVnSg7s2EhbSKmDx9Uu2b63Ez2CZISRZGeiwii8GKDeYCUN+uC6s7lDns6XusXYtJlRZuj36 -mx+Dlt4RlnJNnwBid7V9vdOCqxWCuiBMEymzaxqFVlGGr1wY1p5O5ZDK1CFqFfYCVg== - - - KyohhmpTCWO9ohhM3Yobs4TbmFInpI12o2xJBlvmGrcZxWJoK5SlbXil3YYYFUanu8AaiBQWht0B -Ar+RePo5QUUIpiSx9pIzgqNXCOktdtuS3LoiWGqjUtsQG1VgTWtVpZ7OVCa5M5oiPgstGWYKoOme -QrSi1Ls36mvWjwFVZbwmfxsLQWi+sOBhbYabGmPJxfdo3gd0/7YuhgbRG4+NBrm1cr0PHii9H7LB -Y13dNr4h62Cat+w6Ib+itbMhixgk9MmsDxGTO5C6GxN6MInJB91s+WlFQ03JweTPt/4sNBSEvrmK -zBMoz8A0DndqF/WrIpfZeQ40ry92GDYZT0XZLEvT8eegNfVQ0zPoRmfZvQl43WraAOkXMdGdhGjS -UPnedDpTt6HICNYKyVLDYoFfrWLB1XRgU4SfQq+rIX6k84/JdwwU4Yez9/fYasGDY6gEv1pvbouB -/j2PrXuKGgrM5sOVTYGFXQ2DGX5UoACU0awLzKZgty9Fgc+yLamkKkQiNm5W8kMw8G6OxpQUjCUV -Lm8oqJNzTRfNXFwy1gsGFAI8V19Oc4QZi372hjAoimV9Y2aA7oUsCwHaLZGvjWWZCWQGi7XbIkO5 -Kf/RU63CmEL9EeRY0gAxHQdsfoyv5H26jC1W/YXFwGCR4XguvM9UYQpbTOUkSVNywx2I4pHBHSjC -hIiLC6qUSlB6OZsTl4VxewyqG55vaHtNUFzQWdPtSiu9Jiir67U5s0NGy35PsFrcsJygAXnbFIXH -9wicnnYtC5qRWHBiqUyMTWAHPOTfocymATLiZJr+aDnpzY3cxuawQm2At5cwAiL5G+JxqB6t2GEu -4JWvTRnd0WU69QNhGIOi4rg3j/1FWM6CWrDYcjRWrkxMBQNQZjEYTK2Yg1hmPpZBUow5mxWL9ca8 -3Hfbcp92YxQ+7OkAykj1mB04sMhcuje0HiFYf/PPmfBf6fRiceWAOg3jT9pUOBZiitDfhyEqrcvK -Z/d8trTYxrCkynwJhGpruUWVpRfipiIQuzVyppl0q5TrS3B2q7aH/GL0MbWj5HwuxNAFmtVCgIU+ -ZxqjG77Yf8iKffI2PF2sTHPnWuHfAQcb7vT/7FQEcKoLNgwGvK4BlmdYU94ICiG/Q/05ytgUtj2P -lJI2Z5FSTj2HLHqqpZlFHzVEM5XgQZGheGNvwVFBIQfKymI5lorP5xbKAywmNa2UI6gZlIXbcqxx -NyZ4CW4TXpiuGWhwHRLLy1qMJriNlW44G4/FuJSqcUKvJxflwhpNWe7J9W0dBsTVez4ZHl4DwVJ0 -ZzGYPtYuLaY9dalhinzO/tMYDQ0sS2pI54wkP6jcVNbsRNe9v/gzQJrRfMwX9SYCpRR4FRqQxOhS -ho6DZ/Ay/BTMzfqT9sf7elX3ayND9YuxdtefoIBNcD5QlEu9ZA+bEPjBSNUd4uoT5FimM6TLT6qT -Pj8UzWh65gyfSfEE5dlfs3yoMYj0IXHgKhFD5UBayc88FPxd+wu0phSvy81mOlHh4UqEtYaPE2+p -cP62T9FU+CwSzn8uOfiJjR9dZjnlwaXyCT045PI3y1LlPVP/buxd5XqVd/rhWHnKhnNXyU9v4Cm0 -742c3T94fN7wINb2Rtha2Rs+/j6AXy/Bn+irNzCk4/C3Cnoa41oZ8K3uPYgvuP1L1Jt4/uLtmG68 -neRhX9Ph42Ror8ILpVU1fNa6q5w2vdfoKRpL5TtGLRKNdNTL7ZdfTm4fio3ke7v0dnZXLlAL3wH4 -Orostq7fbphQMTtLeMvBS6kpsvF5fJoRBrlGzhul/FdwBEfe4Pljxhv5HIEHb+8xb3iVvYbjr3ij -9BlLU7mHABqQ1Ci7OEMdRuPjSmkunXxMTh6Pom+1mceXuuPoofqcbnT5siAc5/rFyPz8pHCaWRyn -G0d3sdrsMX5bFZ4f6cpj7eGmlivmBmBoqSnB0Dw+/OQFBSHujdy+Nr3RdDQNJ+wajioNf6t6I91h -whscfY+9wWVpBIcW1A4tHrmCn0qgI89FaV6OM439L8OAFt4Xf4X1H+9WDEXAJKbrbH6v8Qq+1sf0 -8OChIg+jtRCEw8Wt8DxOn9JU/FokKpgXtdp03XfPFS4DAfAigyhxoQ5NeCmHCmChpVfSQpMnAjUa -n11dT3GNvnp8wkv381ptVtdo7i3xE5rTpo2+Jh/buEYbe+M+9ag2CiimafbI+7TYu31omzd6mfMf -Z8tPJ2aNhg8H8SNMo8k9j2/v9vE8YT7W+MMjXSslL0wb3a19pfen3GHbrFG69j5oqI2CedE3e8DG -H6q4Rod0vS48mI+09tNhyzd9H3gtPjM0CufFP8lKzbb9fsOscsIt9YkaBUuyX9XP6pPwUrlF5A2u -z2n8Jb6MdaKoUY9vbSnNGyfYRpPn9OEertGB8Jpm7s0a9fgW6fNqaO8nuTozG+tib16q4Rpt5Nkp -82jeaDz4ED4cd85Ro3CNGWe1l8A2StdOL0uYRpN7vkQ6kTdrFMwLmNUuXZvd3JgSeLe+nzto8Z8d -00brl+lb7EgPot6YOKceH1N9/q7pNs1ucOEvRBaw0dBao43uRN6pqbmx0Vbz/EVq9CEaUBv1+NBY -U4lYTCKwsdH4Y4luTS5T5o02d1fp1sMgbdroxZgXNw3klrpmUaOnsZ95BNPoU5i+bv2szBs95V5b -tVrea2gUtIKavWmOmmZjRY1enyVv3nCNVuhb+jVj3mgruncz7IaAvGI61tvX3ALb6G2A785xjZ7R -d9F8ydAoaEVqthq+K6SFsmmjj5GbV2yjX7s3rRKm0eck/dJ7C4NWTMd63hl9Z33nEdNGX1/vu9hG -Z3w+8GFoFLYiNXtGv1VbFfNGax1m93552TRrVBDOo3tSo30uaNg04UyoyqETGTTb213W9SdNVlhx -ZRo2Gllr9CIX+Hmt3hdAoznBeNJkZw8RqdHvTAg1qspj6Ybv/Wn3HTXKlh6Ypp7pX9HV86c6bDS6 -xn/Pz6PySVNeGslbrX7FwK5EzeYD1YhurIlP/zAscSVuP1s+1bNCPpxLnz/BRqn1RpO+3dxDowEa -PfGiRnVSH1u6+JQazV7GDAT+muWq32Kj+U6rpScv4IZfnzN0vAGRtV3WPmWXEyAns9lpH/N8deDl -hpO5+dN4EGya4wSPeyqAxXA2Qk/hfjE+B9JF9eiiKr69diw/5uhWgWPR0/VT5TFPt67yccNTdSU/ -FunW8DSJe7tMn3nv0rinVfpi0LzCPe2CVq7L30vM86cIfX2758U9jdE3hbMA7mmC7nh/YhLF1p4f -eWlh5U2Jz004VYO+7Xhz4lPjNosDae32I5o3PFUp9tSi7/YzRdzb5/RdslrGPW3Tj3upF9zTL9DK -y/1jCPP8OUW/fL1HcE8z9GvnkMM9LdDdZDcjU2zteVdgYqHTBObtXoDJvLFnmKf9PaZ08FrDUqx/ -zZxe7p5g3h7MmPNvdoR5OgwyD1+nB+ZPE69Tj+/m8Gj5aP6cXbS9/uAJkqkCQJMJNPRPi95Yo3As -PjVyPnY59h7FT74kiq1zxuBz+Ij9uDR/Ox58CR8dTq40T8vR0JWqNx/PA8ObcGm2OBd513Fu7oPS -uKKcVZ/5ElY1E4Q84ytQS3+5dpNPPSDlsvJYPYqB3+hauRQblMsl6jQMXrueyyq6bwx7w8ncUtP2 -HucHJU8morrTmY+fVL5JnaWnfqBD3q+QsgNY6/uRorPuUaNcPwj2324VKDvZtuHcF3ZZf64dldWd -izPNGaFtNPEZ8h15Z+aNxh/usY0CaXy3NtSfEdpG6dpN6RLTKBCML0ZnPVyjb2qjaCXrxrpbj2Y0 -jQ4PDvbURoVFNrxQGuUM5I3ff7YO5UbrY7VRKI0f7Qa0Y41f76uNCqs3JoZtFK02TKPJPag5PKvn -vrZZONYnbKOAvBMW2yjSHMwalaRxqDsMzcYKG+XxjabPL+/xjUJ5RHPuGwkMJZIurtHLtaW0l41I -zaNP0jrPmsy+eclDohrjzy3rcrAVsWSwLZYU+QXbSuotRLqNW1sBPd3/VJbWfu+qhOQ/kbnIlOWU -1wqA80c6TET586RV9SUL0Vxn1wtPYRVXGlPjcftgBjsHJfnrgpYxweZPEj7Ax9A/cELvtCK01MCF -0p8K1BxrqIjOjgiZXr3TBl8PfNKf3r1G2kaGLK3tAhR/qjDVl0VdM2BNl4+rPulP5GwmUkeU+Q1m -TDACsALLGgKKs69SvkR98hUf/AOWZJ5uGjpl6JJSBNOlSDWC/oBdKVGUMTMNIqKvrImu/pHGh3Ry -3fggTxZH2PZql4j5+NCfK5v5AzL2mWH+FIuiOoPdVUjuvKgRmY1vpkwyyfwpmrjpDB6GHRILUxWS -LQ8jBJURLfb6w9yM7mAsjlcW/c7sPtjtHB3dRfuYKeXtlinxzjmk1ZW8AbH0rCc2W2M9D5E5qh7Z -LlADyvgdzkYVDqOuqUDpsEpApIsFD9C6NKfdQ2SpG+5abxBvR38k2q1fnsi7svp868UxbvNdKao9 -JkPLM6ctw9BMdqXN0KJ71kMT//Dt2MHxPHg0l+z8a1Sutyf2ozoQR2W+2F+rNL/4vlP7oM6+owFF -5voTgjNf5/XTA3T2wvPFZJFXnyuUc8Ksk6UryHzM5Jym+WWHktaOspJF7ca0sv4Ce+Sjqjw+y8r0 -+46Zr+27PvtDMGYPwb6rQRNU02LfdVd+IOudRRSeZLyWU1dyr8a+rEqndhMK/0idj5vdKYrj0/NA -Tr3lgc8jpYDUKW3PwpgF26vR7+XYE2aQF5eqDCbKY0+2UxL/WZuS77RgzWlV1uPxYZkPKg5Gdb/A -CQQFe4nxQnOK1Y181Xgw2c6vXHhYZ3r7/obhWBLlMaP8ZCc9fWe8dsTK9QNql6T7F7NOsaXHzIn5 -Wan0hqxLexZnpTp51oeHPH/f+1iBziPKFAQzKM6fiUhHMH+KdKEjFs33uh13FgPNf/G3kvbqQmW6 -A8VQFbJdOKjs3f9z7xrFbOQ6R/3KBh5do5iBozmlmGTXku0wy+Mfg+LKlu5fsUxIlBQ8hNLxR4Nc -FVw/oEU+1oD3Mw1CAfvKdFeW7r93XdqVDXiDcupEUQ5i19hHg9s/PG1tSB2pNzoegeRk59TpxohV -BfxYEFvYcpq6tNoRSbqw7oppR2y4gK4j5rIl7ArriCbmHQHbPizevJPphtkf8yNqebywOO3kpeLR -6YboUlM1cqMFJL0TRZ1SzdmgN19NwAV6VYK16MGbNUTavSymBEYNlXkEzQgIWoGdMhM8LPRhfJeW -ezb6PikDaDpnAFgZ5qtJzgCsx7cM++V52YLo4jqwlBQ8vvVVi5Hl84HKkgmVvmrOx6f3uhFn8JN8 -Q1rp5EDjqT//6DW+LYilbHHsYvAQE4tgi2MXA5x97RaPrW/xyYl+i2OUNCvrkmQh4fazu7tb2hIm -JwY9T+2Nx+dMqcgzoqHAzhCgN8mac34wNMa/9dC4/O3NmeaOz8bAYd6RzA9Nat5QZg== - - - f225n4BWbmdbDwidqToJ1rndJ8+crPT83JQsHgLCJAgIY22vETn/iaXFxowV6CwNelE6n20vDaK0 -x8flOz4CY6K9KD0/xdrMPD7iRZXvMD7L3uCPQaNF8dR4EJqviDVJ2Gxo6jG4+X7Jd3JB0nWOPZHn -p8bjb4N1nr30onNP9IUjsXBiBuSLE9n6LC2cp+p5tzkDmJ+CVgxHnSlh7GVZSB39QYddyUSyrB+0 -vOfXXMWCT2XwWwBv7Pb4HOy7+2uC+wmzFaG3W9bbE+x559CEBqtSrK2W+4XA3goq08ugG/FkuGmY -bW3xZfGWJ7B1PbCWELYWj89JPeENe6Px7UH1RFwZVdRQi6JXOjj5lMpipIeo3g/W1CweDK7Lm/c3 -jm4YRG6Js3uBylw5bpBeCXsmX/sQ3/FhSTk8YI33UObzohVArTgaUF0SQQNHQzAsQ4c1a8yJJHHf -ccTRcLfVQKx0jaPdzjw+t26QQGVYjkYuKUG7NOfC3odX8XheRLr3130fsGvMth4jD7GuRSMpGeoh -YR/2vaEMXgS6q5fPWTgnryJzWUA/YWGrK6ES9B2Vrw4pUylFcvSStgrUeUJGpy7wmw0rJ/a5KoMH -TQImZCqZqXev97dbX+RqqtIzWez9PoFUDytb934wYzMen4WzQP1hrmrTG4rSaNY8ape3qkdv0jLW -4iGvx4kLhLkdRqzHXqUm6I2Z45H+htdKJDdW5sSQBSlmeRr2duth42nY220R6DSasxCr8d3fbSjf -6xbp849Ghtn2NASVWZ6FHien4fMPgXxvtkB058s7s0tic7Hh973dM1dOMVCPs9MHc4qBerb2IEK1 -0ES+cPb16HUo87PQ4pZHP2FR69PQ+iwUPSJ0p2E2EFk7DbMBYi3C7CzUSkqgK09La+epNTcM7Oiz -AQ0p9TfvRsFC3ZC42zegKhBIuh4f2e4GlW0h6RqsCl2BaHcTrJdsIGlBMUfKJZjJWxIp02N5f3p/ -b2m6JvbMEy29qFN4EwWBqGk4ltjS/UNUPZbkVoy+E5uae+8fzI4lVerT+q7hPNe0U1K6/8SaoY2b -y2OqpGoXSzlmoxuRe9vCyoiOFkuHeqWqJNH5QrKISw+7B6QzKZ77OC9EOJdEzrdiZRi+0V9AS6/e -WwrnzWjrGIm6ZG4WFlcywfaaa7fFJwyHU+uaLmdpBsTILBef9fFtr+vxVfaGq2ots194rd0ct6sb -YugUKpoi6Dw+dzB01gg6uCvdwNBZI+jA7LuCobNG0CEZxgUMnTWCzuNzB0O31qgOQSfuyu0xdNYI -OjF2x/YYOjPyqgg6U7TgBhg6awQdihLgAobOGkFnRHJtiqGz9ocW7ZbbY+j0DslGBqeeyE8VImcX -jVyHR2D9GLq0dopZd0rTJRv/KSDrqOxdiQ+zdhpWjCamjf1XnypGS689nXC6bduP9yXXWOFI6KQ3 -MdnQSaWS8U68snbQr7kW7elULisQnuKsI2tJm6+nmd3SRH592yDnSMen2JRgp5wsTqsu6a9yNNHn -HBPdznJluV+IQXMWYvP6cjXztn2tbmM9lOFTFxp1W2O5InEG0c9BlfRuzmNvNn6tbmiv0u59MLjn -vS19HiDYzcoVRPGEtAe7WVqMiSy9EOy29YVL1UbmJyeMhSuIhRpivpJJEVokLljHfXYGJVidEGFv -LCZjD312ZWchIcUJgS51CRwoJZyFNci0ZnmXTWI400oX0ArJkplJMIYzvdkQSroRJORpeHIdEqbq -hjgxrBtONgNa0BEOLL20kwQd4PheV9bHpBMcn53sFdIarfBd4k1BMJK+TwoulKBpeB/4iysTgKYV -js/OB54cx+ezw7w7wPEZLJimsiV5ZTYAG7OqMMgUUBnl3iBtowQ4qQx/e7EBxWy8/Z1RjNtmkHrD -b0Ti/DpXp4+GHXqGSJZtqDZfHGJI3ew4RJgNWk5Xgem9WMOe4aDdzdhy548GUvV0suWmyt4yb7NS -PRrpGVfFAamqj4VhGb0ILGYaRxM7oByYIeWODzvJhpsRCzUMi7Vj7Pe+LTkIVDjrWx4tSo7oeMPc -ScC4cPfdOOmA7Fz5AxXBiIp9WXwsbTBWejkSi/Sp2kDgPYaO4uFHzjRovQCpkcearpl3vpoG445e -HnOy4wGdiLeryGHwdHJm3sEhx5AXtCPzzibIOBX9RNQppxYZqUvKWanv1BbrSdclY0yVzelEYJHx -YGF/eotMbmm0yEBIEqlFRhvZeH2NTU62tshw+9nAvmdTeI5+Dk6sLTKq7YLAkW9y4oIHERhcPLA9 -DM3EIuM0nhKCoTm2yKwhUiEMbVMHYc006S0yplY4MnyeA3AOuuPDwXMAdbDwHEfgHNHSS60Ly/NT -OxwqkbB8ioTlbTGJ2UufHQNA+j6B1sLlOykC6CjepKM5kU9JfWcthxY0G5rsd0G2Qk83jBtmiAkJ -cXV41wUHuDo9k8VJF3a4Ome+jKZa0ikhhAQDHdXTBppA7VcyDlxncNQDPNJvvEcFvwXtfBTJ7sqI -8HD28frcwMMpd0k6RJxznzpDvwyn3SZrzDkeztxD1W083HYeqqR4OBtEqkt4OHGNkfgZboOHW+OW -ZJH7HOLhECrNGVRjAzwc3gfeTTwcWmNriDg7lz6neDgUD3YNEbfJtU79duYCsh4ebzZjxloZ12RL -WBkR+yDwiQRVsW54p4eK1yQhP+QbK8xC67gRhvS+gzTxrcNaoN7olWccTty+no0x9hokV8fMl8G5 -x7MCrrOKpuXc4xkI4schIxCn+lye2+gvhNvwgTgorIJNMIcf2URNIb2EgBEP/D/4u1CHrsl+c23R -mTRe3tCxwSCNQ8igC9vw1rAJN9ReUT0W25A0dgeqZ+tQF6iWrmBjhyEU7VFlfXwwRdNIFFb+DWB8 -a15F8DdLhdpDqlJDDNIVAXzBjo/duYdIvXMTkXrnDiL1+ccFRCqzG3UFkQrqcQWRCutxA5EK69ke -kQrRaybqoaLx2eLXjBvEImjqmpORCZrDuA27wvo27AqO7Fp4b1s3oXBi3B5C4NPGULjNYkE7hcJ5 -fFaKu1tQOJFiRhzRpigiHBQOo1diGNemUDhzq4LbUDh096oFwxFC4QgFw/4CMSYcttpZRHgIfNI7 -SOj9Dc3z8ljh6r6t1SLTGxvMvJTuf/adKeGYKzhY1dLnkgzzYAxEjrlLIohjC+aSKL7aephgPRq9 -HKMsDj1nhwPokhLpW25lIx9UVWAvocgeJu0pHndi4ver/ZQ38vl1DdOit2AC8a43dHrIeCOVqzuY -QPwaJhC/8YZuikn4qQ3Llb3R026Cpu6/U9JhlJt9azssW5yAbKkDuwUswG5titZyQR3ubOHfn2mT -p+qhbh5foL9/9Y3BnQWfrcBur1Fsoyipts4TUo/G0qUWM4LdXq3Abt4EtlGwkmFabaVZIxrLAnd2 -5H2xAIBdFq50kpIB7AaTTWMaTXyGCnehOQ7s9mCBsAME/tDOqhHs9tLAI+x839RtH9dozxJhV6ez -2EaFxcfJHrZR7/NesoPNx+eNWKXGax4YZhVu1yhqHn2SkXirIbacyPnlkhd7PEmNuxc5L0E5YdX9 -9kl8TDw84ajXRFF564K3IwHDcWqlUq253JrEUjNIsO2DidFN3mhPtYX24PNY6WEuGyf9Al0q/Djy -ucJDe2xytBh9rrbPJGcm/ervktzIJCfTSZtHzjRTHiGd/LvOfK4s8qLZZhzR+fVZ5n1zKYkcNoWc -VhonXQf2yUaM48PksVqLpeYQgqrtkn2eERKiG2zH2+0X+r0VfybqktbmOddLfa6h6dZ7+FqFmri7 -aDozPUCjWbiEpjMzeBksvS6g6cxMzqaRJ7dC05k5gKz7KG6LpjPD0lnEutkQTefIar0xms58JbuN -pjPD0tn5KDpH05nNgIf4poYUTWemNxsR3Nuj6XT9OrO6e90GTad0SYOlw2NGNkXT6bRqNUOuy2g6 -s9nV6vvuoOnMsHQm+ZK2RNOZYekkDuMims5s/pAPiatoOntJyQ00nVlV6H7fVTQdBjPiMprOTYrh -0XQbUGwDNB2eYm6i6cImWDqE4HYVTWfGF+W8PO6h6cwqgPPiLprOEjPiGprODPul117dQNOZYekM -d0kuoOnMZkgjwbqEpiPXK7HkIIbf4G7e3ULTmWHpbGIQ4YRS2CUHCqBGTtZ7VGYXa+CdQMVWxMDA -6Axa0lfTLk0lKfBJxy3spQun+erMBB4b6WKDfHVY6cI+Xx0hnXCZbTV+sIR0+rQ9vteXgFkcEpj3 -zioTrZMuGWV+8nW5ll3OLgWtihS265QjaKyxSyqHgZ2yyj/rhE5Jcg6D1Yi4/cw3pdeITozRRdbv -K8nMYNukuVMpZpHozplIbpLmzj7PCIb8jtLcYW0X2kR3Gxpj1DR3W/knE6e5s/ZPlhLdObJSmSHo -PL6tfaAI0tytZ5rAuClsleYOnpW2ie7s09wRxoUDJ8PettCQUxdxFvNT58gizL0YGNrWWJ5T9eg0 -81UgB9KReh5a+FrDOd8aAXuKfH9JPFVsEtQZz8pNUGkoN50Ns7Z1IpNzpALqpLZwIjPgiQIGRVnM -Y3VtfdSRHnTQNG8K7HLonQ46GreJtEbuDYVkfne8oRD2f+s1Bqht6QhFjnzcOsekFIlie0wtqgV3 -5CnckrQe2x1IlCfRpUSTYlWyrGrJLUmBtV98YA1Y+8Xb3iWRWtdgZSQpfz1kwK8vPkTEzDRnlyED -iJaY11OrqyVTRdLSg/pWvNA1tHI7cyU2QBl5jmyPTOm4mcGw42YGw872AQJQpjyc/O4M+RjeEMig -019gPVtf7oq1bB8lQKzHiRBv7t0hpqXDuww581WFeRIdQRlst+HDfB3IAOUxl7ahZYY7YnzlVhnu -1rFvbuWt1ma421wad5Lhzgb5GHEBT4Qy5W2/De0z3DnIlLeFLq3NlGfnuUeGDzHLcIfjMITAWsIM -d5tFNa8//zhyb8LwMSDc2UDSicUcUBXnsQm7Qw6sZXbxWdLJcz0DevME2AsC5KMLwNo7M2uWc58r -VA85sBZrG0f1bA+svbOJC+cQ374WqHoN3S57qpBm9Fp3roFQqY51XIw9Maus/TbsChbb0BbEZDzF -7q1hTM5ATP5c36ufl40Dz8HKPm0Q6h5yGJM/902wK7F2Sz3F7LV3Mr2yK6gKPIleiTnZsoEYKYjJ -Y6qhGTtloX8TCYY6XzgEjFoTDcFv2wqGaqa84Qo3tU7TPZZjxjgNWs3CKca1vyC9sVHnBYtxBZVt -G5pKjXPVX7iV7rEcMxont8iUd98lzgKKj97wsCHG1axLYjRgwjwGVoeDunuPE2dTQ3uGvDythSCw -y30JpHeSeYDYvhv4p+AND2InENZXRti+GNfK7CtTd2DonPRJhqZJaEFhwfgE7f7U52HbZbMZTJq7 -3QMsHk5YvcWiek1cn+juiP3AZ5yzyK0Xf3g0axShORBg64vRLkkD9u/9/Brb6AFz0g== - - - HeAaHaJGNaeYPg9b6VrTqB6attj75HF4uHTj+Gd/ooxUgqbBXSmhHPEwPEDgnFXGuQyNQ/4l9/av -JuyreooZYXgWgMPd2iKOb7Qeebs1NIokWKlZPx9IfeJQjjGrRlt+bKPConPs1Zwva9i/wkv0Rjer -fEZuHn2SJiJYfhxOrMt5fGLJ19Vkaltjcu/ntXp/YVsu8SmtO8l+IuKSnosGsVO2yAQma0dnbSXg -2ZFy0BnUJ60uppdWjfdBItRmM7dJkyxmbX8NY2IytZBYJKBTZF5cFjPSLF9kjpgeewhYDR+Ph1TS -FWWYijuuVYhOZo5VGE9IazrhXKs2QKWFsOqVM1Qa9NC0RKU5WE/WXlrkvj1wfLY+6ZjxGTQLCHGz -9dMi7JLGm20tYptDKCCZlxbBfjm0yEov9mbdN1bPrIJmOVNeq67YmKvrOVM2sME+RJakxi273E+g -o7fWrjAk6q/IYaou3PI8RPEONcT2seo2di3VPgZRgFtfWUMMoIklRc8tiVCAREFK9WQxnpVVcryY -ndZSVb20TO0wxCm55R3PrN/t9NkfA4fZEDXbq7mnI/e53a2NwXKexN7umWvBrgCxDKHwDdnl7CMP -Ga7bvtNzY1oZo4HRLHspOboNL7eRxIjQQwHtXOKJvFYR/iVtE+fAASyq7zUT3jT5K/WXInh0Gz7O -AZE0ruvUJ9ZZ32laPcDtbfD7xFBO65w3HuIZhPMnmAF1CBaDCYIbVmanppD3CxlQLfOLOanMcsU7 -pJgtlscJxbaJOWKsCnI0tyhmkclbgxSWK8PKh6YoQFJlVtovG6IASTGAhFE1sFWQYQDhXdLmKEDH -9uSNUIDa9qwwgGsZ2DFVmKMASTGAyBtqYxSgdoasMIAen/5ocYYCJKUnXGObowA1O8cSA2iiIztA -AVoKi/jbN2sU4EXHfFS2SfnAfoFp+RwEiNokKd/aSrZGbW2YRM2oWfxOUj6cFY4QOEyYlE/Dx34x -KZ8o9TV/OSmflRXOvaR8OMyIu0n53MlfaZeUbz3euEWneOzuLYi9sY8NtV1ePystd3LiQmwolNfP -pdhQNnn9HMWG2jivn25oa1n9nPspmef1s7YKmeSv3Civ39qAdFn9No0NZczrtzG+0iUshIhJdCev -H3wDn9UPF6WZ3KB76kZ+McK8ftY2BxXJtV1eP83QTMy5jvNXYvL6ObNbbprXzzqrHzY7g8O8fpt4 -qDrP62e++NZ8FDcNnC3l9bNfyW7k9bM+6DTy2FZ5/YhQaS7B3XFZ/Uzs/AQBb9bz+m2yxpzn9TPz -TlKz+m2fjy9E0BuSfHwkef1I8vFtn9fPOquf9sZqm7x+1m5u2Cg0DvP6WWtqpr7WG+T1w+3oG+JM -RiR5/WjLrH66m8Qt8vpZZ/Uz2mEsHa4t8vo5Q6VtmtdvjXnosvpZyZZO8vptt/dJ8/pZwyQlzr91 -PdZRPBzl43OIezC7rd4ur5+ulrWsfhotaau8fsa7K71jq4doG9rn9TPTWdVNiE4xF/L6WaLAaDvE -EDn8yCqrH46POc3r50wa3zSvn3VWv23y8ZEn17TOx7fxNtTV8mwXc5g4r5+l/cvnIRTt7fL6OY2o -s1leP2uFWsNhtsrrp4zZNKufXnvdPK+ftZgjruTt8/pZoXDhGnMnr581CtdBPr4trFm6fHzb819M -Vj+HPlcmef1IwPC4PCNO8/pZe+cgGcaFvH7WWf3wfMwp5skqqx/kY27k9bNW27Hz4jCvn5XaDvUX -tzBPVln9HOqV2Lx+pnolzgK/cV4/XJcYC6uC87x+1ln9LLCijvL6WcMfRXTt9nn9rAGxa/LYhnn9 -TOdFyepnY1EkzutHgq7dPq+f9eWCIW7Pxnn9tPtzPasf3t/SWV4/6xWhsY5axkrh1+4Z0W/4w0E6 -F+R8SXjT7nsnSxlNu+A3C09WnOO9nF/MAFzUrae5wYYFJqddVre9zuAVnmpJgEACClIYettOyxJF -5cqkF7t8WRCOr0YFanl0UmTSd9es/3i3gopAPFUjfNPuCV7fc/jACw1BXv9r49Mby30Vw4fHP5nw -0eHVA5j9m9H3jK5Wvyi6+hXN0rXTyyJdm41adP0yE6VbzfMu3Zq8f9AXY/6Tvj7jMvRNc3RLdxaf -7/QtvRzTt6+5FX0XvQ3Qj5FOkH7p717Qr6/373T3ilvSb9w9xPG9nQUuBUGoUsLieXYorJjprbDq -pgMLf+oACgRXS4js9EdHw8ZF4zzzXrh9efzwhg589+399OG45Gtf108OPr99u7sZ6jywNx74mvHM -wUX/675yFJLy8QmrN+8qMo+fv6EpEWFvxdrNjY/e54fgt/bMlIdI84LQpYsFhJO2vNHSQ1yTAlLK -IpiFp5g5sbJxQI7VD/129BoUhPNo2GKk8eB9+IjzF+ha6bRE194HJ3T94nyy2HtN9iFy1SshUuFE -VcO59PkTTdW6XohJvKSrt6kuSvNHUxd8xLCb9NtHl7LvLTBRra1oaBr95XydEssDb/DoPO6NUv5b -iLitePcracobCRYK8LcTb/hy9xzCbs/hg7w3WuSG3sjZfcMb+tkDI+39pBWpD+XCO2DDkG/uM6Ey -c1ge9SgGjqpbOGx5BTQ5tSp7lgafrudM5OPjGHy6/UFqPU1978bQu9x+ZrKk6UCMQl8hSwygT9AK -98WHwDuNoJiw893/E4Zfw9LXbCAKv0alr624VAXgAsvq4PsnQ1OJJl2czFqL4und3QvgAsuM1M3j -VBA98PjQI+0IjnNh9R0gwZdz8oNyVH3Alh47eflBk1IfAMnroyg/uGA0rbyCKfONaaqeCynFX7Ut -18sRzQNNy/VmDFA7EgJH2XMY1LIXZF8WXyvw4IqBHDvMNPJXHNIrL0PhSsS3qgUazSbT/wjH4G8R -RCJmsJ/KSlwJsFmRHQ2iOQYWodCcMoN8E07YJSO9cdnh4FeIPT3agy2H0e2bgA7MfTYYjcM5uImq -jbLBfOEQtnLI5W+WV6Vx7CNUbA/eW5XTpvda1TZoOWFjWX+a+4wWkhIbbNSOtq5RW99lK4fqg9rr -zbKUWLb3+frLY/qjeL3aH1Ufh20ajooJV2/vG3A23oBw/lqQZuPhlZMX9k1cM/BKPjWQ1/6duCrZ -ymWZQvNyR4l6HvgE6u6/wEuRO0YSxBN3aM/O4CdO+RQXq6geTpLg66NUY3dQg1PySMnvPtKKjpx4 -ZDT9eWNfR3J/Hjntg8r3vrRBvr8S8lgekyK3oIP7aZodX/uqkUzwtXBI3+6rpxS6sZKhuuKA1D+S -cqIcoi8xtVHuIHgBifoC/jzcQSjuC6N8YrXlzj7iaCwvcZP+XNbebh/KlXA6WKtVz27TWm4pCQll -rVQANpyWR8osDHFI01gEZjzyCH46gX/yIqOM/MwvzHmkMcUwdYAotheQZ+tsKmo6gNWHxD3kz12H -YJEIBDyPYZB3mAA1QaMquPxdtVfrBp9OIWeEm7kRELkvv/iGPuCNECoHY9wxuxRbiT6FAdvLReRZ -hewRbHbwWzkGZbh7ZcKCkiqRqFHm12SAeUKZ91IyA4E/HvnRcTwANR3AlQKBrMzssmgYAab6OnxC -XWYirTBkD6fi0gVnQI6qnBzNaFC4FtOyzMz3uDTendaY6H7z0+OTV+15EE2OyKnqrd2YNL56IQzn -9wyIg60UU30ugPHVa1GRM/pzVz/ga4uiE/1TyBnORVIyjWTrU6kZnWK5uQ4sDlUE9egUn8rgdW4/ -m6uby23QkeLAm2zC6Ywy9c59VqJS7iEurrG4omrsiscf+gPXARPJXmTYaqh0jrIEMZGfUJkNPlXP -kOORiZiuWkxP6NNALw/GfMxCX7hAToxOImPsTyby5CmziqYR8G6ulH5pgZafqoCt50GXmU6FrXLn -GdMrL62vQp49SDD9VjPIHRwdVWTlS0rLCxSRYUUdmmrEp84TT0DB/75vgvZKEaBVB3JMhJ5ivNMJ -yKon6oGGsqjR9/KiCrrZK3MHIY6j+e9ymmmk6BayVZr6wpmSlZyob5EQ5xuCcpHOhKXO3gNZMEhf -EmhJwdWwbzZMJ4M0nGdouH7Q1FMFnDnzKsr0XfKDaSxn6JPlV8J6GjecRLjGWsNjNrgPE2RmeIo+ -6edAe/VC1Vw/1ZgVW1fs21EeLIH+RR5lL+CKwk2VGVxxDUmNlIcr+icXgOTyUYOthLjiUeMKMMVu -gj6tRNuAmZ2GmEHhCCgNx1fHyIDDhL9rEUdj9vjMRk2NIoUq0M8qLFN/nXPUWcZ3zDT2CzGm/hOF -Xk6PEaZeruXYylU0Tp29xI5AjffHTNQXNSW5ThPfjOhM/dNfYd+ql2cwOIifK1ajYM6bfg3JJUlp -neiTR7Yy3M+Dlqm4ci3XkbqUe7jWHNqqGRqIeTGuGMqcgxl6O6TObgIpZtAMNXFRNLdvLx9mAx+9 -IlhcEyDBgnWSqdLvgfv6r7UHtFewV/fBgVL+4H6vPY/a4gHnGyxEDut2e+sxh8EMRtxuD8XtIZpB -rviWL4O1c3fpvD0P6QoF4xtyFzS/bIadt4dOMRxFUSuipoPYOjLACX72jeMqgHvdl0AfBhQTmU8a -9CnTK2Mb1eSy2WyZlqLUqH5RgwpZDEgFmQbg94sWulAytShufYCxgOHk8oCf58Js8MpbZOrzRR3n -17f1NmwLh9Tne7bEdldXKcBwuDo4Xxqxo+yvnF3gpAlVgcDzgTCJe9UANXoA58tBpff2G2dzGN2M -MIdg3qJJ6mwWS3IHo7u2YfK2njqPZvLAGZjNsd0JDY6tm1QdHmU5d2QPj89khAEgjbcy4GQoXchH -Rqi2jewhSX3YGaTfsx8F7gBsQ6CxT2OQrdUNByHB+tRkAbBdofW3OKBiCpqSDw7YYHJYZRq+EAkb -BafYJjvikaVG7V6NiZR9QZrvXwAReb4oo1tBs0WjsfVtuOPDoHPhAtrxQJi6AHLNMN8y6B0uchgq -BI6JryrYCqNj6jzSzHHF0WVj3c7vYnvdxqQMFimXAJswngYcpt6a1N3ehkp7DBjfBMZRRNvwvF4D -M9iZt35FkIF87EHIghVzX+RKVDQBOnpxyL6FkmKIIHfG59GPkIUHb6gOb53CLrYnZmcwoygHyFEo -SGz0JlWkRn2wQeof8SfnbE2UYawZdwCJS+C0v7mBbA3s45j3DGggHEvK1oBs6ehg6r/eZ5kIMzxh -qs/pAKDTRQVo54NT60WDKGa/bMylmRBs+Ygr3p2mwEz2AANIBA7RmsXke3V0+qIb/LPrb067avdO -w+C0Zypw6ii2AnYlOIA7BWjt6Zr7wm17BB+gCwdA3k4eSqjwvrLb+CixwVTod9RjII0+5eH58t08 -BDpkMQSPjDIbbGbapnEcjhPdpTpIw/yi275yKUaz1bvSw3kxMqcLxcHlea2SDydOPL5iZFYI1m7y -qYdiI/l2Xno7uytnqulBpCq8Zl8PH1vT4/r49v652Eg80QVqMf9ElzC668s9P5yhMA== - - - GpoUsLLWDaNykqUXLEQundybl8ulb//0uRJL+ReHfEb4Ll6vvJ+pn8ZVq9rr+WPVx+HuJ7reinGt -9Ap98vpmL2XDnJo1Cnelrlmp0WzrqpCt8qPSdyBwWW20R0zhp0gVK83JaFGrjJmSZLCNV0byZePi -HN607YaPVwfeNZsSwYBRy4en+5XnSr2e+y7eVLgfR8MVx0KpLhKqDRr59cmBPylo823HkBlXvuF9 -S4ePk3uLanj0+Fm8ub0TsC1LN4mGtmHLLFt6YJobtXwHOF3s6K7WXb4whcOTbyDzOyN6/vD4gGC6 -3V1joY/FWho0ye7O+sVAqkqkVnShn4hqrhToRWVaumgXXmqVROKteHP4Fag0n5InoOXAbuEoX4sp -e/EH3f6jXXnc6YaqZvOM1tjG9Caj9hKMJRZvFCfgtLiOEwx9w4FL2itu6C4tNGjndzB0eeDPGZ1X -xu2P6gJgxkY9PiwjBWy0Q1dWvc87xEYL7zfzw6rw0r9IjPuv++BB+6JACcv90ts5e13L7CWOa5n9 -q2H55WSvcbj6OI6UYnHhFkiwobqKrHd1sxtWvMenbPYt2Mz+PmCtP89ZrlzpFm/Kr8+GGfD4rDY7 -DGXsBm8DpxghX91mycGVbDtg7XChz8o0mh7TQ9+0Igj57CXBmJHH3XaTDJjZfN96rzlfY5uwGY9v -a7ZOcIZbrzHzU5y8Zfk48fh+RWjBnWJbCC32hPb4CAZMMFyzhbaG5HJnkrH7Cq4xcWdtt8aspTUg -wzjhK1B9etCilvR6LHotUrlioQvAuTf8GCh4w+N4DfDkSHd4An/wQ0+zF9GDKny5e+iNpqMXXv+8 -sy96DISPv8EntnYN3QaONb4DQUGIeCPeNz90ILjVeHshL1m+nQuL2qtP3PHV59qP4mqAnGIK5VHt -QCjc+u9/CrOG8FDrRhp7xYuPoxYgTHy/8n65uEIOhgvvi78i8bbc4x6SD7ii4K0YrT2atq1brvbe -qt+F6Q/1Bpq/eiCQo1C0+USD+vTNInpSkzZ6WXk/mO9Bft4HzQ+65DIMaHQq6IWIraQncIo5FRw3 -OMrQWIjObivpqeS3prZnK3qTjvk3JSWVt0lrzA2R1YLk4HxxRX6wPr7BWUlygJu2TM5ft9XE2eWB -VjVD3lDrdHekJTmT2w50cjLswK+cKmuauDf0Op4rGy2wRnTkxNv7oayclJdJb/D8MQOPDpT4pgSP -CeSLW4Bj8e8dwROkBY+eFjxGTuGjGDxuruHXGnRay3ojt6/075wvmzIAmd1Kyqo+W5Zr6ir2fNG2 -vVHLt3zh9jTXBPvvxlt9S158qgcr5PyWR+s/fL5sc7KB2bcfsGG4kMO0HRlj0N3r9pMMmPrtfgVr -F9hojbGDbqhw+PzZrcSu3oTye27atxahIF4MI0S5KM0gHZl8e2242jw+52Yw5y2j7D/k22vDzSVq -4m5yE7PNtSEfc7i5AB9zbOt0PmaPz9H22nBzQVufg+2F31zw6pAt3X8ajQOKdCFS7yOVfWmfZYqN -ZLIA/hyVSm/ne+foa6aaXrH1xIq5rt6VrlsFapk/LTYSnVjlsXZ7Db7StezBrJKt7A2TtJnpz+Mz -GP9+xSyDcOKuWtvNBLp/1M6/6eUKWvv2TPY3dOR1KVqLR/6VWyWkxEiRjlxTYsx1KI9vQ1Okcxvs -pjce6/L0JvaxDSxz5i07tI85nHhZkUA2WPKhu2KDtdXfJPvYdya0oX3ML8AUn/eiSgKUk9SGuorZ -Lhd9FdA+L9a63+NQrTjufRFscfQJ1BOuCau3VkrBCdFm61y2kFhsNH+gPPI+BUl5mzjF8FM0KJSz -CGqCMrGKB5zDk5bx88vyZ+qFJ9aSfsISsDYx+Vp0q1mIqMlKIQ4cr7b8Vei5eNP5erW0kKh7DH0S -YbDZmmgmgfd50s2WAylaxPH94sSrmVh/c+LRtG8kWzqZePRJuhP/vYm3vOVxbeLRtEP72K9OvPUd -n1sTr/O5+rWJl3SxX554nARrOfGSaD/dc4J+VymGLm7kEUgRhaQXQ7oX4z8qJBSRfy0qoOxAoIb5 -k1tBp9x+9TWhCMayfVcbciCqOUkPBulTzY5Gv3mXgYVSQVutQKVYqI70LlkPmulGgFSco+iZKqOx -gcwDp45eDJTgK+0ritTgQG+DRVWUKE0VTO2+zqh4R0CT2ATuuwBaMdTouFMNQ0w/NYpkj9E6kH+7 -/ZF/exCo0cU0zO0fHb3BXRl8OuXyt+enuk0lxkt4RmERpIzZh5MreVkE7+GDPTk+Q+dcyw1rK8m6 -jVJEK5mLE5+hwl2oJ+9pJoY6ih4EA/mnsWZZoPCpaA641MW3lKOZXTHqrgwfDi7OIDx3V01TrbkX -C6oUu/fOqKqYslooPTwpDPUz0N+/egZrOl4Xe6NdfMxcIcGrlgTsx6VogUdEeNQSAfRHSwSUEE8k -QoELK8mWQ74j75tMgjilkgD25lvrCyfGKLImQj77PZWJEPLp85JHFRJIjapZuxUSeHxWREDZJ9Dq -X3lVInjji6cDknWQz7aXyj1yKXiqEKHxEtv96shEiEWx60AKDC5SMctoqKhdSFIF0hpbq+KLD5BW -YV7B4juoVqDmE3dQxbv/J2TYEdb7weNbq4LZDW81jPdsIGKowGxXWlZRjkUdDQNVoNPE31vx2HbD -QPGEELfULSmPj3hRvb8WaLMqCCqQ9Eom4v8MbLO7Iaw6iK0AZmYhqCKzDG3HYSCGJWxaBeFswMgB -EesKUHQgbS/WqugwUbvZ6B2dqxVwT2Mmra3gNRWT7fybLSoU8YCgAjT7uCrmZdqWlFZHXnS/yUjc -crFbb5TkKpJ7oSeB+9GUrJd+xLWz2K19MWo5X/y88qYt19rFLxB1jVkRpt4JbMV1IJbnNWa+REi3 -Sv0jbrNA0BqzHMY8uxXXgfBySl1jGw2jEa2RcB2rNdZItpjt+pC/Ym1PZOGYYpQqGvFlrHOkqaL/ -6iPmOtL5YuxF/yMctqGETR/mjGZJ6U5kUkoM9lNRRyti7USGIZliWzGuQbJs5DqEJzJSuRJMQLT6 -6UPe6aLU1fhiI5kpVlZd7zPCm1Qea/y9xwfBJvlig/u8PO7cXJ97D2qdpxjtf9dojmaAF7VupJ3L -+vV5RIrCglRUOVqLZBuHJ/axqrCALoerYdMALVp/8B/UETHejhq+T7Q0LAsoplNMdyfOUHuLo3Dn -UMh+TP2d2lE1PhOlVf+8cwA9MG6gsrc0VLaOaJPC6siW3FbG4NkVPElfZtL1WsHP31Saw5xXMkw8 -3DNKtClWG2ZrNfxWok1FtGGoGjl4GtzFpAhUj03GI4XrqgwuWARZ0sD1TEgJpeO4pG302RkTKj89 -QmXuUX1jfSZ9Y9FyNQ+LGEJxDtDQ2g8aossBdpDtBk5Ywy9aO2wgkSJo6nou3iPH9PXATt3+6Bq9 -TUMzUXT9QYUFSzwbps6uf1C8HRhn5JuCebIp9q16eorUI0127F2a78fT3MHR5YUEZ/seMGx34i9L -FotHrqGx+L9Muidq3EYkVoIOp6awNz1xwmSL052sV4oL7Sp6hEJXyRg61D3/GdCh+CPQkWUKSiRx -atR+rdInvc+7sIjpqvcewvkgu8++HQ6P2JfF1MsGx685oMDXk4CARZjJqDtupbj9bOwofPwQmcOx -ZsLH7c8llLzFiJnc/mH1RIu1K38U2e6QboHOt1m2cjnJ0ScPzSKaEjbw8dFA8R7gpcAzwniC/aKg -POnTcq8KFIN5HRQPJtlKdFFhBjF/HELqmmgEMLDBaxiFs5KDrD1DO5sfgpLzTKOQSYFpSoWkpgKt -CIo6hfzH2nLcBWnBzjW4OpMHuMCQvDd6nb+CtxMP3mg60oIK574uRrfhikPzNjJkSVbIBIpAJRvy -nhS3s1YCBmyPYFmUJPM7YlJcMeSNAaZwEdNY4Tq5bLnYOTicysHarufowEiM+8MDjw+w5seAril9 -ALe16NJKALcbWrs+ZUaYPO7Ez4upl2FACqf3eO31+KSAcg9PrBLY643L385LUniwfksNbtiTrEv9 -qxgaJCBgJSh+6u2eReAK5FTAJOxrTBepFTEN1bgHGY7II01MehrQI8IJidjj0rCiEjA7fMw/SHHD -1nZl038opgyzh6WK5PDn7heoHq0LxNusbmAUHt9h6er2TLQn6x9lGg8rmH+gSIGt0spzxc95HAUv -lwMSiGEORe7Edpv7FSbq41JiQLF+6+qYKx4lxfs6kY+pjBJCWRsRnSnnZAIpH1ZOkHvxuNW9VpMP -NZSxQAgr/UpBWC30hjplwqzYPR1regznDxN7Imvy56aAIR2GV1LguWXgQQe2zVSp0V65Bg0rDOAg -X3mg1A8biOGgUXl8XLFyD5lGd6k/Izgm/J2D7GqfBvOSb0EO02Lf7rx5MDnDY/BnURNDA4K6J3Js -0HiQOk9kYcTwHgyCDSPp9V8i4HyJ+vbhNj0N6GPA2bAZFVZsBkM73Pvu5hDMrD6+ziL8vmsCEZoc -UWSTgiSDp474WBgdk3r2QEshPrXhPJVQmf2v0ji9h47YPREx1IOM9MYb6SVimqZEky081AyYafVQ -l8ScDm3C0d7Kn6nTefGmOL1D1h4gNZWeQq/IsswGB/dKfEuiQJxhYxjO+uWBeJwofAPFgS8stDEj -E+Dc0hhvcw9jtIC0XF7FjkufAsqNeUe/kS6Sl/z+MYo9CDql3/ap814+R8P40fbhE9AkZ8yYB+Qq -55o7C0U+up6bCE5QvYABdffOg2D7+E/gdRMMFt6NiZsGs+0TcG0E0X6HmHdxxxvkrIcMCkQp0y4l -yLcJ13PpILin99ZfS0Sls0mMHCD1C92+PbDU5yxbYN8qX5l1XjN8AcyF3UW8hst3cnk5OePzwopb -HF2gSrmDw6cstCro+AW6vdCy+tY9jOrDNaF0RcNwbDXugKs2VSYlsyijXBNVWTmM1en/oZQRBKHV -L0jCXHQP1qMliKpZrl8VXlMvHl/p7WxQr+QDw8daZq/bqgovyw405Vyq4imBqiSGPai/Am1Rllsj -hv3ChnWBDRRGQsDWpDM3reUWBxUUyTMMpAK+FFY8iGQFqXhZfkKRf8HbuQYacCUfvr6plBvPL/Q/ -Hw24F9fINZoQ0/2LqCjSiNJ/v0NJcRTB53saKhVJXeQLwEhgZottWU9QkZQwzMeK9cRmjlgPyo9s -znwcsJ6Gnytlglfobg7M6XOUaQApHxahNTnsdmF0nRZ3IIyPRUGnzjTBJn7y0qJjkpWYg9ImioFy -WX++dYxmSBLJ5f5LPoqpL3/jWCNdKY0yYKccM/35HCZbvguz1dCRyCOQCyg0X8UBnYpAYmZ9S/bt -bH6MktdAfpCGGQPBsctGvEpudEX4qTNPgId4/TSUgOpQz0vAgD5ALOlnk/TJ90URKG5MlomUL3Kg -0fy5njE1qFF/eEqfXDzTgDsBte+kzhRg/pcskwYKWyrPDJ4apyJ/Eik2PEqjULf0MA== - - - cPUghRZefPs15IV6l0pepHeZaV1S5BbHetfAG6UOTlVty1pGgdIFobal5FpwbhASI4QYtS0g3A4j -jrQta11LH61xc23LWtdCHGYrbSuk4+fmupY2QruZtqX6dFhrWya6VkQloJxPfFtty1rXArsSaFvg -iO7P2/TJfT8AtS0aHNDlqnSpp5hlzvdiBa5E791Jk6hnBZa2IHQzchy2ZkPWTAhGNKszg6ujlJ79 -3cPCNWiqyaLIYBi5ByhaGfq0EkoDemZgkMBmBQpTOUDUXk7iujCbGx2IPepVMy1jOmU+ClCGeV2c -ADkre2hgTWs6lkoxpGMpFLPXsDzmj3A6FlCvojkg63y3w5lk9ZVU1lE9Ie2kHbDOy0tsPHl9ICmN -WyxidYrML3MlUUDJB2YR1ei8tcnZo7M3Y4zOW5ucxYwGNkZna5Mz+7LMnijiRELjc9XbrUeQqAWz -ZkAVQeZKnJHUoi8yurOA8c40DKC9+6CqtTr1go0gsQrqOWG9jmwS9ktOrGJiRYbmZROuY8qOQqdF -MT5/UNzJMKAc0o3UE1mn8yCB6OBRzvZBBeDWrEt5ngx1j1YNyKwySsTpQEXA2pvx1mbNJq2/R9k3 -7rIN9naY0baM3LGD7L5oT85AQR2dubuwJMrE+mSQGcGYW1kgkbSgFecgBeTfMmDlb6M8pHFd4a+m -Jh2PT8eujk6p0fFFlSuevWaN7AreWCn5DoI6Aj5EAc89CUvDAEIgrU8Joc/9hFW5cP7u4UEsB93W -76Ar+xn4Gr2EruwtGPmhoxqV9ZHAtzUqwySOZkxIY+vDs6GtmZDH587NlzUTgrvSjZsvayYk7srs -ljdfKcH63kuWLU1vvpbHP6Q3X9b3XupNou3Nl7jZYZRJpCVJJ3L+XG/tCUJx6AJCrpIoNibartDa -c9+/tbX2BCObWZbFRqGlV/BmAb9ggKDTeYqaSDtNmCQQXnBRu1DHykCGwyH+BMGKcfDJt+KKh1eS -8mUiE4mRwHVSUShUhYkbMtAswzqTimDEXq5Y5eB2XaZVmUjOwe2eVGT2wDwLgEYvgRaS2k0++1h4 -73Bl8PWw5dwWJMfugHltaLKsNkGxHpFT1XMhpEbTJ+1CCWvOlu/3AcVSLt7vQ2XuiD5ZDhHLjEp3 -4uDs2o0ZzE0uGps8eHOTi8YmpPGZm5usjE3XU0fGJtNTLGpt6bYyNmUXemNTnmnEYBx46vM9cIRy -OYJduQ/EhMRFCfq0vPyaPPZ2k9HKY5NSZl0eC97Ka1qUx5qS7GEjj0Eqb2T4Vht9TgLWmyvDlRNH -TBjFzVWu2G4RH0vsw8xZR2CX7KbRV/YtCBXlt2PICtMHGrPT8V4pxlbyvUP27ajUgrcgDIz4X+YO -uKM6espEsk0go93dSU8Bt4Tx+QdXpZZqfaLO3nMo3u8RW2lGE2CNdWqAnq81JtLqUfBpHmYSOeOK -d49H8GkdpuSpgmov8QYoyPnF2VBMUGg2MCaozQxQQH+xkdx2y8VdTTIvArFKfFAvR8RuwtmVfRVk -/SWgmEQ0V3RbXNDFpDyJBFd0W1/QIXnM7opu6ws6k0x561d08MIhSmCgwpqnJL8Lbj9bPt3MQEVr -Tx9svHEXDVRY8xSyw7hloBJTSZooj3D2SdXH/ghoW4Vqy1R9PB4HkTPAITRVAcZ0SHk536qZAuPr -pkXL1R7UKxnkJ8AdsJ24uXeSbOkW7dyngQswIGrUNrFzP6/lStNppUEaMCl/ATDAo/S6Vmq8xQsr -MnEC3uHFxMJwSgx3eEq+pA1v8fJxaEp+7pRLsVm92Eg+tpDvgEFkg3Hgt7zAg7spqNtNa9d3iI85 -usCT8sI6YkwQJ/5bvgMqY5JQab/iO6CScjs/JbBzWq1N/ZQYAtbkup9SUHTa638s4kiOUv0DdSLN -kQ86+JS4YvcrDrsUUn0ZEU+2USkDm6mUPtWjEJ6Vw2iDfTt/vzK6ccJbPLYy7mSh/naILusQp4Jf -j5BeyR0IoUMCZ0mIf2HKefbt7jG77vBoNHSxgP8ka2xwkk8C/ZNuUKPj+zLkfBkwYR95ySX1MXNi -MHN5DBTlIEOiFYq65FSgYEWPyzD4DQXZ0M1JLb3qe8Oue3TrbcJby0cBJvyd8qvXd3Kc3i0u8Aiu -79b8xp1f4BFc30k2JWt3ya2cJQEvSUr3L87N6yK+8v9Jj272ZdGnsHd4koXE7BZP2+jDSwDmQbpQ -+liX9DMkJPU/BeSOBAh4GBd1u2LlXiMJwSwz5syHgQnxAGt6u2liPbUxftoHaZiHDahr53nRTxtG -O9ncU5tUXZNRA1YK2xyqa6dQTLj37ldS56S+A6pJXfSF29RTm9TYJN4lmcJJXASTeH7xZk81qQNJ -6ddu9tR7PUgxs5s9xTa1AZgEWVx0XkxabIIjF0oHXkxHKH7yXrksIomBhsYq24fG4DpOoHU0EdIy -ACtzErrcQ9zS6fWettHrBEzAfMRWVk/pdTAJ4BHiHR93cDvJQZ9teMcXEQjkHvqkzaRAbyc1UtYD -dTEJJEJD808VUOI8vTVIxMB6tBzGqa1o6Y+OhkenBKZyQ7xxAr0rNXfuSoBiQuJu8Q4PYu4wHLOM -bO4zHDXP+3a3eGKsFxzDAfOiZzkYhiN7Xm7CcG5nIuff3mfbmuGIHqrb+2xbe2yrEdqhO+jmPtsw -OTfMYtupwkyrKYPHtrjG7sPHy+WSCBDCfBTYqrfaALPaTwK+0oGZt/3mzAWcvUD1ertsiDnrkzAh -cg3wi2QSMpeGhKPxA+FnzXdAS1Swss4ikKhV5Lll8B2w9VOy9h0Am+8eBsyrw4B5z97Qh3AZzrBf -u1i9So8XcwANUQwKJHqVPmrTltAQrN0ZjuUXzDsG4w6imIvmnROv2YUZkseI/bP9CrtyZncGrUAY -GlyIQW217rot6WxK8KJMvCZTMWbomkwGOujsziqUCnGB/ktEBFKZqFQen0GpgguI2cAxUukXE91f -NGHO+jO1ZenmHVl2kDQDvRWziimnCG1KMQvhxoD1uMucwAauDVgPtMZsAGkXgAuWC8ygcZF1DkiT -x+IyII27O+0cGXiNyvk3hqGBE6tfteY1hryiv8RrdCfyr/EaaFH8HVNyXIMEgWPZBAvid+SErViu -ZMgrlJ9CbvMahOQyv5R3kddo7TAGXkOABbHhNeHv2hGoBeZ5l4QD1XbzwAtE0kwAaE7B/V4NEOM7 -ZS3NQM4vyzNImoEZe1P0aXbCuSjNbOkJeRBvBr37lXQemmrKMBVJU0TWg99uxBwl4cfACbx5B/KI -cwOOrU/k50q/Xxy4Zm+oTXl8bkcDMdOmYARdd6OBmGlTHp+70UCCpn5Bov5i7xkUjG5ziwVmf6ML -dmdoe4/PDG9vDUODdmnaEeuRsW9KszBDeYMrHdydG9kegqFFWuEYcseGMUDg3dXPEWAZrBaBf/wQ -9YIiqYzkJsS+HqKYkD+HRIDZULIC6NQs0SeLZdwJXJaBHkTRjwJgbPdlR4BZR3BZPCoNd9V+z4Yz -3FkP/WEOhK9QOJPIHiMwSfnlpH1XejtbnaGYRtWjQPgFXcQjdO1LtSo8HXWlt+PMkoruDyeHeSYd -K1DLUKWW2d+9qezxkWY4kwx1Kvkw2wRvCzcoGUUpOCqOrC/RFHnMiQA2eHwqObJka/Ev7sQcMbtE -Ey29bsYcMbtEgxzGrZgjYb3enNBSzMyWjTEs9RcbGpaQ92B/8cuGJU2UgF80LCEJVr3LZ+PhLQOP -wMvy/TIzSC6a5hofBLalRe0O/PmBxijI+yJL9mXpOxTdww8Onw6RdqfwyBT4dOyHKJMMvPg/ltC8 -h0MRHQ0WTVNAOL46nNqxF3xqJ8XwS91xKy25noN3oMkLuhIMV8jBCTT/mRZVT9D5nKlfpl5YFG8T -RHERsPWvAhtsRs+Q3xSp8Qs6MSTA7gVHR/11SJkJi0CG2db4RSAs6nQxJC4For0gdL+8gOJiHnpe -PjpCBZsJhrLH3Zpo2J5siNkzEwzRrrwL/J7LONKrtOjaX3EZRw7jshcBucu4npRkOqkxCo1fuSF0 -7nkZhNfvUTOdFN5Y/QJwD+mk0tV9Nd9CdhiImRE9BriTMM7XCEmH6sUUgXQoISrAkoM6sgPVVOtZ -MDhgmMH+RwXsgm/a3LPgdpIDC/cB+fOjuHHB+0M1WhyGISVPIestIcckmv+uZeRWINal81QWiWEi -BEIdWX9N+N56zTP9+eLU5JrQ6BSuHRoyiCmeGnpzGNEdn7VBLBMUSnvFweVNo0DN3wZmkpmlJ+RG -EZrMuJyKs3Do4ORIMlNtfe5Hg1MlM4/vN6LBGd2/NcgUcgcnRcsldW9CUWhkByd0ye8KcC+sd28y -84QkcnBy5N5kYR+DlcWc28cM7k0Q+9ZEtj4TB6fvzx8UkhIcBIE0EsVIuM5peVGC1TakqAMy15Gk -vjXlU+8XVUq/gKdHpeSG7gXQq9Opb5O9Z9OnkgMLyj/+K2gfg5njI2d39+6gUIwYFGifV7zTf8HL -UmVCYO//mpelyoQ8vt/zslSZkGiHMbChgP6yw8bVCaMejr2qeqj685N6Hoy9ztVD3d7fzNWJwNHJ -s52rE3SqIHA+QDzZ4H6gcYrOMHXmooiLm/siamrFw6uMKv9AdS0J8ShxhC2WND7T6Aa6KLeAwzaA -qhRpLRKOnb4rQCsrFKF97PHpyNrte2unb1M7Py6W3HAGdurhSbGRHFw4ggtr41ta+UDpQy06Vc2g -3VJvtf8N1cxDEjxua9UMRTqyCx5noZot82ECm73Wzr9udowEzaz2ZDb7iCZC7j8ZtWl77ImZvUq1 -ViGZf8PglZpGU6BfnSP6PfAR1yuFKJhBHdmUHqAsRO2p5iZbroN8tvcLoNpOjIDrQHSthu+EytSo -/1SGiTCSLnKdbbFvx4VB9S5/sfwF27jOU5BE9NFEn3NdA/u/bBvHR4iTsmYQaGAwV1F6Q4AJlMZh -pqPf0MDUB2pMFfc1MAtvqA3DxGkbBccgE2Hu69w+EM+Q0KVEnhQNQfwPIZyNgTeOFZnh2Ll1Q097 -LX+CMZ9iafbt/Cbjolu3pb8lkVt3Vva8tDA54/2UbL0R5MBkBFdwa37jZldwW4NJtMiU3/PtljEj -7kVoAh0JNAwalpwrjVjHaj/PnV/BiZZeP3r7967gjPH5nelYpBqW7Nll1LG+0/MtwSRtIAYct0Rr -M5DGDYaePJv2QdtNWrxLw7gX6JQh79G5WGNl9XRoFEpgBCbRoxtnIZoUYMiBMylkrs4ubXS11A6j -DvWFdlTqP+C+SOrb+L7LeNsVrN4cwYuuc3jldaVyHXfjwuWZ06gZ1yGKErA11/l/Ky6cEhxkc8tO -u/uzRVw48Pb/IAvAxlxHv/etQWzMyWJDrgOlPgnEloJx2nLaXasxLy9XXPF2mJVv8Kld2f0bE6ZS -Z8ih4Y0VU86wb6GMScIia1NOqA5UqvsGTANno1L9w/j9/BXtdux/1UlZuq3e3unS0g== - - - fAOki1+L/a+abzy+34v9r5pvNPf7ssyI8pdv5XQZMTpdavY+gQFnU6dLRbrYxOmS2Hzj2dSAQ4sZ -VcjMN4omvmbAOUSoWejWY4Ka/XolE25gxEhQixhBN20m3lgIN8xXkSuen7fR5T2BcKNyyzXxxkXh -Bpz7Qa7+/huXVSGdTcmFxCJ2cYk8PhdDpmHBJB6fiyHTwjgwiSE+vx5svFFOI0UX07jtSDFV7B13 -QmrEbedgEnTLs53jTtjebQfsl40cd4JhJ76MCPe65i0ERboCfdLvNE3jEgWTWQ6cJYUfe4twChB1 -WIJjSYU4h+KL96itMhwCi7Dnt8UXtKOhDbbgPSo2knen4LTv3v+CIFNYaD2IXECPYCJqS7fVv5JL -VhWXPL7fyyWrak4SAsJosdF5OW2mOX0ut7gTh2lN//k7cbskRshC6/FtkcSIOKK2FE3LJJB3Cmz2 -UIkrHbwfmUTUPpE8o5HR5uzD4goKBlCEsy8H9oeVHXElapAlCOyvD+t/BgQiwAMH0VzKLKy/wT+Z -PLD/lv7JvyHSiLKl/ubEfZHGkMXM1SiwqkhjjKXmZhRYVaQR48HiELJuiDTQE1nyH3PsixzC+iKb -iTRmfn3uizTm0oXbIo1Gr8QHW9xapFGjA0lCza+INAYO80sWmbXYHb8i0hhk/u2ca7AijT7uqBsR -zcxEGug76m5EMzORBrRCcAm1rUgDZ78981qbg61EmhmJm5+UIde1iGbmIo14vmiEml8RaYz3YqZp -QrYWaXQ56/W5ilwUaaAu5kauItsMIDaXUG6INNIphrXTuCPSSLk5fjmwvWK1/tXA9pDDEAf92Fik -0dwkBkjjR5uJNJDQFFak0WYz+RV4FWIPHt9vwKuMIo3oq+AsfrRzkUbHYUzsNO6INOLt2+/4C5tG -OcN47rkh0sDbt9/yF9beif9K+kWDSOP57SCt6AHkMI79ahyLNLI3lMZO8/C8ecxE8K6ZSIPuxH8v -SKsk0ogRp/F2GndEGsDHHGc+cy7SIIpZ2GncEWkg57ey07gj0uBQnHiRphEUs/bsV9JdBUV14g2v -smWsrKM5KzcBUBH6EBOjOLcKpijvyt8NpqhGanUzV0bEBRQnU2/tZjZGccK3Q/84ilMX4y8iR6/w -c5gYqijnGBvURhqz8+urP8y3DNzaj4P9ns1BmSENb3l0oVthmOgHKZiFmN2+8GNAUSF4J7efjR2R -BRWKNhCHyeYkbCdxgIsgPN6yZcAthQJBNDR48/4LAS5M7sQxLn8uOvzB/YJx+XPR4Q+ssV+z8aji -ENqVv2TjUcUhKClhBCIXHP4e+j+yN9QmAlHfmcMfxL65EbXe2uFPuuPbLmq9rcOfEnnSImr99g5/ -WF0sSLvo8Pdv0cXccPgT4yiauvy56PAn+sH+YjAdaSy/HEwH7W0lOwMBYnNzhz81dge1Rf5Vysbh -T6O9upjG0Ojw5/G5jdg0c/jz+BwjNjdw+BMzSpu6/Lno8IfJKG2JZ3Au3MhIYTO9K/QxayfPK/vB -8ktzVT/uvNy/bijcINzrb6bkgX04kDwi3AlkiIVqetwEa2Khmshy5QysuUE2MOm+UqtofcSPNgRr -wnejZmqWuF9cAmti1SwlZtfmihY2G48q18g6MgGUQaMAtt9CbNWbrAJRJcauBZOudwWmP2cSKMwW -wobDO/FyjCEJWH/w1jgBKvpXZT3Wqk24epT5ay9Xo0++ptyGAevD9uHqMShOXHyu/5+9LwHTqrjS -VtyXFpBFcUujNLJ1992/e9lkbRAaUARlkU1ZRGlQQGPGJCZmjH/MJDFmlmiePGY00WeiiVHHzKhR -M9HEMZkxJtFo3HBBkU3FaJbWDP97zlu3+lsahAZsljoxzdfVX526S9VbZy8FnPqxw88cuw3Z4cXR -gzu7Pldrdp3S+OSddkxGmV2nqmZnW3Zas+uIlrRDlp1SI/0WvFhVNcVQX/Go+7YWbbyNXqz+LbHG -tvbgzj0mo8yLlZ8mv5OPyShLC9cqzW0pzVVUuh5CxGBv3BkNDa1Wjxas0VHkhENRqracIl6GNcun -AC3OmNywrVijdhiizbj6xWMaBvtjLh5Y2NlY85E17beENcMHXDx4FBSNvg0NWa9oxtYBp+3n8pTY -HNy5PG0GnIZLWwOc7TuXp6+F/7acy9NfluaAYrZ7x7k8212wvgJwLm4aFozWmhStV2kOZg/yTDXk -mkvl4rOtJouXiSrjoFwVRufWl2Lw0GonW65G74XDF48eJ4Upxu9ILXrJsdppiQ7Ll5/W89LWjDal -CNP2PM2tG20qoqB3yVGDRV6eXViOosj3ujMTw8sK/hXXg90OO/Hy7YsEZMSdtRMvb0PJv22wErd6 -CvNOrwjfUlGnzSmaW/JY1UMzamrE/BzUr5VzeZbU12zbuTwXjwKfi0dtQ6H1inN5AE2No/MafjtL -kNnyeRbbIsiMPmfEhHEQZKaf3TDltP5T9Qh3iDST55fBzDbViPhImAk+IhJwq/WTW40FHFe//bbh -qpqdmA6+RduwWBR3Wjp4hW04P//Yxii2Jb2hrxUwP0KkKY3ozrUo2fzrdqJIk5/Ls2uP/6r0i5WK -NLIW+7Sh/kTRoNOX1cm5b70WDQtmrbjEK8ea3P+dytleg7FXBifrGRBixsVOO6i+p0T5ZB+tV/ma -Y9V/oDdu+rTR22nF6ddvlNid0zxIcCtwVFWzI1acbYUjnjIzdtCMxqVDR81oWDBt1Cnnhxfs7FRO -tY6OXLmzXVRlIFTird5lNSnKMrl2UU0Kkfq2BEOlFvg21aSoD60m3hYXVbh1F1WZg4r+yp3uoipz -UFXV7AwX1cAVWxd4WiSlrRUVHVXbNBa4Oc9vrago4D/KTKTg8n7DpFxXfZleJba+1v3aw+oXT1/U -KBXas60f8FBxCvzK04eWFVqXysY74yT3reNPUfZTa6XWV8gphKN71p18zuQdSYNQGabV0MDarQs/ -2yX6KI59VLmKHU6DqNo1BuQya47M5F1gQC4TfcpPmeln5872G5Al+vOU3q2JPnv8KTNtjk8uToPA -jY4K+vWcOKn1NIglswcJFODrg4afylo34UcXGg1E1hkEtmdO3oZCoxU1u/B1QO/CUT3besDDNqDO -VuzJLRp9sUbbUiF4yPTZ+YqYsNRu0HNa9nDsSEvqTAxJvkCmLzd6wso+dSrwcenqASTmk99HBQuz -qeNehIWc+3v6xbrd6K/qWcevI+vybg31RXmvXsvSFWvWnPxCx/ct/kO2cp79Q//iPzT2t4t9fG3x -H2YXFrREDo+vL/7TxSMX2T/4RX8YM+IScUpP7FfcNrXPefmXJw4o/sOiaH6LPXlinYIdJucw2sH9 -sbUNIj9M9PE8z8ViHzM1kMfRr1gqwosWu0cuFZ1xem2Ozpf2Mwv8jMY6/Yo9ufiMyZ6kfvv4MV9+ -nUa2WDRL6wxi96rra17d9NMHUHoEDg3KZbTiCIRBC2b3XTjygqRhkuJ56bnVwM0i9JYfJYg9uX6L -fLbOZWcif9gyicuiFopO/9lqiemzKZnmPnh8EslMwQyi7eDT9RPU0aaVYLBIgjNPqdWIFq/+oql1 -PI3RxztK9QwtyTkY3oef5vUaOcRcz0XzWsIrzsMAU0/L/7AoypfCjNjey3nhaVMbxuZ4PgO72Kj6 -eYN7W+PmhVswY/btnf8oN2MOLp53K2eqZUNm1vB+/CSZEoyFqyu+7pWLQm3L9RJzPXo1yYymsUtG -LaxZMWXY4NOmRcWWx4Y5cfHb710vlyTnizFSRWDIgMGkBf04a+3j14WE2X1BrUx8OgDC084ZPc8c -zDVvTh1RVaRoOadrgNEbZShsZfWQS2f2N2c+WpjBNjlgwjKFITysSdMMyo0Z39coz0Als92U2IHx -h9O9iserfwBYG6+oN79Pn4HmiQ0dqLfRxx89e/5MvWQBqVrik1yjP2DRkPpR4wYv8/Dlhjo7LWaJ -yWPJiCUnL23wa3udfoFFnb7GQqICimQN1OkdAlKG9ZeVM0Heb0FDmdDWoNO5rxExxjTWe/F540X0 -m8hH6Y9NGlt4By1ewc8OrUq9JKpOw8Crrp986ZIFyyctX7xo8dLqAVWDquqHn+77U5fOX9awfMGC -KQsuXzlq2fmXNi1YurJ6YHX98LNGnn56Go9acP6y+QuqB1B7KBRt+5wVBhPCLfkaKWKOWpiNuWjs -KZOHzBu10Js+tJW0myH2tKKhFw3u2XfijKzngAsW409zF9ZJ9s1ZEvY+qmetNyGgmlOsWRY7Pgg5 -M5KmGYNr5zYsK5wTevP7l0dwqFI9fMDFE8cNG5+tGJqOHXxOXcOyGdHZo5efO8MbNaNh+pSGIcOH -nK8gXmSyb7GEb9G1yni2WQ2X4l4GXHDhNDm5fDSPX+pTO+9kub9x8mOQZBedIXH8s3v2XbxkaM/a -pWeeKwH+megHLT6N3v2LA+nHNdm5Nbu4QjbWd9O5hNJTh0yPufxGTKPgWZtv/+eukF/rjeKn1n/z -qQ/leqy8fqUrTxfiACNxS6iQLtQ627G+RRAqxmqso5ZFULaUWv6A9TRwcP6HYcXoPqvFPVi2oopN -E0MbvaKlVjT8mIG6FfQtHhkry0Zu4ukVj40F1vJY8QCnLucqI5yNmeQJavU3+8W2bfotp0lUbPs7 -cdMvqTK15e16mx3wrW//torhTqtY2JoggJm8PaJAGwUBY83dVlGgjYJAVc12iQJtFASKIp62RRRo -oyAAibtUFDCDauSmmJFakGobzRVqtx2a1Iy81Nht5186Gk9s1pjJ0wbOmrSsj/qYRvRdsvyMYfUr -k7EjRnt1U9TMO2bJ2dPOHT426Xle/6LYGX1X0VmnUkbP31XfHKLOWGbWsUbV5cg4G0vuopPr6hef -fEZvvn2vT92K3IZdd6rmmqqjW03amt5rtuN4YH9RWIdSD7bwhx5newqOrDUyDGwvqdNXJtblGUTL -PKSh2FSrGlNuyO1tf0w2xvKVQy+Rs0nmWv2mn6kD4Q8YWXOxuWTAp4ooRkYYerqVEcbXlepJXi6n -TPJbQI8vh2t2zJB++f1N7F8qp4iRHK1G6Blz8UCxv0zEj8LZY0fOvWj4AgNmYyYX8cZk73lp6SY6 -UsGj5f0V5+mWpWaWzR1r9Z5YtN32Gj07xhSYvFLMVmdi/1w4uNRUVyuRAtgr+fXe56fji4x62tZz -ZZ8VlsUZFSyifmPqorHDm7z5NUtHLV8+ZFm/YpeEhloMrp3QnxWzdH4HfbLpYYtsgrbklJ41I3qN -ylmc37uCxYh6slAGfsO0MX6RsZwoRwvvhKUSUTt06mid3/WLBwwcqisibzv7krxt+vL6xZOWYu8a -PHiu4qsaW0tWjtxz1PdcETt66sPoP3hQ02QR+HvqaUV9p8mfTuGfBi2ZOrHo2XEjkBu6dO6QQAUU -ufgL+g07p988rJf+DfiDX6eXqX/o2+e0mUtaHouuq/y9hIVJF+EOp12Kd3CpL4OebA== - - - Bj1/0gRRK06Wq5le8nK0DId5YtN6LqsfDY4nj8ajnD5Tn5MO2ue8XpPPVa0uGsPrKfYniQ3QPITZ -xQ8hWHSmPgT5w4ziR4CrKX4EF6UX549gWGhy9fgQagb3nJs/hKi+5SHI9VzU8hB41s/WH8FpAy9a -mj+CftC3Sh9CrX0IZlB9COaVFD+ELTyCISvzuX9pz5ZHAAk2WjGzt30IW5kHpw08Y6WZ2CP6jreP -YOysupMvnJo/AgWPinlgYpFECTw1f44D/S1MpdZZtPhht8hA80I+msWKi/ruyDVI3O6pl/TbkRUh -Qnf/rV8DVuXWb2PhwD4DduhRQs6XyuU7dBuNUd02XENVzVZYSA5p2yaVYTB7mKcMBMfaxELMl31a -VvfW1zaRv3x181yxbWTROoNsZb8dQxiRFPq3eg1bmhFVNRVPorH/gI9kUXwNFQym+rVlr9PslcVv -Y97giS0swplL/LSYxezCtkyqsmvQOnaWxaIh9TuyNlSEau05VNVs86ZX2+t0X1msOHnM2BE5i+SU -fjOXh5cUfW/MiEv6mu81XOi3PLHkFAlzmFv8Tak78VFzbGt3NWZqnyLUKZlj2/pgIB22PkG2NEmr -asqnqeZ17cCKF5G0fIKYVbnNtzG217D67V+uJXNsbG2Dt0O3MTZp9Lcwx7Z1xY89bXLwEdewfGi9 -bxmMjVbWTR1cvCP7582u+ehJtbVrOG9R//5bvIZ8R97SVRgWF/vbN6nKrkEiBXoVandoxZ9fO6Ru -649SduStAtf5ycg2oY4q2bHfR3MJzKosVXvb4A/cujewaif5A7fuDdR72Qn+wK17AznKjvsD+2/V -G2iso7LkpOHMYt5YAvJszxzAr2AuDjRqw4AJzFKW6SUz4sx69X6Ii1ke25m+6XHmVGUa8nynU9QM -qP5zYySsjWTaTKktjk8vju+YPGJJ3aJ+w884f2GjRpVtPYKsagsxZGMbBreRY2v8JNpxh8omzA5t -aH4b40TOmyWa4zl+biY6R6N2lsmn0H6KyGD0oKYEv84weURzztcXP6O+xfc1w8v5zCiabZKMYm2Z -M8LiP4y6qJex3Fx0YWxNhElxGMeSs2pGD8j6ztY88rKMjdKs8ZYf5Qf8zioy/oS9+06ShzoLP6af -I2aEWb79VHLeptSBi6Q1auV6zmyYe/b0kaP6p30bGkZPOLso0TuPZ8Q8EFDIn8i4JgMKDXP6mqo5 -edGXU/rnXzr7Epk7dXIbcj25p8Ja1zyemQ04oimu3/AhF5fA0VkaMNdLdJ9LTD4o/j6stn7xkPP6 -ijYyA0vu7OW5x7owmHYo6BgzWzkheaToDueWP16N/QGE1bdgV+5/AXr1J3DllzzLYOTQkbW0zM1a -cd5FdAWWAJdnrWfzy1wYLY5Ajd5KmUsicCWBXYsm9TfJgMtUcKozIKVIBBnGmPnGTPLUHBr2GrRo -eM5bXRgaI7Xis0OrBlXViCdwzuil84u9gFU1NWg5a8HKSy+WL8RzRixYtHhp47xPLVhe5Vfzfx7+ -Jz8LWbUfpNVBHOOXWFobz6vqo9+t9vtWNy6tqplTP3z5ylGLz1+5eNnSecs/VT0QTX51/Yhly5ZU -9xl++lkN51SPvvziZctXVrPblGXVI886q6+4Hrf6vbMXr1h83pIFJd+vnzahcerpo6oHVvMa5uAa -Bklv35uDq8Cf+D3c+Zwqr3o4/j/tk7ipUfgwqcqrS7IgCYJqr86PvNiL9Ta9Os8rpFGID0kahLF8 -yMKC3PK0eeg3uQ39ZGB5fOhSPe1T+GUcPlyIpk9WR9UTqmfO8qrny7VNrkrCukKQJNVxoS5LkrS6 -qSr04zq/qKWxpSWti9hie1W22F4jWn81cXX96UtXVvc56+wxc866YN7FC6Z86uIFRU8tSeqi2A+q -46wuCXwfFxQE+BhnQbXvxXVxFIC3NMVBFKEpqfOCMJIrSOpwoVF1gqfkhTFbSli1+Zr8qFBXwJOt -9vFwm4Svn2ZxdRzWZXHgcyQMVJCWJC3I2H6U1nlZXECXqK4Qhpm2FbFp88V4MpvqPL+Q6iv38AiC -ln9lEmCIKGvlA6aT71VPqAoyvKw4xbLKUkyZWB9yS1tQF/mJPGTfq8Njy1pvMj0bW+HWWLWw9VtL -PurWwMjDA8WMLmRJqlO74AU68zPPTyJOfLmRMEzqkjDgqIU003vA1YUpnrltayxuy+oCthX1ba3N -9m1o2wsqYhXUeUnZlbGpsbQpTsquodUmdmzjVbV5ykSFpC4o+HF1bRRirfmyAqIkw6vyW5oabZMP -TEgKgcx327O1tqKuu362yKh+IING+BOgpMk2YS0Cw+y1Ja032Y5tfv7yfMIsKb2GvK14RLSlW2rb -8cto8zSoLQQYOgmrQw+T0w/l+m1bkAJ8E+xFjVW1foDPYZy13mh7N7bC8eOYCjJqlI9aSHgfmAh1 -URplLY2NJY1hXZDYaza9bVsb34RlJc/J9/Gcii/ENjaWNSamsbi3aWvjhfg7sqFE2PKCFM8hCM1u -2NTSlgSYtp5sHBHgK8Eu0VqT7dnYCrePBR1avQdMhLIrsW24iTC/ibDON/dV3gSxBPJHac/W27Z6 -/yVteV88Oz9/duVtEMXyS0FXXnBlU1tG3YlvZ4eEmMCviwupj00R0maUyhIuavProkAhEgCahZBb -Wm0yPRtb4bYD4LrNc84P8LayINJRU09hKE5wk0nS0tRY1JTWhWwq6tlam+3aVjRoYeXXeYWo9MJM -U2NJU8ymkp6ttZmuH/fOFfqQ6LwILzjAyowjKjm4rjRMWtoai9qw6cdppE1511aaWnp+DOIuRo3j -VK4XqJnfQ95WiHMVI/SzOm+LbXnftou2vl+Xhp5fehl5W/GQgMMttu3wZVAp3saHN7wKKq/qsFnk -RdUp/k2iXNHVJr9QqPPCVOVtHzrjltryrm1W3fpdSgUsgpThZVlSHYrqlMnFtDTFkI8Lsp1LU7yl -JtOxsZKXTMeWRkjbGR5/8QBACBF8i7m10mQ6NlbyKh0grUuD1C8eIIJiE0GxKeLWSlPesbGSV8kA -kQ8h0g9LBoAMkXpZyQCtNJmOjZW8SgcIKVsXDwB5y4/8Em6tNJmOjZW8SgfA9JE9p3gA7DSYvSXc -WmkyHRsreZUOAL07iUtmUeyJxBgVc2ulKe/YWMmrZIAYeF7CPRQsTkq4t9IkvRrLuJTyjbDGdIdp -aYqBaX5awqeVJtOxsZJX6QBA7QSwXTxAWuelcclMaa3JdGys5FU6QEZjU9EACYAoCEpmSitNecfG -Sl4lAyQ+9P+0UDKA7jslcNBak+nYWMmrdIAIUmNQghBJXJeIfauYWytNpmNjJa/SARLsl0kJQiRp -XRBEJZOltSbTsbGSV+kAWV2AX4oHKMjuUCiZMq005R0bK3mVDFDw6wqFuGQWFSAJZyWLtZUW062x -klMp+6gu9L2SOYRdswgc4y01mY6NlbxKB0jq0igswYdCWgyO8ZaaTMfGSl6lA2R1YaFQModSrxgc -4y005R0bK3mVDJD6dZkflMyhNBSZvmRLaa3JdGys5FU6ANQyqDclA9jdvoVbK02mY2MlLxmg39TW -JYXCR0sKkJUAOGJ7guCUcgsMQ1+sDgW0AUxDYyLEpPLEGIe2QqKLVNo8T5pCWqEbW2En16edwzBC -KzAqDjhIgE2mgG9mIrB5KhujLS0UpClOcHemSVe7dE3TpJBfSwk7DiKGnkJQXZvqk/F1kLAu8XEV -tYU6KAkeewPDY4yHtjCOI7ZBdY1k5FQFvcyMXMqPo6B36uOmIaeEWCs6SgRtN8Y3I7z02FMBXsSp -IE6qa+M63+yI8r1YjJHoG6kfo7EVfhwFvUWxqJX9RoSmJm3LsH/UQqH3Cl5YTbtt5GE8tGVGcJCv -JVkSSle8RPPAytlxEPQO5KYhWgdhEOkgeFBiCa716vj4C1Sy8HsBXwkCM2xakBePuRgnSZRfSgkz -DlGoS2S3ESt0WEgzHUIUSvFZ4D5Sj9cMbQczHgp0IUryFi8KRcXCAw2N8bycGYdA3wKuQZaKz9eR -gU8aV4dFbyPD5yyrFs+Jn+RNAd4M+oVGjSxnRfYZJSa84ixNdeZGMuuwD4ppN1QYDCHzeRkeG+Az -n6QijabYB6OiuVzGSwdAVx+PC4qARyFCWhSE05aFAckzSCD4iLunwImDb8WJeKJwzT5VyzJWZI+e -MqHlbrnFh2ITx3PH4omN7oGWKArF0YVXwxWBfoUwCzFilrY0lbAif3TFfKz2xfrh6QuOZIOW1wkW -UcwBIqxDrCVfbLB+wYyZ+VhV6OjTm1XBiwOgaySWary7oMABYqxWYKCP9caFKU3ixcWT9dPUNKi4 -5YtRio+/nBPZ45X5uE+oaamYjoU9ZDDx9vlYC4lu09KUJT644d+A7ko0BbLVo2Pi+YkZs4QXB0CX -DOvG1xmt/DGPM2ha0JjDJCX/FMtO1gSkszAk/wKFcF/UJjPLSlmRfape08DD1SjkoUEXpxqcYnLP -uF+jCXMkNQMmHuZI4OUSdRknMhdshrYHXTpS0T+EfK/rMjAGvkZtilKxEYd10LdTM2AhBeyin5G3 -ylkpe/SMfewzAV5Mkih77Dx+QVzxuFM+ejSpXxZNhZiPHv0yCOvSz+gp5azI3qefNBC40icfi/1U -DHO41YxPHk1qbBSPMi0IaPFleqBbEnlJfg1FnMjdbHBBRgAX9iGXJDbBiC8oFIXBU+s+1oRP/piR -sqxxEansOY2VvDiAgDVeoOzGacoBIi5KbE34OgfA/lLAYkSTkWjkW4Kj0tEz+1s5Lw6AXQGrTEyv -WUL+MdckNqU04BYDhQS3n0hTTPVFvpUIrobinOBiLmNF9uiZYrZh88F2Rf6AphQIAiT3ggL5Y4MJ -gIXYPwpZPmKKnUb6KRo0VrIif/SMsWbALPPNC4B8L9YJwfaQe24shjQIYmjyuNlI8IB8B6uwYOZT -GSeyR8cAuwhw3PfV+oslzfkGnFW4bNSmtBBJS0CkFv0KSoyMl6aE5XJOZI+9QOYIQDUMEmUvCpys -ScBgYvYtKFNehAcmyMiJnoiRAztNJHKgnw9Zwkr5S09sDNUAvTgMyR87bgr4EJjClqfcZIHiGaMp -UTlKvhQLIKBfkKmhp4IV+QcKE4CkQuSTfcBVKTEJCRFXPQJAXGBZGuqDlW8lGZ6dgKzHx1/GiuxF -ysbjE0tBlJE/tpUATxZLHXOHl48rKmDdCCqZrQwd0wQPAR3zbbGcFweIrP3AjxNFB6ifoSfxFYCo -lIiLpkIEuQpNgZFM0IR3IxDELaqCE9nHsi1r9IZ6J4W9SH2J2hBM+IY0CRzJgjX7GFo09AH9fDz/ -/BqKWZE/ekYYTMwWIgwK/wKnjawfakDYXbDe8BLRlCTm+RcYEICOIfeoCl4cABAZYMHEEk2ScYCU -C7PFhBCKJiuaAqZ4arayROzFmcboxBERtZwXB8ho6JPZm5oXkOnKxHwz6mUIfVqVBA== - - - nYJJYIYsAM+kX4HCRTknZS89JUQoEddAqHIV9GLFYMyH2Ox5aFIgTYzPiUOq8xtDZnw+5azI3+fu -gLevIrjwx/qLgLfywox0XxDvG5YOmqLMD0yTB7yT2ZzYayjmRPbYETTOCG/Oy8jeXDbeYAZxW7uG -eo3y5s12JgaCGM9C4pS4xMs5kT06pngT8kpFHhb2ERdmQeO/yB57SwiMkffi6YOVb6mYL2+ZO1UF -Lw4gwVyAXdycRk41aRNE46BaHxP3Pej5oYengCbf7GeFmEK+WFJM0Ew5Lw5gXP1yw6HaNUIxpkdi -nIhj82QhQqWBNoVmOyuIuIzHL1EB3KkqOJE9Zq+HuYixMYnJPhW5NxPjREHmfKM2JbLkxW9j9rOC -WFjxpguyI1IjK+fFAdBV3ED4owqlMgBEJFF/8afMbHxoSgM8BTQVQvMGMo0okXvzzQsoY0X+GUFe -/1XbYZiKbo4bTGUd8AWk1ODxl8xsaPioQn5Bwtm4YZazUv7SMwT0phIxRAU19bkyUwCVUYLSgKpA -KqZDbjCpz209FS2n4OdXUcyLAwByxeCQih7LN5AGXJopgCqjlCxjRTSa4B1GZkxVuFKRefiKy3lx -AHQVLTI1uCwDRLo2U3Fvcm9NI4YAoinXdNFPhSP0CyJiRjkr8o9oUU7l9cS8AdHDgSSZhFVSVE5j -rt0UcGZ2NXTMoM5LR40sbKzkxQEMzmRi8gp4AwmNUxlu2OfumorMitWTAc/SIDJNPq8iiQkb5azI -H/uCAFIW0uQk/I0KngkMmDdgNHU0+TTeyregxGRyFboXN1by4gApvbVZTBho0iZdn5lEpJlXkPFe -0BSafQ3fUmkfHY27t4IXBxBDK+ZYhreHvVkHyBhUkAGtQrUhhLhpjVvIUt4cx1RLNDoGqR/ml1HM -SwdAV9VUM7y9IFDtOvMZ8eUZ0a1Rm+KkIOq1l7vApCf2qlB6RrQFVDDjCOibYVMRfpm8WhlCFHFM -H1/Cg+KAYwSUnqTN8/keJJpPVoD0xbQP82sp4cdRAsoYvoe3KEYjGUW08aCgAbFRQlknE6U98rUt -MHsc2gJfx4XGFubXUsKNY+ALkMM0mlb9dDKGqOQF+SYmFudrlivunijAMW8kovwvXX1uYpXsOAj2 -CmwWaE25Ypq0TRcsemIp8JoTKgrSlERBYgbWjUO6YupFpq2U3Q6aW9vgUw7EAgp0rvZ9jyJtE9rE -yZKIpcTunPo9mb7SptODbQxqFutppvdUyU88zYHafFPcvRhzo4yjyBewtH1fjM0qOcv3dPOQtoSm -iiA0wC99jd5VyY+jGO3F97FMU95LIMaCVAxB2FhTRl6HHie2tOEZpaYt9ZRjnPvIKvnpKOAY+XKJ -kDdFu5FBUi43XywsPoN28bVQdiBpM2YvaUt1pqFv5umSqWDHMQDOaosRC4po2TKISGaYsRLsE8UR -B8H3ZFlIm/GLSZsGbYupJUzD/Gsl7DiI2XUkwEUhioPo3uGrCcbcSYEav7RlBTW4CEfdVKWvMQRV -8uMoxtDhBxFuMOIoiVmFQaI2xUZtisVurlGW8iLI0BeVVbpmvheY75Wy4yAxJ5sv15+owCZtamDz -5e5V1pYmDY5FC3VIYecXsoJ2DGhOrGTGISK1Acprzcgf273OS5nIDCrQL3kyZijRO/mYKjNLz5gW -6TJeZC+apawbme7qy5Qm3WywAqmbNmpboSBJA+JT8EPDLBQpTnpmvpkXZdw4BAQcGc8Xr4CK5dJE -6AttoK60qeVI2gCf+bCRJxMcXQNdCBXc8iE8SSIALuPWCrwNX21y2FFx04ad7A6yAMUmkvr5sKoX -S9fYTNtybhwDW18qj08M6mHIMTwaD3yxgoQBL9BTfU+aQt+OqzgrXWneqOTGMTwqBb6Y3hPeB9Zx -4sk+GwV5xoh8zyvI+osECs2NiKe8oF3N9lnJTgfxxY4kltpIn67Cla8uIukdAY8IVwIqInJKW5aq -/1faCp5syOgbp7y7Cn4cRfYbmfRixA5V1w4Ea2JZf5E4ZAi9fkpjjbSFQZi3qbwkffWFNbbCj6MU -iJCaM8KIO4hVtMv4kbhMODHxvSCLMm0z4qG0pbEs6Sil0buxFX4cBQIovic2YUafBxL/JEDqxxD4 -PZMuIdqpuCDQlmXmTsS0LvzElJtxgpRx4whAfwnB8CWyVWwzMgYeu3h8JA0Gz5ZjYL1EssBiWX1p -3pZlmXbFCIFpKmXHQSIqyxIer04qDuLp1IxxVby8iBq5r/aVKB9Cn4b0DBIzPcq5cYyQapsfiyqn -gOUbGJFUhhQvQDuHfBzSlmWZ4aeOLekZZ+aRlnHjEAHDEXw1lugIogmJ1yXBPh4ZdoHKXtIUqgYi -zAKRQKVfFpobK+VF/r4az7Fy6jz1XUmLRpH5YnRLzXwEwonnUNrMqvSNK0l6QkzwzdeKmXEAjz5Y -X4wjfprlWS46GRNxt5iFJYK1rPwE+5Znhw1F8ZG+iWr/lex0EE/sRj47F2IiO9pUwfHFdhVzNor4 -KB49aQtDO3AktjPpS5W0kl0+iCc2Zj/JCGcyCIRKWQViYDKo4ZnIKGkzySzSlf4oMXS1tJWy4yAp -rYZ+QTxo5k4K3P59MQQZ1PBEZ0NLqNl9poVqgVijPN5bBTeOUaAuLb11QsgYCU2PvphqDGbge5DK -Am1TGY1tiRjHpS+E98y0lfLjKJLAI660QkLPqowiSqoIYmL7MKjhmSw5aUto1JA2Xcm+ZgGZ+yvn -x1HEaiAicyGlWUtGkZ1fpqbaXjg1RdsRT4efirssCExbKlqC9E18c3/l/DiKsZlJb5MLgjWoniRf -DCQJAQtf01klbSE0L9OWZrKq1UKT5m2l7DgIYEImvp+qhq2I5QXs5EuwCNe6J44EWf+pWKHNwCGz -KaVrYATwCnYcRERJkZhTMWVF+SBQXnDPYmggfHgiKOjdQTzz03wQ2SylZ+KbGynnxjF8xnRI50LC -KSzedVmMqXGuNGqbmpmlLaSc7gVGWUsLuV+4ghuH8Gjt8DPJ4lTc8sQ/Bx3XF/3Yo6iItoROWXH/ -pYadmoClp3GkVXCTIXzR4VW2kaxGFRykSX0IYIAHpUtMvyYtkTxDwwy7RqL9TDRfBS8OIG7eWLsW -KI1Kk5o5/SzJI+R8zTOUVSjWkzjJB1VXrPRl2E4FNw5RoL9EPvhegWMU6E6XHjGxQ9pSsb1JW5L5 -+bgakCJ/ZMRaJbt8EE9zbMUQEpkbSSi+ydNICR3SxpwKmQyBuRGx78qizjIV6BpbYcdBZNFjyUjn -QqHA1yFpvmG1TExjDdWvyT1JW5j4+bjq05WuGgLQ2Ao7DhLzqcsC9f2Ag0Sc7YIMJvnMVwNHqE0a -BsCmJFSGEffFxlbYcZCIVigBtMgkpWA+JZr9ACiFRMY5IyJCQQYWNTAITFtB02o9a1yr5MdRcP/Q -KLS3uvllFMlZi/ECsOX5RA75nsb66J6cFALTpi4PbmVJatpK+XGUgAY92amNi1WWWqphAhopYu4l -oHquIogX5G2peCx1l/fMvZTz4yjG3ixCjSrlMoqnfjcRpFINlJRvhRLarfJbaMb1JdU91p5Q3QPT -VsqNY0BkjSL2NmnCgksawiCCMkUN+VqkcQsiO5s3LwZ4vV+IpgXzVMu56RipMciLeO9rsJY0eTo3 -fZUQdAy0xaEXVlP/SA0/DfUQvcDjrZUz4wiyfGVJBJ4J95AmNeCJEpbGxKzUmElV+WP+jeCyxmiI -ZhXxDZVz4xAFWgalL72K0qRuFdGS8Qo5hGzmaUHbQq5NsFNdXrXaQsE3XyvhxiESYoZaFxgwJG2K -1mrDMOCRGulM2nRZkKFaNqRv6Afma6XsOEis2qkaXhKClnggxMJEUxNnZGrCacWEZIzBwlAVeumb -RAXztRJuHCJisI/axzJzHxFNomqFM9gh3xMDk7QpYzIUi6h0Ncp7Jbt8EE8s02oUDIlZaUh3leTf -GX+/tGUFWfyS/0HHgvSNxcAhfYHM+Sil/DhKSJei5iUmhF8IORpPgpeau45V1hALUxAmVLXYxkAl -9DX6eyU/jhKYgD4JT/TUGA8AgcApizDE9DHQISJXEGtTmBKzxGUkOr10zVJze+XsOAj0G7loidMi -YokUphMzEguHmZgSDiLDRiIbEH3FOyYxmNJXwbCxghtH8OjmDyTKpKBxMyqKip0pkAwU89olCiKS -YeWhmWE9egulq1HdK9npIIWMrkjpnXopB0lp+gyi2ASzyNfCSJa/RNxlfHwFE20iXY3uXsmOg6Ss -VwGph1q5DCKimYyh0QHaN6VyIU0FOgSlLRNLk/Q0unslN45RoHEliFIJ+jRDeDJtg0jM/cQs1Rgk -rMwTD6Nh58XKDjiVmFsrY8YREv5d+qYa6SJNvtiZAgkLMdAhLmCxMwUaY5YYdnrBEitCX3MFM44g -ZpqCdJV5rfNW9CidkDEWmQGOQkxfSaBRYDk7ndXS06zUcmYcIaLfKZBsfwGEJm0LxMIUSLyIwY1C -RAt3IIFaSZwPG4iFSfom6supZMdB8O611EQsEYsJB5Hr8uUCs9whqXpepgNnEvCQGY4aZRZIlozn -m6+VsuMgQH98TcqvxOY+JEUdCkCQ+LmLRlVdjYFM1DORD6tRQNLXRL6Uc8tH0FC5IBEtJuGU8mn5 -DCS6yGAG2rJIxwXmmZ0WfWPtmBS8fIBSZhzCpxdLuqaBzyE8Xn0gEUAGMiTgQexL0hYxAEPaNFw5 -kDgkz9xGOT+O4plE06RAWRCjJLLvpxLbKP4ss9g8alfSZgKw1PogCr30DSNzc+X8dBSxSYjWjl2V -HgwZJWWYXlBQd7KOkqjqhiYbySNN6ueUrpqj39gKOw4iBpdQO2vMgIxRoOEzkLANAxuS3hNpMGeY -B0fotYhEHcir8NV7U8GOYwAixDYEVKVKLoMktHtKgilDu+RroViaNOc0MuMW6GKXrkZzr2THQRJG -pEimL51sYsVSuydUejwswpVE72Q6rgRwBaZJg7SkJ7ZL37SVcOMQMYMZpW8ahmYIWVSB7BkhJSwJ -SBI7k7RFfsFw0/AaCDky7XzztRJmHEE8fyIrSyCJ+op9XQMyz2VbT4hXEhcXaQvjtPQyxMYk/bDa -ffOlEl4cIGSuSaCiCKdUSJNnoOIOIVfMib4OGuepdb6GVWWZdk3UR1XBjUMEDEWTvpjUiiQaDOnL -9UEkDQlWspbFviRtJiZdGAZiX5KiGEamqGDHQXwGzAQiRhcIV4lPDS8QQb1AuBKUSnTgjFZ/cgx9 -5ZiK4m6+VsqOg0gkouiOojZ4xCuBONkDRIPxzHz0aHTQEj+Zl48binVJuiaZublydvkgalaV3mlE -xBL4Fo0xUB2SiCX2YjEvBRogYpa0RyFNSjh5QZyPUspPRtkBv7p6BNVC53uqXdOFSQeFpBPE1jep -6qW0meAdadOtqSU8oIJb7ialGUZSzJkppRK7usn8kDG+9Imq2CFtMWsPSZsm4Ki/ng== - - - gk8lv9zlq3Ep6l+PgsQ4rzUAQ7zhJm5Ifcg+neEpk0SkSeMg1V3PCMFKdrnzOlUfvsSf0qouvk80 -gEWa5N5xDeeVNq/Q4jEXE71vVaYKVrkDPpP4D/GLZSomi6des03EwR0b1664YEWClLaQEcnq0S/4 -HDZjyGQFuzyUIBMFXJ3t4vxhWAQtiuohVdOWaCJqAJE2kw8l31OHkvQ1AWGV/PKwCKZciFs31vwQ -DapQy7aqhAoAohdpUhYd4bEZOIrECtqSGFHJjoOEuas+yVOVpU2TjMTFbcJCRd3RfV7aTCSqFk6R -oFe5GLOZVfLjKKKbibUsUP+gDhLRciR+bihADL2QhDXJkpGwhwKtkqGJgpOujMyt4MYhYhMOIG+b -2VjSBmk1ovM75lMQo70YOcX3TY9+GDNvUHqaQI5KbhwjMdcXGiGvSdsKGmwSqsefvbHkgpBtXpDm -AyeeuI7kFRqzewU/jiJGGwnl0MdBd40UMNAAFPF/++a6sWCS3AFOzUe+l4gKICNnkcJqJT+Okho/ -W1iw/gepTyBTV93dJmhBVEZZ5NIWp0lmRlaHh683yoVSwY+jZMZ7EWZ5knSg6QliUhd/d4FAKG54 -xYrIy+P25Huq70tf40KoYKeDRB7zBYRhltLnH3kmiABqYchKPqKGap6KtPkMFRIlWcExEnMq766C -HQfxjYskilgXq0nbMgVHzWHgJUYsJShNxnElX1P/TyReXN5bBTeOoYk0aEy0DKSMEKrL3ZREEx1X -rXhaaNEzd8UsIukUagRhORuyDtU1Kx7zVDRs4R3R3Cg+bmauSZN6t8QBn6VmRJ2Z0jF3NZXz4gAR -jZLiV/c9rg1JhFNMjFuCIiJxegd0egdxlg+rdyhXkmZcGxX8OEpsYpVE62RGtirliominJooHbl1 -xURRYmlTlb6ZgqKop1SSKvlxlITmJV/TjQp8EwXunuLk9mjwlDbjXE8k0D0zI2smgFa3M4FrFfw4 -ikREZeQoopAMkrKYkAgzpvKRGgkUJNDmZUneRleDpDUE+bWUcOMQJtVOhB61dMoYGWPNRQQzcfTS -Rg++iGXcDCMx8Io/UeUl8+7K2XGQzFygKJoZV4YkyigqitYac2XEYpAK2ZaHw8jUU1QUAThlpFgF -Px0l9vJLVD+RDuKbECipV0ojlrRRfEq0EFbepkmjqhZoMFIFNw7hUykUBSqPQxSTikJikhplRZpU -7FGdzzctDExMktxpVMmMQwT55WWsFSRDSMx6aPzutKxKG2Un9c9neRtEulT75nt/BT+OEhrxLveo -yyiRERfF8GDibdBGcVFyRZJC3kZxsSASunlz5fw4SkSx3ppLZBQTr6umGxPfpJl9iTZ5JtROAlTU -Ix7avb+CG8eIKeKJ2UujtMVkRJe7sQ9LA4XFgoQmxXmbCouF2CTSlDMi84SynZgB6SgVgw9FRTF7 -+ozH06Q95ZblwRxxwQQRFVK76Zdz4xAFI9mlOvn5vtPc9xwwRUo6Z0ZSlNSE1Myg1EiKkjzhJ/Za -SvhxlDRPzmV6dZMypKAIpdVk+oqtiYJiGuXZxWoIi0w0QL7ll7PTMaSzYpgkEhS4OBKTjS6OhYSh -nxLboxAh6QBkJ0qYuLqkp0e1s5Ibx/CNYCcpDzEDCaSmi0IiNM+Map1YtCg3Sci+2boEzRQSxZFi -NvwKfhwlyC8xy/VvaSsoKGZ+njsjBjc1OqnLjkZU+V6cyFtWLxZXRwU/jhKaa8xMaECTtlFWlPh2 -E9kIAKKsKA7NAuOuBCAVFVWJNi+vnB9HifJrjPLIUzHEKSpmoklSiE7yIBINNOcaUfOHoKJmT6Sm -qYQbh4iNYCd5ESb4VMKfFBUzjeaRrokRE8UjH+aDUkpUn7p5c+XMOATU4MQjO1OeUtpUShRHfB6h -mZjkDg2Z8Kl5SqSToqKEG0TmzZXz4ygFynXiOtc6INKiQqKGg2QMexEDnWCitIUZEUAMfuo/0QCA -IL+WYm4cwQRnMYQl5RpJKSNqPA1VfLEvajhBlMekqaWQAQHGo1zJiyNo8Rh14Oc1oQueet9NpT6x -e6rcJF71PGxHquuGJhLA7PjljJS79BWfpjjuEyqcYjMVQNSotJCimZikM+WXSSaGb4al2VsCAWLG -yZSz4xgmPl399lGs60Lso2KY1XA9o9yLPVtdfH5LVEzBLAeNAzAbfgU/jhJQrtMAQ/VYi2FWxURx -n+faveQ1FtRjHdr4f9kfBRGlq9nxy7lxiDD3dhuzoIwhoQ9i3vVlBvKaI+NEFANKko+apeo7Fx3Y -vLZybhwjolBHRz4XhvhnNORCqiMa3V79Mxp+kOY2c2lTGVGjW82GX8GPo8SMXRa/fWReu3gC0lg9 -6GlgLjuhzKSedpPHICFtiZZ3EON5kF9LMTcOkZgLDMQrwsg97NcqI2qdSWr2hQJFRA0zN+Hg4soS -MNT4bBPVXsGOgxTyC4wY+yWDpJQR1a1ulHvJaFSbpxhRmIcvbSojanC82fgr+HGU1LgOxHgn0coy -SkYpUR3r9OgF6jj1jGs9jvM2FRSZ42Dur5wfR4GCKxAmRq7YhEynHgVFNUoZ5V78rgqJ4ltnhLra -2gUSpa8Jjankp6OIFKEgJgkuWgBMjOFRIJE6YWB1exFK5KrFnsVIImnSxAXpabb+cmYcwTe2X0lT -CLVIi5jlVUhUHzrlH0mv9OlVDzizxAee0cOfMd2vkhdHCBRXxWQT+R4fVKgGA7XNGKVeoggUJsSA -kphBcw+h1ChibYcKbhxCy/lUq3WFJsvUqJVikch1eg1zCOnwN7FQ0qaConTNm0qZcQBTTUbYZYxS -EHN+rKAY2dhoMforJmq1HYUmCbdQSBSLiFGnK7hxjNhEYUgtnUg9WSytLZgodR9YY1u8DSolqppP -C758T6VE6cv9voIbxxD/t/ZVqx0fldQGEEyU2g/0yKkXQUFRDCcpsUm8HIqKUZTHdFTy4ygpxTrR -qzUNoknbGIimpWQomElokKKEWFBM/oqkbyoqik5utOkKfhwlM5520YRp1hcfiaKiZAUYs36WuyZF -5TVmffGvKCpqQZwkv5ZibjqE9NULFE02oVUmk8haASxR7agIiEyqziE0xfmgeNeJdsxDxCuYcQg/ -vzy84YjHjUigm2Ki5AQY1V7yOhUTxYjC4hvyPZUQpW++91fw4yi5+ypmOFFTFb0rEX3ouWYvIq4i -hNhQClwOWiQ90RNwsPcT1MrZcYyQQp2oJxAfOUhohMQ4yzV7EV0VEMWEos4rPb9D8VA1Oc9eSgk3 -jhExfVF1lgLNlRKpqoAoPjCj3EumrwCiFpykrV8iHBUQxTbC2VvBjWPERrATnSOmTSaLjZCohUYo -oYnULJCYhDZxSyR6maeihURmjHJuHEOSXBI66lmBRZpEm1dB3aj1EsOqmCj2EwbPytc0LYf+fK6P -cm4cgrkeKpPToi+6gGJiklqtXmJxFRPFfGIs+qIhMEKikO/7Zcw4QMrKJCKqxikVziwzgqJUyjDP -PTNyota/NGNSShQZ1+jSFcw4hHH0qzee9vxQVYvIOPfpiZU2ik2StWDs+VlmxESxiZgtv4KfjKK9 -FcREOtQYm1BiuRUTxbnvM4tcwsUVEyVpwWN1AnSlpCgiY8iaLOXsOIbPvFR1xweslyUx6Zg56t03 -9Y08U58g0HAjlhjRIPqQXQNTwayCHQcJjGQnIguN+XpKhEKipCfQmC9tlJtEBErivI2CophHWNun -gh0HCY1oJ2kHqaqboYQmSwk62Z3DmJUhJFdCxSaJqWNMlrRphr+KIgVze+X8OEpkLlHyDhINHQk9 -k74v+2fCjEppM+7xiGIR2ygqasygub1yfhzFZI3oXh5xkISFWgKtSpCxs/HGSpvm7bFNRVPpyt2/ -ghuHSIxcJ4Uj/JQvvmDkRNl0NBBBmigmihWFpbok+UVRUTZon/UOKrjtiG+8TaeBteEkMA38kLCC -Wil+lugzEDuHVEVR2Umnm2CnTLLIbH6U9TSGV/p5Rtb7eCv3s1i6KFFysbUaFqqG1JY29Y0wyUR0 -bJk7rbblfRtb4ffxnEDkMftQRo0yCuKFiKli0mZ1t6I2j21Ffe0O3dZTiKR+r5R2jWLGhRdfhUSX -Ghm5pS2yheZt14iVC9p+xIQYLzRrSIwOKYsjyhlzUg9WTC5RRCjxYyPoeCKymzjNgMcvyAfjDmjj -ZYjLP2WEhJROVHE89E2hQM2YYc0MMYiEavZL81JUqv1pErBnPa1tvIp6OSJRjkfEt73q+oblCxZM -XTp/Gb6gv81rWnD60vkLLufvZ61ctvxT+e9Bdb30G7505eJ5SxbPW7F46SK0DqrSs/94hKKe/Yd/ -5lcl1X36Vk87ZzuG87d9uDaOEOzyEcJdPkK0y0eId/kIyS4fobDLR0h3+QjZLh/B344V3tYhdv2q -9nf9svZ3/br2d/3C9nf9yvbburRbjqxto+hWcv5srZT4YK1XNTu3/K4p+Vqxr9ZX707aehtjVEr5 -fBzHdLVy5SETO+wVmd/pATJXHTDXprU2KakXl/RstaWVuy3+3TM9vDDnWt6i9Q/M2GKE1GtspW3b -x9opz3475u52bBpblncurbqEh82Zb5j5KPWdJDBatVot4lkrcYJaIjn0xdyi1oRaiYOUJxYGJien -kZ21lIIeIEUreK1E8Wr4hnzTWFhrRTpUl34Y2DiVyrEbq8ZWnVM1sepMbDG86Et20ysUVKiVCEbN -tBHmzNqtZQmtINVjMfPjPbfAO2YYihziEDOXoZJlPuClpe9WTwtvWLxkwcCig8Mnz1uxcsHyKjw5 -fGdMVf2oBZctPn/B5DEjqqdNrJopgBXoaQVeCHG+1vxrWvWRssC0PlJozLOqoW5VS2oJ2F3QJgZy -tTmT/F88her8XqJqRZiqmhq9gVHzVs4bWF3wwygJq6adfnizI0eOHDly5MiRI0eOHDly5MiRI0eO -HDly5MiRI0eOHDly5MiRI0eOHDly5MiRI0eOHDly5MiRI0eOHDly5MiRI0eOHDly5MiRI0eOHDly -5MiRI0eOHDly5MiRI0eOHDly5MiRI0eOHDly5MiRI0eOHDly5MiRI0eOHDly5MiRI0eOHDly5MiR -I0eOHDly5MiRI0eOHDlytG304YcffvDBB3/961/x+W9/+9tmJTTiV3x45513brzxxsGDB3ueN2fO -nAceeGD16tX8Dr7w3nvvoQv64tc//elP7IKWN998c+PGjfyOI0eOHDlqlQCSmzZtAswCNv/v//7v -z3/+8x//+Ef8inZ8+P73vz9kyJD999//4IMP7ty586GHHnr44YdfcMEFr7zyyl/+8pd3330XX8MH -Ivb777+/QYkt5NDe9+fIkSNHuy9R+iVgvv322wRV4uoVV1zRqVOn/fbb78gjj9xPCfCLn1VVVb7v -33XXXUBdYDU4EHXxAQyBwxaBKVc7cuTIkaNW6U9/+hMBE58hAOMDIPThhx8eMWLEJw== - - - PvEJiL5A3Y4dOx522GH40LVr1xNPPBEgfOCBB0Ikvvzyy9GFTAC/6GjBHEiOX50VwpEjR462QpBj -169fv3btWoLnxo0bv/71r/fp0wcwC+A97rjjDjnkEIrBEH0pCfft25fC8KGHHgqgfuyxx9577z1C -91tvvUU8/9vf/oYP7X1zjhw5crRbE3CS3jfIsQ8++OCCBQuAukBXCMDEW2Bvjx498BNyL0D42GOP -RePxxx9/zDHH8AsnnHDCNddcs2bNGkq/NCZbV50jR44cOdoS0fALGfiGG24YOXLk/vvvD1AF5NLU -cNhhhx1wwAH4jPYjjjiiS5cuEIkpDKO9c+fOkJO7du2KX5cvX37fffdRAAYC48P/KbX3/Tly5MjR -7kuAyjfeeOPTn/40cRVwClA99NBDgb1oOeqoowC8/BUE+IUwDOylWRjtBx10EHrhO/iZZdlNN920 -fv16gPAHH3zwxz/+8b333mvv+3PkyJGjj48AfYxk+NOf/kR77Pvvv4+faIdo+uGHH+JPf1Wi8fbe -e+9NkoRGXUAuXW/4DKSF3AuwBeryJ/5KKAbq4q9EXcjJnTp1AmhDHuavc+fOfemll2hSXrdunY2y -2LBhA0bn9TDY2JEjR472MgLWEfSItzaxgvG6tBIwTHfTpk1XX3310UcfDWjlTyAtPtDAyzg0etwA -xXPmzLnqqqt69+5N2+/BSvxAKAbV1NTQIlEoFG655Za33noLYxGNQZCNAcIW/Nv7OTly5MjRzidK -tpB4NyptyonZbTQO4PNvfvOb0047jSgKgIXsCsmWRgYIumykhaG6uvr6669HXyDnqlWrJk2a1L17 -d7RDGKZ7jh2B2GhBO34FB/y6aNEiuucYI4EtgODPPaK9n5MjR44c7Xyipv+Bkg1OgOi7evVqJl8A -D6+55hqgKGXdo446CoIugBQ/AZsdOnRAIwMegKUzZ8585JFHmCJHDAfCf+lLX+rTpw9glgKwBV5i -Mi3JNA4PGzbsnnvuYXdcm+UDQG7v5+TIkSNHu4QAkjYrjdEIjPV97bXXnnvuufnz59NoAAg99dRT -Kb4eogTgPfroo/lXfFi8ePGLL75I4GXIBGVp8H/ooYfOOeccfpNGDKAx+FB+BpizBZ9POumkq6++ -eu3atewIDn/+85+dFcKRI0d7JQFy31cC0AE2bWju66+/ftddd9GQCxkVeNu5c+f999+/SgloSY8b -8XPIkCF33nlnc141glENhF9gMnm+/PLLy5cvP/744yH9QtxlABuZU4RmZAU/NDY2Pvroo9Yc7awQ -jhw52iuJRmA64IDGhN/nn38eAi0A9sADD+zSpUuHDh2AuvSygYC9EFlpOjjqqKMuueQSSMvotWbN -GqIl4Jc2jTfeeINgziAHNP7gBz84/fTTGR5MMzI54zPGwkB2FN/3v/KVr2zYsIGc2/s5OXLkyNHO -J8i9zIZgphtavv/97w8ePBhgCHiErHuQEmN6aci16caDBg264447GMa2ceNGcIC4+/bbbzOmApIw -ONMlhw/r16+nMPy73/0OwjDtGGCIgejFoyPv0EMPtbZiXMCCBQueeOIJJwM7cuRojyYW9WU5MiAh -YBPASBOEdcNBZG1qaqKjDaiID8BA4iRQEb8Ch2k9AGyee+65Tz/9NAuaAWa393puvPHGOI4ZI2Eh -nYkbHAhDUx5OkuSee+4htuOyWQyz2HZty/swt87BtSNHjnY3YkFImlUBXwyBAKDxJ7DrJz/5ydix -Y5nRxvheWnoZyttBic6y4cOH33DDDc8//zz6Nmt5yTaAHro899xzs2fPZhTE8ccfb0Pdunfv3rFj -R3zAz27dugGf8eHyyy9fs2YNLpXhc+AAKKb4TeMJQzhc7IQjR452QwJArV+//s0332zOEy7oL6Po -e+WVV1ZXV1P3t4kVzGujcQBSMf1u8+fPv/fee23oGuRPft7e66HIum7dum9961sYmpjPyAqMS4sH -/X0sPYHLSNP0F7/4RbNiLwta4i5wC39UgoRso4hd7IQjR452K2KcAz1uVOSZ7fvrX/96xowZFnsh -f55wwgmEXELxMcccQ+zt3bv3ihUraMtllXUbr8vzhrb3epr1kCNczIMPPnjWWWdxFFZao48PsjEN -ICz53rVrV+wIn/nMZ2hbRl/sHbSl8DJoTkG7y2J25MjRbkUM0MWHtWvXUmp9+eWX/+mf/imKIiIe -9H1b2pfCJ60B/Ov48ePvuusuGhwo+uIzgJfWDNZd3y6y5gLCOPD805/+NMCfKR4YF8jPQ44gG0MA -xp+4KYAWLlz47LPP4vpZ0YJoTIb41QnAjhw52t2Iurk9VOjpp59evHixlS0hcAJ1jz76aKIcrQEA -QOAhwHDRokVMtWhWqy+YEPF4zgUV/+29HsAmA4YhwTLkDDwhDA8bNow2EAxtS66xlETnzp1xwby2 -6urqH/7wh2+++SZvB5cBJMeOwNhmV+XSkSNHuxVB9KUBAUj1rW99y4q+NP/awAPgG2uts3ZZXV3d -bbfdRtWeoQhEcrCyLjxi4PZeD+vwsAQEP7BM5euvv37xxRdbyLWSOeu9c8vgT7QsW7bsmWee4XaA -jQCozkA4Fw7hyJGj3YoIdMA3oBYkXoZ+FYc9EPH4gblpUPYZb2aDeyFbAnXt0ULWH9cGKwR4QgZm -IJlNCaFMiyG+//3vZ1lms5h5qbxaWoZJ+2ldtVtvvRVdcG3gw4gId+ayI0eOPgb6a07NeY2dzXkx -SSIbvVQMHrjzzjtPO+20jh070rcFsD3ooIMg+gLTWDaHKWldunQBJkP0ZaabrVHJWsG7+o7oZaOd -5Nxzz6VZuEePHgcccACujb45JtPhV1Zpw4empibm39EZR0MEjdXYHfh8LM47cuTI0Y4T8IS5bCxi -RpyhH8p6pt599126uubNm+f7PmNuGe7FLGAKw4Dlo48+mtEIkyZNevbZZwm/tDnQ2Av4xYddfVPE -fN7C888/f8MNNwwfPpyir41JBjGpmUWJmUY3duzYn/zkJ0w2QV/COA+ho/TerMWQd/X1O3LkaF+g -4igswiOjAoiZjAqg5eH3v//9lClTCLkALuIVfhJvgWP4le6to4466qqrrrIxZhQpN23aRBmYaL+r -74uD2jQ3fL733ntZn411KhgbXFVVRYOJrSOBG6yurr7yyispDDMVmkxw5Rs3brRFLx05cuRoB6k4 -BKtZj2+jVZZeM8ImpMHvfOc7/fv3p6AIsOKZQZAkiWb4SUUeXxg2bNh//dd/Nec125k6x0JntGbY -EzR2KdHZR4/hhg0beFOQY1esWMFCbbjmY445hsDLKz/hhBNYBJ44PGPGjF//+tfcg3Dx6MutitaJ -XX39jhw52heIyWiEREq/xBl8YFDB6tWrZ86cyeMyme1rgdeeqsmgArRfcsklFJh5GD0lalqAeWDc -u+++yyzgXX1fjLLAfTG0zArD+HzXXXeNHz+eSNuxY0egLmtW8C7wuVu3bvxrFEX//M///MorrxB4 -165d26zStfPQOXLkaGcRFW3Cb3PuaSJe3Xbbbb7vA2yPOOIIIC0Ps+CJmfjM04Io/YZh+KMf/Yjx -tAxpANhS8iQ3APu7Sh9PlNfmvCYwrwFojKEpu27WasOLFi0C/DJa2IYu40ZY4x03y0AO3PgFF1zw -1FNP8YFQmHdWCEeOHO0UYvgrZVQGYgFhIP0Cry688EJiFAi4xGpmwCiGENgE5OrqaoiUwDQW7wXD -1157jcZSVpikA4uhaBbbd/V92fA2OtR4QAZD1HBVdDtif6mrq7NBy5/4xCeIwyzmRoMw7zGO429/ -+9vMQ6F2sKuv35EjR/sC0SlmlXQgJODl+eefh0zLCAEAkT2VGPDLkDMerIlf+/fvf91119kUORar -JB80svYjj62nQcDaZnf1fdkUD8rA9Ccy3Jd2Xe4FTz/99MKFC23oMo/w4AfePmu/Q87v0qXLihUr -eOyRs0I4cuRoe+nPSs15jd9mNThYJZ2lJoGN1157LeVbYCyUcfxkcTM2MuaBgQTTp09n2XOWx9kj -iKU1icksTwGJHcIwEBgCMAu4McqOJd8hD9PuzVi7QYMG3XrrrZvzYsI0blOkB8LTqM5R/pwTLTzt -fd+OHDlqT7J2UejgmzZtas71dIAGVXVAx29+85tZs2Yxugyy3wFKAGEgDzOO7UFsxx133Gc+8xmI -ylb0be/721aiW9DWN+b1A4SfeuqpSZMm2bRlppYwfpj+R37AAxkwYMDs2bNpE6ZUz+KWYMiMPwJv -mYuzve/bkSNH7UkEWxpFKQFC3N2oRAy58cYbaemFus1UBXuMpo1/YObFlClTHnjgAcp+e1z9BNw+ -gz3wBAChNiG6WfMsrr76apZx46lzkPa5H/GsJe5K+Ix2wDVTrSH6EnhZIIjbGbcka9hpQ7a1I0eO -9iaiGbY5F4bXr18P7CUWPfvssxB9gbe2bCOPj7e/4gPUc1qAr7jiCojKxBYrQ27YsKG9729biVuG -9TkCNim+0jqNzw899NDIkSO5AVkZmB948hHglyh96qmn3nDDDaxKgY72rBDudIzHs5aK9r5vR44c -tSfRHQY0AM4wqZZQfPfdd/u+T+MnT9K01X2ZMgaRmBDU0NDw3e9+F1BDd5s9La5ZYa1db247iCfE -sc48rt+GKzerVZwuRfz85Cc/SexlgXd7FrMNhObGBHn47LPPfv3119Fr3bp13JIo9BKEm9XL6RDY -kaN9nGg0wE+aHUBPPvnkypUradRlMgJlPMY/8Cc/dO3adfbs2Y888kiZKaNZj42jLbS9729bycZp -gKgCWMecDfTFDoXP2JuyLCMOM04YzwHPBxsTTwIFOPP0pQEDBnznO9+x1hhG91lzBJ1x7X3fjhw5 -ak+ybnqeqvYf//EfU6dOZUlJCsBAGJp5Kel169aNgQF9+vS5/vrrqafbYzqpWRNz8HMPskJY2ywD -0hichg9M5QNgrlmzhsZhPKVXXnllwoQJLHTMJ0MLOTcm7Fzdu3enoRjtCxYs2LRp09q1a2mXYKA1 -Ebi9b9qRI0ftTKyvSBX7a1/72jHHHEPhllUZGdzLUg/0OkH1Biw3Njb+4he/oGhnhWdiCxPoWDVi -D6qTUHwmHetw0grBDzY2z3ro3nvvva9//eu1tbWshkHLQ3GMNEPXmD3Xt2/fP/zhDzZ5mZkgzHZp -7/t25MjRx0Qsg0AYoaL9NyV8AJxOnjzZSnT0KLHEGX4FIFvjJwS8L3zhCxAIqaEzvGofPDqNwv+T -Tz45ffp0uiaJw/zA0mo2cJpRE1/60pfYi/V8aBYuru1D9xxPZ27v+3PkyNHOJFuDl6VpePw6l/y1 -115bU1NDVz5+8vR26NGADkq/NHgCe0855ZSf//znPHbNZh/YqK19imxpyhdeeOEzn/mMPYL52GOP -ZeYyHibgl7HTTBXEXydOnIjNjlaOZj1UmkzwKw/Io+Dt7MOOHO1ltG7dOoq7ULdp2w== - - - BPauWrVqypQpRA9682l8oCoNMOncuTOTDtAyd+5c1nNgcTPGaFnJrb3v7+OmzfnhR/RjPvDAA1On -Ti0OkMZnBpDQRMyAanzA077uuuto9KDZGY/RVv7krx9DnWRHjhx9nETsJYTS2nnHHXeMGDGCkhu0 -Ztp+GWlGsY1Jx5DlfN//9re/TYmXpdKsHYPhxHtQ9vHOorVr1/6fkt2Gfve73332s59l0hweY3HU -9NFHH00DO3/Fsz3//POfeeYZdsRL2bhxI/dHPFuAMG3pjhw52muIsam0PUIevuyyywgRDOuFwMYD -5elCAkSwBXhyxhlnMMsYmEPhmcjDD4ywau+baweypTub87BnOh+/+93vNjQ0EGzxbBmWxqA+Gorx -SNGIX2tra2+77TY6/pq1aCfAnM92D/JgOnLkaFsIIhYrqz/66KM81cIWc2BRHSrLzHEjFNfU1Fx/ -/fVABvSFkEYvEk9G27RpE9rpzbf1fPYp2qxF3fFIqRowvIHtjzzyyOzZs1lUzcZOU6fAM6eX01Zd -u+iii375y19SGLaVk50M7MjRXkY2pYueeophrLjYqVMnJlzgQ/fu3YHG+M7EiRN/+9vf0nZhUxJs -aUdijjVE7IMym7Ub2LRuxkLTTYkHgs2rT58+LBbXrVs3PFiGWIPwK3GY7rnJkyffe++9UEwYgcya -ye19f44cOdqZ9Ktf/WrSpEk2b4uHAttDjRl7Rlg+5phjrrzyymY90I1yL9H7rbfeYpKFNQijkZnI -+6AhojhiweYXc0sCODfrlveLX/yisbGRKgYDS3ikCN1zjLWmJgJ8/vKXv0wjj42pduTI0W5LLL8A -AGSmlcVJBugCJ22k0wsvvPDNb34T8hiWP91AhypBJIMktv/++3dUYgLXuHHj/v3f/30fjC7bWYRt -i4DMcLU1a9Z84QtfOO6446huYOPDByZx0DqBJ2+PY4YwzDwXG6fNSkGs6rMPKhqOHO3OZIuKA3hX -r17N3DT+iSFS77zzzlNPPTV37lx75NmJJ55IG2+XLl2s9MW/ApAvu+wyOuzArX1vbc8la6Wx2yJ2 -w5///Oe9e/cGDtualrS38/AjbII2GLumpubaa6+lNZhlKGwC3b5p7XHkaPckJsxyeTLZDcsWP1nb -lorwnXfeWVtbS0c8lF8KWkBahvtCHrZeoTRNb7vtNoptrmbXjlBx2jJ2QL4mgCfey3nnnYcHjv0O -kIu3wPg0vAvIwIzEJj4DqKdMmbJq1Sqyeuuttxg8DD7r1q1r7/tz5MiREKu7sKqDLWxrKzy88sor -TU1NkHJp2sWipvcN652hqlj1rDYJXfiiiy5iUXHmyjlBa0eItnF7DDS3RW5t+PWWW26J45iWB8jA -+ADUZcQaXkrXrl35vkAjRoy444477FkbkIeJw+19f44cORLC0uYpDFyha9asYZYxEOChhx4qLp8I -/RdqLz7wpHWuelog+/Tpc+utt77wwgv0rEFytsm27X1/ezAxacWGTPMD0y7wAcItXaIAW5rluRXi -feEFMSWcQdr462WXXQa515abe/3119v75hw5ciTEKAVKrc1qfsRKX7169Wc/+1kGmjLilJ+PP/54 -2iIYHEUZeObMmY899tjm/KB28MEHFlp30VBtJhsgzViRTZs22cI7TOXmLnndddf16tWLwMscOp6+ -wdJztsQEfvbv3//RRx9Fr/Xr17tsZUeOdhOyxy5QcEXLAw88sGjRInrcWNOMYWY2DBUf2OJ53te/ -/vWXX36ZkRIUeiFR88h1wMVrr73W3ve3pxIrIPExMp7BOuZo1wX8EoeffPLJcePGsaCljRbGW+MH -xk7QdoTvfPKTn+Q5He19f44cORKiTkrFFuLrV77yld69e9PjxrqIHTp0wAf63ZhkAUEL7WPGjLnv -vvusm57dIarZkzppiGjv+9tTiSYI1sqwnk0+Z55/SnmYYYR48ldeeSVdcrTS0/iAl8WYYbxEhq7h -3U2aNOlXv/pVe9+fI0f7FrH6Ls2JPFCewhV0UgbwQ4idPXs2TbuUfnl4GdYv6+pgRVOs6tq1a1NT -06pVq5jpxhq/7X1/+zrhFfz4xz8eP348jQ82XREvkQ47HnvEALbq6upvfvObzz33HDdQzAeoLaxH -YQ34rDlMtWgfrNvsyNHOJYpSzXpImT2NgqYDIPDNN98cxzHRlTIwQ3wZdEqZikt78ODB3/ve96gg -g5Wt6NXe97evEwOw8fOyyy6zJ0N169aNESwMGKZNmH/FDjtnzpzf/va3NumGCXTcVdetW0czCONk -nD3fkaMdJCItAROirwVPCD8XXHABxCRbfha6KhYsi/2ywiSkX5ogJk+e/Oqrr9JB/5YS4dcFnrU7 -WfEVP2+77bYsy2xdNUaz0D3HRnt2Sf/+/W+//Xb0ZYQw/X2s1AE+mCHuCCRHjnYKWbSEhNOcizr3 -3HPPiBEjuDABtgBeBvZzzR5//PFcp1iwJ5544g033EDhGXgLAOdhkViz4OwyL9qdaDRgATq8o2ee -eaapqYlvlmUtmULOE/rwgTssPkPrufDCC1966SW8ys1a3b0YcplW43ZYR452kCDPsBqkFX2vvvrq -k046idJR586dmVMM1RWf8ZOhpLQ8TJky5YknnnjzzTfpdLPHptOyQdtye9/fvk72lA1b8gig+m// -9m+9evWiQZjvtHv37viV56XiTwwbhpqTJMmDDz7IMAnss9B0mnWbxvvFbrsPVkxy5GjnEv3mDGT6 -2c9+Nn78+P2VaOyl1ddmHFNAYpHJK6+8ktjLLAAaMSAUQfRlphUXfnvf375OeLN4KQzGxk8oOExs -/OUvf3nuuecyhZlWJnpaqeBgt7VBhsDnz372s3jFtlgo9utmnTntfXOOHO3xxBjd9evXX3vttfX1 -9Vx00El5ohDEYAaUUkVlbYGRI0fed999BG0sasIvxCSaIKwbHTwdArc7rV69mm/EHkEC4qEkr7zy -ynXXXVdbW7tfXmTYJjOyng9TORg5PHfu3Pvvv59Kja0b70zBjhztIGEd/frXv54/fz6LGdIkePjh -h3MBMsMCnxnri+985jOf4fqluMvKMLZsGo/phLhlj0dv7/vb12lzUTk7W/8Br8zqLw899NCECROq -qqqYZcPQbnpaicwgKkGnnHLKNddcw3QP7Lzg4KxMjhyVESHxvffeg1DKU9uw6Jj4jw/0p0CLZLkz -NN52222UgrAAsfqw7lhaFvDLk3kZ+staLnfddVd735+jnUN4+2vWrKGXDVvqihUrTjjhBNofALkQ -g7ERczJgYuAD7f/4MGvWrD/84Q8UqsHBhh3aEz0YXt7e9+fIUfsQnSYM42T4kDUX0Dhgyxu+8MIL -n/rUp7jEsO5Y2AE/ra+Nh/BS9G1qanrttdecTLvXEOcAEPiNN94AbGKq3H777aNGjdovP9vI1nW3 -McO9e/fm3AjD8KabbuKxgLRBMabR1nHaB8+2duSIRC8YE9ygMELWtYcBMTifVt+HH3549OjR++UE -sKUfnCVcaAzk0uvbt+/NN9+8ceNGenDa+/4c7RyC+MowCXteBmDzmWeemTx5Ms3+mBIs7b6fHiyF -yUBM5nGr0IwWLlwI9ObmjqnFOdacVxRp7/tz5Kh9iHUD7Ck2m/MT5F966aXNeRVuiL5MpqCJDyIu -Lb1W7OnRowdTMM4777zHH3+cVYLxk05wR3sBYXpgJrDiKIMJ+Rmi7A033HDiiSfa440YAAOdiFZi -QDHVJXwePnz43XffTS8AgBcMaf93ccKO9lmCDEzR1zrCAJ4UjF9++eVf/vKX55xzDmRdltY56aST -GJbPCLRu3bphfbHYL0Tfz3/+81hTDFezpdLa+/4c7RxiJAOLhdqiSfSyvfnmm0888cSUKVOsRaJr -1642INxmR/Iz8BnzhMIwNmg6HXi4syNH+yAxCpcyMM9TIBRDUPnWt74F2YZBDtAiWT/WHmYB4LX2 -B8g2PNIRBBCmuspQ0va+P0c7h2y1Okitf1Jq1uBh6kp0tH3uc5879thjafulJMzieGjEbKGuxA+j -Ro366U9/yo7M8Wnv+3PkqH1oc35uQnN+phh+PvXUU+eeey6WEkN8eZS5rbED4MWyAiYDnPGd5cuX -v/rqq1RIqVRCKKLbxa2svYmwKdtEOVa85IRZtWqVrRPyk5/8pKGhgW5ZRioyf5kOXJ6ITWSur6// -h3/4B9bJhLbV3jfnyFH7EGQbyjMUbCj6DhgwgKIv7XhYODyzhmUf7PEWp5122o9+9CPWvOLhNcVl -CV0pwr2JWIZ0c15J2L5lQCgPr2fSMQH5qquuwpwBDmMHp8eWwcNM2MGMsrFq06dPf/zxx50nztFe -TzxQhiWq+JnWWsYCMfsJKHrRRRdZiReQ27lzZ+a1UehlrBGWFZB53rx5TLUA8LpcJ0dldPvttw8e -PJhhM5g8VKawd+MDJWSGEOML2O5vueUWBpwzG9rGCfMnJi0dCjzuGT/dfHO0xxGEW1sJhxWzeXyY -9W7/4Ac/gGKIBQL5BOIKsBc/gb2UYbBkKMBgyYwbN+7mm29mYCczOJwM46iMGM24bNkyzCIGkDN2 -kQ5cRk2gnREU2Nwvu+yy//3f/6VNDPPzPSXAsp2ojFfnXHUI7GiPI8ZhMsOUjmybC/zCCy8sXbq0 -R48eRF3KLax1Bsil6wRQzHNqzjvvvIcffnhzTuTpENhRGREnsTtDvu3Tpw9VKlvlkhOM/lzWVQM1 -Njbecccda9asQUeWDaHRA3MV0wwiBDM42Nje9+fI0fYRgJeCBKRWChiULh599FHItPSb8AAayMD8 -lVAMZGaWcd++fT/3uc/ZHLr169czlel9pfa+P0e7F9FcQEvX448/jo2bmzuP2yAgc3/nxLM2ruXL -lzObEvMTaGwLhlgzmoszd7QnEs1rWA6rV6+mC/ull1766le/WlNTw6wlyif43LVrV8Y/WEsdFsiE -CRPuvvtumw8FJAf88jwaqortfX+Odi+yue2ceOvWrbvqqqv69etH+MUcw87OhEqWdTr22GNZVA3z -cO7cuQ8++CBDa4i3tpoE2IKhi7FxtCcSzWucyf/zP/8DsYR2XSAtI3vtGeVYGhSA0Y6lcckllzDe -jGXNwKc5LxSABcIl1t4352j3IjrRbFolDbw/+9nPRo8eTaS1hEnIMBsoXzymGQTB4JprrmFBNlaO -IphTcXPzzdEeR2vXrmUkJ0SLb3zjG/379+dUB8AShE866SRa57AcIAATiqMouuOOO6zJl6Zj2pCb -Vc5hUrNbEY4qiXk9RFHAJkN/X3/99ZUrVxKEIf0yOoIz0Hof2AI5+cwzz3z++edtbSiazjADXa6l -oz2OKDmsWrVqwYIFFH1Z15d1VGjppUWOYgl+Ll269MUXX7SuZ4oxNofUOuNokWjv+3O0exHQ8u23 -37byKkubvvPOOww5u/vuu0eOHEkZAFOO1U2x6eMza4+w1iUwuU+fPv/4j/9IDzJTmA== - - - KRK39/052teJ0MdsCCuXUlqgnIC/2gwmhsrfcsstSZIwpeKQQw7BDOehMyz1wFxjKoPHH3/8/fff -b2ujcdo7QdfRjhMmJGfjK6+8snDhQnofgMAs6c8q00z/oRhA+9iSJUsYGsEaJnRAcOYznZPuYGcf -dvSxEWUJRq0TgZkZwXyl5lxGRSM0QYDznDlzrOWBtR06dOhA0bc4Wn4/PU/z2WefBfyyvCR+0umG -gTjzHTlqMzGKhr4DgPD3vve9CRMm2JI+gF8W/KcAzGr/PIru5JNPvvPOOyl4/EWpOT/ZmYIHK6y2 -9/052leIhXx5mAWIYT+ULqj9QWolhD7xxBMNDQ082RYzHEgLdc8iMH7FTwrAxxxzzHXXXUeeBPBm -DaJAy1+VXMyDox0keiIYQ0565JFHFi1axOONDlTihLReCQrJ3bp1QyPE5jVr1ljbF5EcUx2fXT1q -Rx8nfVhEAEaG+NJTxtNpIRhAPPjGN74B4YEzmdlJIMq6DMWk7wOzfcyYMY899hgmc/HJxTZrA9yI -w+193472eMIsorK2du1aWrcAyH//938/YMAARuCwaoQNHv7EJz5hY4khG4dhCNBGRzvtOTPB03no -HH1sRAsY4ZeiKdGYsZf4+dprr7FkKy29NDhwhhOHMat5yi3E4M9//vNU5ehTI95auYJRZ8BzN8Md -7TjZRGPMKEww2tAwx3784x9PmjSJExWTs3v37kyQp7JGaYEBw0cfffTXvvY1FsYEn9WrVzPyzeXK -OfrYiMBL40NzbvUlAmNO3nTTTXV1ddDajsyJVaro47BnW0C5GzRo0H333ccgh2aVT+iwZsErihaA -3w0bNrA6Vnvft6M9m2zZB5vpxkO02fLGG2+sWLGiR48ePG2Qs5SfOYFtLjN+nTNnDuuqEXsJ5u19 -f472FeKUoxZG4GUWJ6DSHiWPWYrJTEcGWiD9ApOtLHHyySefffbZr7/+OgujgQnmPxcC/c50vdHZ -wSKWzAx15KjNRPcE4xk4u6h8FR+BdOeddw4ePBjTldnKNk4Yoi9LDdvEjX79+l1//fWcwOCzfv36 -9r4/R/sK8Rx5isG0PwB+n3jiiZqaGki5rGbGSB6aHTCTAb+YvbQG19bW/su//Iv1hjCzmJ9tMUC6 -3hgFAemClSXa+74d7dmEKUQDGmcvcyo50zDN8CsLj0AwuPTSS2lDo1HCnsjctWtXfOisxLNBIXKw -UKqzQjjadUSPmD3Mwsq9NA5ATP3Sl74EyMWEhLTAatiYn506deKM7ahEnW7u3Lm///3v6ZVu79ty -5MgQjRLW9QAQvv/++6HBWcccrWosccl5jsnMk5qDIPj2t79dLFGsXbuWa4QIz4ISNqWOQriLnXD0 -kUQplNIC54zNRCMm4zuPPPLI+PHjOUVZ4JdFfTF7eapm7969OYd79eoFoGaqBUMm2vv+HDkSsgHn -1v+Ln5iozz77LB3KzBuyOcvAXlvQj3P71FNPnTlz5oYNG3gWM5cGrWc8mICHIRKBWWjCxfY4+kiC -VICpYs8yZugv5hX397fffvurX/3qscceC+mXoTu0PEBB45luzK+nKjdjxoz//u//tgBOs0N7358j -R0KUNGgZLk57xzxHy3XXXUfbL4tUM4WTCIypzlh3ED4MHz78scceY1QPo+LfeecdhlswXJMmO/pQ -XFVVRx9Jm7UkDtESE2bdunU2Cv3JJ5+cPXs23cQE2+rq6mInMiYqHXCQir/4xS/SVmaND5v1uPD2 -vj9HjoSKvXI8jtmaI+gCBq6OGTOG+Rr0LPMAF0Dx4UqY7Sz4A9UPs51ndjNVn2cgFpfFttTe9+1o -dyeGH2CqAIfXrFlD+MUsuvnmm1ltFfs+C5vYWr74FdOShjKA89ixY3/wgx9YI5v1fdC/1t7358iR -EGe41fVsODqdv3TP4fPnP/95zvNOnToxLoKTH1qezTCixjd16lSIHJjnrPdu8ZZhnMU1JRw5+kii -iYyTE6Lv+eefDwGgR48enGwdO3bs3r27rbHD0B2eFT5//vxnn33WzmrLxGZ0tvedOXIkBDCERrZh -wwaAMA9zsUHpDFBv1ioQ+Np99903aNAglvRhggbmPyY8g4TxK6Y9C0r07dv3m9/8JgMsixPtaY6w -qUyOHG2FMOWAlkzefPXVV++5557p06dz4gFyu3TpwgK/lH6PUmLww0knnQQ5mXt9scnLgjB4uvhJ -R7sJMR0eIMxEOepoNjQdE/iNN95gy1tvvfX6669PmzatV69eNkbiwAMPpASyn5a8ZnVrYDI+QAjB -woH+SFMe3XDMZXbRa44+kuwkxM8rrriCU4teNsw6TDloYZ07dwbw0iAG0Rfi8dlnn814M4ar8YR6 -amE2j4PM2/v+HDkS4hRloIINRG9W7a84Ut2aKUA33ngjEz+JwLQJ0xzBg7eYQ4clM2DAgCeeeAIg -bMtYMTrCxbc7skTDFzdlTg/W+KWwev/9959++um0OdjK6jbjGJKwDYE47rjjvvzlLzNLiG4ITDlX -tc/RXka0DD/99NOzZs2i6IvJz8hhFl9lABvPOqR9+KqrrsK6YIF36oYsA0i0t0eCuiqs+ybZEzBp -LoAuxjkGCfbKK68ErmKXx27OA+XxmeUdaO+iLnbiiScGQfDkk0/apPtiJG/v+3PkaGcSDWibtdrw -1772NRvxfswxx9AazANnKahQScTnIUOGQJixYGuLZLLSGkujMFmvve/P0cdNLGhGfxkhFNPgD3/4 -w4QJExgJSQEYP4G6tPR2796dez3mWI8ePS688EKCNjriAwNvmnNsb+/7c+RoZ1JxTDvosccemzlz -pq3+x/BgZszRScf1AnDGz6uvvvqNN94gDkMqhszDNcKAT66+9r4/Rx83cTe3mzIg9F//9V+jKCLw -2uRiKlmYYzzsm+mZQ4cOveuuuxhIiY6YVNZ5RyWrvW/OkaOdTDYsc+3atVwyL7744pe//GUsB/pK -GKhJMbhjx47QInkABy0SZ5xxxq9+9SuLuhs3bmT4MauwOgTeB4kTCRMAOIy51NTUxFlkU9swtXiw -BWYRptZ+eqAb/jpr1qxVq1ah75o1a4qPHqA5i4Hu7mRDR3sZ0bBmvWms/AAJ5D//8z8LhcIBBxzA -uj0QV1gbEOIKvSeQXo4++mh86N279ze+8Q3iLZGcCUrMCmnn23P0sdNmPdobPx9++GEatbBr87Qs -YC/lXpaXtFpV//79v/Od71CZwvzhebKM5AHkghtnFydYe9+fI0c7k+hotjO8WaVillyDKLJw4UIi -rY1Ps946GoTxK7P4586d+8QTT5AJQ+AYldHe9+fo4yZWQb/ssssg32LmML8SswUgzPhGpr2jnXnH -06ZNe/rpp2nIsidkAYSb1fDL2DMrD7uoG0d7GVl1r1nd1vbcDeZZoP2HP/wh9ccTTzwR64gmCKqT -WER0oFAYPuecc370ox+98sorZOjswPsmPfTQQ6NGjaKvjSWpKfEysBxkz7Y46aSTrr/+elYX4Tny -PJiec5KhFLQJM8LNmSAc7X3EaV8Z2cslwLDhF198cdasWVhQTM8HVSlRheTBoHRzQ828/PLLbfSR -Q+C9mP78YfM77//xrXc3/eXDD5o3/+29v/z5tTVvfP6Lf3/wEYcd1aVzh4MP2q/Dfvh8yJGHH3jY -IZ27dcWEwRSyB1uMGzfuZz/7mctnd+SoVXr77beZ1GxPe/nKV74CoYV2PJbO5kkxzF2ipgkExq+D -Bw++6aabIMxY5RGYbIPTaKZo7/tztKME+MV/f9u8ecOmt//fP3z5hJ6fOOyoI4G6+K/DIQcdflQV -/gP88icau3TpwnCInj17fvKTn+RR3W+++WZ734cjR7sj2WoS9shvfPjd736XpilFX1oeWF2te/fu -wF4gMCUcisS9evWqqan56U9/SuMeE/F4UJc70WAvoI2b3gH84r8v/L8v9jjxBGDs/gcdeHjHqiM7 -d9zvwA4HHHLwAYcejEYgcJdju+NX2iVGjhx5++23Y0Pn5t7eN+HI0W5KNgITwPuuUnMuvn7xi188 -7rjjCMInnHACa/vQ4kdAtoZiYPXkyZMffvhh2jRo6wArJwPvBQTRF/C77u2NA7x6IO0xxx930sk9 -9z/4wEOPPGK/AzoAfjt17dK5e1cIxgceekiHg6XswxVXXPHqq6/acF93ZrEjR1sihl8251BsD5nl -yUS33nrr0KFDrcR7/PHH09kNwodOnTrxLMVu3brhr3/3d39HnhSn7ZE0jvZo+tMHf32/+S+/e+b3 -x1efJMaHAzrQBIH/KP0CdSESsyVI4ptvvtmGClMt+uCDD5wY7MhRq8TKk3RSN+cHbTABmdGeEGZm -zJjRRYnJGiypzaMV9yuiiRMnMqyCgjQzl9v7/hztKP3lbx9sev+9hx75ryM7d9z/oAOBuodVHUlz -BKRfyL2QhyEDQyT24vCfb7yB+y+mE6vrYIvHB3e2hSNHrRIxk9WG169fD0BmpAQjHLia8OuiRYuA -sZB1999/f0bd8ycPngMgH3nkkYVCgd/noWDoBYm6ve/P0Y7S239894PN/3f/ww/ud9ABkHWP6HjU -QYcfCvgF9h5zwnGdunU5+IjDDjzsEMrAvfqeeuWVVz733HP0CNgYSOzm7X0fjhztjsSMts1abKe5 -6IRx/NywYQM+rFq1atasWUBaHmtL0ZdOOmsEZsiE53kAcBbLoiXZ2YH3Anr/r3/5cPPmO++5e78D -OgB+GQJxyBGHdzgYs+FQSMWQgauO7gQohmws4LzfftOmTXvkkUdYPZUlrJ0d2JGjLRFgE7KKrbfD -9HzKwN/73vdOPPFEBgCzRgQPUgQad1ayB4CCBg4cCLHHlowAT2eF2Avozx82/+XDDx746UMAW8i6 -Bx9+2H4HHkCh99Ajj4AYDGSu6txpvw77d+xyND7TP9uvX78bb7yRIY74yfK/9vx6zDR8xvRw2ZSO -9hHiQuASoKmBC8HmItEBR+MtpN81a9bMnTvXllhhOgbPmAPqdurUielO+LVjx46s8R5FkU30sBXj -He3ptCUEPrJTR6DugYcKFAN7DznycP60GZSYGEuWLLHnHWNGNee5zJx+zIBr7/tz5OjjIHvIiz3i -k8fBMBKY2MuVsnr16scff9z3/S5duvDwRAq6rHNFsEUjM5cZluYQeC+mLSHw4UdVMRsO7R0OOYh2 -YJGNdUpwgwZBM4ImxTJQzXqGC6vx8DgMFy3jaB8he1wRw89s0XWbhcGiPRBUvvCFLxx77LH2HE+G -ouEnZBt7zjjQmKUsmX9K95xD4L2StoTANEQcVnXkoVVHMCODgWq0QmDm9OjRg0mU1dXVS5cuxQRj -dA19tTRHsDKPI0d7PbGOWTH88ifUQGIvJJMf//jH48ePJ+RCygUIs0aEzcJgFXdgL0ViuudYPO3/ -s3cm8FVV1/7HV9+zBUOYAmEOlECYQgKEeQpDGEUEBEVkChAQAzIoKorDU7Taqjhr6w== - - - AOKMCh9BFPVVUWsdECsyySBhCAkJk4j9977W/H+cb7Ob+gQBb3KTc9bXj5dzz80dzjl7/87aa6+9 -limwXzmhF6Jy9DkVymMG67F2/XpVasTob2gVBIqzpJ2xUt++ff/85z+rhUiHKX21e/dus4GNgKAG -T1VlintKeA8dOkQFZEzf+++/XxKKlsoGppgy9ZTJVEm5GfJCuNAIaoGZDexjTqTA55xbvlJM1XL/ -cVbzpERcEGfpXv3Lc8oVlqGn2ehRTUXNQ7fyWrVqPfroo2p+BKep4e3duzfSx2cYJYG08dixY87u -dbURxSeffDJx4kTUtUaNGuSopKgi1q9GlNHR0XQodSUNKtW/ZOGwR9Yy4cGmwL7khLEQvzjr3ErR -0dWqPPjoI+cPH4orWI+uOBFV6ZlEoEQyC9uHDRtGjbmsrCxbqWEEBCLkcT7I+kV7NQx84oknOnTo -oH6hnuLqy8gGLldYaVHmbtWqVZndlizPmTPn4osvxsJBtCktZwrsV05oAx93QZxVqVrVfxQUfPX1 -9otGX1K9dk3ZwGowahuEiBO7yCQClbjxWTVq1GjJkiVWE9kIDv/4xz8I8XU51SW/8+bNY7rNVauX -AUOxg0qVKpElWE9ZfdyiRQuqFN1///3MdFP6lik5U2Afo8v6P//zPzj/Jaq61jQYtRxd/cOHD7Py -Qg0jPj6ecZNaiNqS7F5X/lVtiTeSQFhPMzMz9cks/PmBQ5iG6grL4jTTIM6y7RmlnL/+9a9Fq71g -9Aop8CEPGvaKFSsGDhyI6qpfnFWIegrRDtopi0WdSDvVay655JKPPvqIbnL77bfzB/pLQtT4EFNg -v/KjCkykomxa59FSw9u0adPw4cO5ifM3DKY0jNK7JMvMIOhRzUYNLCkpafPmzVu3bmU+Qvd3llVm -Z2fT2Fgjz6sFhQU1DKPU4pKiqDGjgQhyTk4OSRtkRUhCa9asSWlF/HXOl4tVI4ElD49o2rTpbbfd -huOOPNumwEHjRxWYcpxSYLUryqwQUn7gwIEFCxY0aNCA9qOGRIpp/bGUWY9qME6EJc66yz/66KM4 -hEnjwwI6iseRlsQZw2T7MYxSi8xdSr9JePWUlL/EXoo//elPI0eOxKvAJDXmCpFmLL4Q6hQMM1NT -U9944w0GifSCkClw8PhRBSY1k9qPs06PeHCXf/PNN8eMGYO3Sn/DvZ6ZXJfkXx/l8v+np6fLfnY1 -4/QJarcUlWMph1qUraEzSj9ObKXAZJ5EP9W277vvPhm0jArJ84DLTr2AniItrVGjhnRY2xLh+fPn -U2JG71XLZ9VGyBQ4eJzID0ya6FCRpKba3rNnD06DvXv3zp49m9AItTeWWKrlUHyQJkQ9ZRZxNGrU -6KWXXlLLUTNDadWAtaE9FPW2NXRG6cdNYciKwGqVFO/evfuiiy5q2LAhmRwkuUVT+6pnMW8SHR2N -U6JLly7PPfdcTk6OW8VcdAxoChw0flSBEc+YmBg1D2LLKYwS8gpz45TIzc195ZVXzjvvPGcA6/6u -xsaMg96OO4LsIozLMjMzWakBqLFzR5gCG6UfZJAGrL7w1FNPjRgxAmlVO2ehMXMi6kR6SqpJOpc6 -yIQJE+gCGlHKjMF7LB1mI2QKHDx+VIFJ0FSrVi0M1L974Isg4b/aHnMQn3/++axZs1xNK1wQajas -+qlevTplYWUkE9/YrVu3d955Z8eOHbyddUNkUbNse0Ypp2iht88+++ymm25q2bKlWjUGMGFmslvY -rl27th7j4+Nxx7Vq1erJJ59k8X5WVhYaLjPG5dlGVE2Bg8aJYiFIDS2FRH5Jyc7id5y3hJCRi/LZ -Z5/t2LFj0QhzNRsWv0t4Xcy5Ph9/xR133CER5qbvzGCzgY1SDg1VfeG999679NJLnaeXxWtq6li8 -/+VBCkEyPwwePPiTTz4h9jI7O5sQIwwPbGCceyFT4ODxowpMgiYZtNil+puTJ/tV4/nzn/980UUX -0QJlCbCuh4bEEktmhwke1p+NHj36T3/6E5YwLQozQDpP1KXGZXyyRakZJQwhZxgbRFHi+8VqXbhw -YZMmTZgBIdqBYDMN91iv5ELlsYEXLFiQn5+P54Eyiyf5alPgoBEWBca1lZeXJ+O2RYsWjMJkAPyq -EDVOVi6rZeKUoHE+/fTTFL1S88YVzBRzyLON1fiJWyuhc2EYHtioUjk1QjaQ0M2bN0+ePJmMDeod -SC7THAQ8qPvIElY7xzAeP3786tWrGUJKe10Jg5N8tSlw0AiLArthlNCn9erVC8OgTp06qHG1atUw -CQSVWRjByVqeNGnSxo0bea9aPoUIsROkwFZrwyh51AJlAzvbgJa5dOnShg0bqhmfddZZ2BW0Z0ku -SzAkxS4CUzbGNddcs3XrVlcvQ42Zhk0s8YkwBQ4aYVFg2oPLhrpv376bbrqJZkniCNxietQ2k8Ks -ayZ+Mi0t7eWXX8ZCwGCgxjdNzuKEjRIGzczOzma1mjZmzpyJCSFbV2aD01621Wt+/etfs1ONvFOn -Tm+++SZmc05OTlZWlisSRwTmSb7aFDhohEWB3eJllr8VeKVgX3rppe7duzM600chufiEGbgRLMEk -XaNGjWbNmqX2yTTfgQMHWACip6bARgnjBmJqe2+88cb555/PkC02NhazAaXFsaYGzFhPbVuN/PLL -L5fkEuGgz2Elvkvbrg5FSaMTYQocNMI1E+fyo+qpbGBa4O7duydOnEiIGmawNiS/Z3tQGEtfRMSa -Xh07duzy5cvdOmU3Q1dC58IwPAq80kJ5eXmPPPIIySQJzsR7JuHVU5cXBRtDfSchIeGFF15gzk5d -hlw9yC+eB1YemQ1sFCVcNjDjrKNHjzL4Uqvbvn27NjSOe/LJJykQIAuhcePG5bxU1UguhgQBElgX -Xbt2feCBBzZt2hTynBsuUt0wSgw1uQ0bNowaNQoPg0ukQ3IzAn4Y2ZFnUmo8evTotWvX5ubmUjMO -H7I6hdRYSo5RocefDOwxBQ4a4bKBJZVUy3Jl67VH8qvmp+2NGzeqPWP0Sn5ZN1feg0gJXGp6ibY9 -cuTIzz//nLVyJx+1GUbYeeqppzp16oSnNyYmhuAHgn7VXCtUqKC2qg1yS1avXv3BBx90s8lHjhyR -6mL0uulpqtj/zePkXjVT4KARFgU+EbKEc3JymJ47fPjwbbfdxoQF0cKuMgvpI5jpUNtmv5qcxnTY -wFgObqYPY9vihI1TxC35YWGRKyaLsUp+dfxmGnxlZmaylF6t1GWVxOfwCw98Dsxf9O3b95133gnj -TzUFDhrFqsCE4qi1yBIOeYK8evXqcePGlfOSqhG+TrkW5ub43ipVqpDzR79H3eHrr78u8BJj4meW -pGNXWyM0ThG1HNml+fn5zK/ptu5EWK/iNxPLli3r0KEDtoF6hB5pnKBmyYpjFhypcc6dO9fNHYcL -U+CgUawKHPIcFKEik8tqrlLU+fPnO9+a2jMLi2rXro2BQQ5V4i1lHqvtrVq1irdTswMb2PzDxini -bt9ueldoDJWdnc3dXEI6bdq0WrVqEdCLxVuusISxcKVpCXto2rTpmjVrMAzC2w5NgYNGsSqw3n7o -0CGXfXrXrl20WDX4t99+u127dkiu2nmjRo3wEqu1uzhhlhdpu169evPmzSM4869//SuTHabAxinC -ykoiwRiX6YaO9mrj3XffHTFiBKrrMqir7RHkwFhMT/kDNdFZs2bt3buXHNcE/ITxp5oCB41iVWBJ -pVpp0dbiUgHLKt6xY8dll13mlsvJApE9TFYfSoJSWQCrg+nmDz74QJ+pT9BnktHaMH6S77777uDB -g2pyasbEiRHBrv1kVnclhGh1BE/SI7RBwRe91LVr1+eee473Srr1mWYDGz+T4vZCEABJbhNqGkqT -Wbghm1Zd4MUXX2zevDki7FYuS3g1HtRTMr3HxsbitWjYsOHixYsPHz5sccLGqcPoCRcEIzLdxzdv -3jxu3DiSpjLvwAa5VTF3iV3Xds2aNc8777zt27fjDdPbXdR6fn5+GH+qKXDQKFYFJjhNMsuGOgIz -zqHCgi/ED3/xxRdjx46V4SFLQ8IrsWUGhHbII1WT+JHTp0/fs2ePKbBxirg4sZycHOLEnn32WbKX -qL3hXnABD0iubICYmBgCHurXr/+b3/wGc1cfQnwONbYImAzjTzUFDhrFqsCE8lKcyMVGkvaBbFEU -+BZfffXVww8/rO7Ab1BfICLCWcXlCkvAuCqHK1asCPO5MHyKpDI7O5t17llZWbqDM6RSc5K+qZkR -iC65012eBZsu/GzQoEFvvfWWC13jvk/6PmdRh/GnmgIHjeL2QpwWn3zyyfnnn68mxzINssRTOVR7 -yBuvR3UZesq1114r6S4oTKRG2Cfx8ISrSeHV79xyacPf4NqlGbidGmSxPFO8+uqraWlpjLDO9VBz -ioqKUlNH94hAo7yFbGDpIR4MhnIlcAimwEGjVCkwYRJz585l9hkfncRWPYWxoUNPyT88YMCAP/7x -j3S6w4cP79y5k25IZksXjeyWKRk+hihfNQbdeZ3vlyaxa9euO+64g0XxajbVq1dXo1LTcoMs7ZFJ -TDSOng4bNkyDrH379jGFEV5Xw0kwBQ4apUqB9S3ECL3//vvNmzcnGxXmCoXn9KvIRuVC5dVx6tev -r85FMm1WQB/zoAidGz+Gd8bEKIVosKO7MHde3YX37t2L5+Gzzz4bM2YM+RxYTaxtmbjEOWhDTZ0A -yJo1a6qlZWZmUlSIIZXL6lACh2AKHDRKlQKryxQUls2SDXPVVVdh+pYvX55CtMQMS5AxgCW/xHDq -B0+cOFGDTQRcvYZl+CGvuRIRZ5nefY+bVnAlNXfv3r148eJmzZqRyBdPb9WqVV2qB1m85NshCl1/ -+dRTT1EXgJpZ+ihWLpsXwigOSpUC40mgPAFmzNKlS3v27OlWieIfppYoguxyBqorNWrU6LnnnnOm -S3Z2NrHH+kzpueWR8D0EiZGVF/m95pprWPBO+W8ymwmWAmn05CZ51a5kJ3/++edu9aVbxcwCupLx -YpkCB41SpcDSSefRpTqMvvrrr7++6KKLqLhRzstsyZiRDD+sa8Ypod8cGxs7ffp0GcOsmwsV5qbQ -x+bk5JTAIRgRpGgmvddee61Hjx4MoNRO1LDd3AGNhyQP1apV00u6j999990uVFIfwv26oDA7X9hj -Hk6EKXDQKFUKjKWB34DSWowrZczcddddSUlJLnEEK5iYpyPNO1MqePn69eu3bNkyjOF9+/bhDLRw -CN+DF0uPN998c3x8vLtl005cETfpLfML+CIGDRr0wQcfcOv//vvv3dyB9qhBsvqY6N8SOART4KBR -qhQ45IkwPlt9KVFkLrXgu+++O2TIEJceUMiMkQ6zRxtVq1YlgE1PGzRoMH/+fLqkFDg7O7tkfr8R -QXStP/nkk1GjRtEkmDvADGZl8S9/+UviyfUHeCduu+02XBa63VPPgly+qK6T4lBhMQ== - - - xOLGFDholDYF/lFIZoV3984772QCTmYMkfPu16q7kVNCnUs79ergwYOZ1JYlgwirc1EtsaCQCB6X -cXKcG7Zo4aqiN+XvvvsOdwGPCxYsaN26NUvaaQAE+rribswgsAIuISHhs88+0xDp7x6sEiJvSQQP -2RQ4aJQJBVYHodiWfs/+/ftXrlw5dOjQcoVZBKW3+PTwCaPPGoQy6mzVqtWTTz7JktKsrCx67uHD -h7WHQyNJhVEKwTGLCH/v4Val4aotKCxQKCHNyMggiRNxZW5VO3tq1qypWzbjI7Xt9PR0NQC9C0nX -x37rIdO3ZGIeToQpcNAoEwqMAayf4YJ+P/7442nTphXNqSIdVhfTz6aCLcGfHJT2TJgwYffu3XwI -9RMZeIY9t5URRlwGhoMeuvq6XepRFxH5Zecf//hHmb40A1fSgpYgpGCUwSL1WYsWLXRHRsl5dJKO -GVwycb8nwhQ4aJQJBcbOEfgQQp5VrP7y7LPPtmzZEiewOp2Owtk82la/kz7j7tP+Ll26LF26FA3X -I96/Aqu1UYphIgAvgXPJykzNzs52cb9XXXWVNIpsTlTVVGOgECFNgvU7TLoNGTKEJXKUM+aTQ4UZ -HhhqlcyM24kwBQ4aZUKByQaM4apfIsPVxd5v2rRJI8qiy5aZ+65SpQoZtqkNiidQ3fPWW29lek4H -JQ0nZXcED804Cdxni9Z0w0ug7e3bt3/22WdUvJLSqunWrVvXLaxwN2Wm4fTYuHHjhx56SM3GZfgP -eTY2zgfk1xHBQzYFDhplQoH17eomEmGCewnR1FMXPH/PPffUqlXLFRan7BHyqy55jgf+Cu0ZNGjQ -e++9x+fovZYvotTCXBvoSumiYxXv2bPn6aefxvlPbgeWvOlR2xjALmhc9+LevXuvW7cOpzGNmWzt -ZK4meyry7iKBI4UpcNAoEwrMIJHgTDwSGEWUyWCC5k9/+tPgwYPd9BzmkKt1y+JTQohFUlLSbbfd -lpOTQ3eO4KEZJ4EhD23PeW43bNgwceJEbqYuxFcXnbAHilywU9vJyckZGRmS1vz8fIxn/E7axp+s -l6gdwGQcQ60IHrIpcNAoEwqsfuEqfLmweXIOY7pQuFPi/Jvf/MY12rMKYeE/j3gL6aHp6elbtmyx -mbhSi1uYhodWT5csWZKSkqIrWL58eV1NDXko64Yjwq0vps5Fp06dnnnmGQY7NI9Dhw7RkpkFwBPl -FJhY9Mi2B1PgoFEmFPhEUALJBc9rT25urkS1adOmbokcEfiEgJKYRRuuFnnnzp0XLVrEqg1GoNS2 -w17ShquI5ArTmN847JB4gWRKbhkOkugKC2ZnZ2dmZkpdde0IOGR0U66wvGa5wpS/uCZmzZpFgsrI -RpedLqbAQaNMK7BALdUg1WH1KCGVCOtx0qRJBH/qiNRhSeBDb2WU6izhuLi4GTNmsBaV1GrANseO -z5D9sqMifdB+Y/fu3e7uxq0Qo5eMZLo0b731Vr9+/VwhIVGnTh3iHyp6aH/dunV5SWL1+9//nlhi -gg8jfXyngSlw0CjTCowBzEwNDj1aJuPWJ598skWLFmrAFEGQ+eRqbVCOvFKlSqixOrJGrGvXriXA -iYk/VmDx+UUztrncL0a4IDwsJyfHhbsc9cD0veGGG3SXdHGGuo7OBo6Ojtaj7F5sYEl0RkbGF198 -wb3S1XSL9PGdBqbAQaNMKzCJf0Nem0SEnUgyAt27d++IESNc9VsdFCkuecr6ZURYvVj7b7vtNubH -8RC61a9YU6SqKJ2nokzD+AUXEI5ZLuu6detGjRrltFfCy6o33ToJd9Gt082udujQ4cEHHyTcV2+X -nuO+UKuI9PGdBqbAQaOsK7BLPokIk9UH8cSvKEPokUceadKkCTKL8BZNFKBjpyouUjxx4sR9+/aR -GxMbOFRYbJdQUoteCzusTCzwKr/jDpLp+/TTT0t2uEyubLEuHM6lunXr1qxZ06VpGjly5EcffcQl -0xXnMtEwypZYmQIHjbKuwEUXljp3BCNQajSjpRs2bDj//POLpo8QJHt3Afw6asJKmzVrtnLlSqxo -Ct/k5eXpA/VpZW5UWyYo6nYQW7ZsmTlzJitrqlWrRphZlSpVGLlogxuoDGC12Pr168+fP59VctIl -XX03lydh5zMjfXyngSlw0CjTCszPkwjrF9L78Aar3zG37mptkCJ46tSprVq1cikjmFgv5+WUQId1 -BqiTK2644YYdO3YUjSANeVpRtnp0mcA5bA8dOvTMM8/06tWLRcS4f6W3rGuT9lLVgpAzXcEePXqs -WLECz3xBYQIfgij0gbiMCBovK5gCB42yrsA4Cpz2hrxfq/Yp0zfk9UrnqWCW58UXX+zevTsdnNQB -tHN6NGmHK1SogCanpaUtX77c5ePiJJSt6KYyQX5+Pmsbr7nmGhZZuPXFGpUwTqlcuTIbTLppOzMz -c9++fYxTWL/slrkROki7LVt3TFPgoFGmFfh0YUyam5s7e/ZsYpmioqJO3tO1X8Yw+XxkoRGhun// -fvRc54caChHP6FImIKyaYYVLjsSZ/PDDD4cNG6YWqFanM09233KFkNlMe3ACp6SkLFmyhNWR7v7o -jzqApsBBI1AKnJeXR39X93/sscfUkV1I8I+OdkmwJpN44MCB77//vlucpQ2yy+Jz1vnBjRnp4yvt -sPoMBcZPyxzc3XffTY47Fi0SV8byCiS3nJdVCU3OyMjYsGGDW6Qc8sYmZc7WPRGmwEEjUApc4KWS -cGXjvvzyyylTprCu6kdnfFzyYe1v0aLFfffdhwlXNDtiTk4OLseyFfUUEbCBCVZhxcSWLVtGjBjx -61//mvOsAYgU2K1xYw/1p8p5VVGee+45snmQqlQf4lL3mAIbZZFAKbCbGc/NzcU5nJWV9eCDD54k -6ql27dp0fzR58uTJX331lbN7XYCEeoStVv5JiA9kzYvO4fPPP9+mTRvObXR0tKt5TYIdTj6tUdtj -xoxZu3bt9u3bmVotGgbDPKk/ogRNgYNGoBQYL25Bkdw+LIY9UeQ/mQeo/kmgmra7du26bNkyLDF9 -oItl3b9/f6SPr7Rz6NAhJt105idOnKhzyzknWQenl/UyOuE1a9aUIOv2Jwm68sor3chlz549Rcto -uvzt/vDDmwIHjUApcEFhhTjnjaQxn2j1K/Py0gFWv0ol2CNZ0B+T6V3dn8rORF8YJ4Fz/uabb6am -pqqB6ZSqpemsauhBLSFKrOqRJW/6gw4dOnzwwQcu/R3xZq5cEdWLUGN/xKiYAgeNQCkwSVrUhYlh -Q4fdMrofzQBTr1491ODcc8/VCaEWA56KTp06SUxY/SHDzLwQP4nO89y5c2vVqsUJ1Hl2Hh6dWN3d -XJSg9utpZmYmQwzukuToYBTjKgq5Chq6t0b6+MKAKXDQCJQCs3Yj5KVDZIkxNtWJsiBSZ0HaW6NG -DYrQoRhETehc1a9f/8Ybb2RkrcdIH19pR6YvSXUQFqxcnUyNMrT/lx78QfPmzZ999tmQ5zjCdSwb -GD8DjqOi9esRYfMDG2WRQCnwicAhrA5O7h0ZWs8880z79u3xRbgE4C6rD55h2cZkfR87duyXX36J -MSwdcCXt9Mi6gEgfX3HxN4+iCYtYGuOSfMqCZY7sqaeeatCgAeWidNJ0AqmeiQ4Tg824Q/snTJiw -ceNGf8Q2nC6mwEHDFDhUmM2SDF0uo8umTZumT59OIndWbRCkimhoG08ma5wl108++WSBl5YNnwai -xKKtSB9fceFmxHTeKLgW8lwN2jh06BALLnJyci6//HI1LZ0oWpfOYVRUFLc2bmcuv1lycvJvfvMb -MnLo1EX6+CKAKXDQMAUOeZ5hlxrx8OHDbt3W7t27ly1bFh8fT7iUzgmrlXVm6tSpgxTHxMRgvFWq -VElSs2fPHubl3bx/2coQflqgvS4kj7XAbo2w/uCtt97q0aMHrl2dvZo1a7rYs9jYWLaLVlBl2Ysa -G4sQI318EcAUOGiYAgMly91yLRwI2t65c+fWrVszMjKQC3y/5QpLQ2Ihs2YWw1iCs3r1ahKyCRnS -/vBP/ijIr6uASQakUKEy33zzzYTyks1MJ4egPldEXvv5AynzHXfckZub6wKtWWoR6eOLAKbAQcMU -OOTN0BFRVrQYqBq5NAFzTop6ww03VK5cGYNNGzpjRRO8a5tJOr2kjVtuuSUvLy/kaZGG4ZE+vuLC -rYlgBOFiS9asWdO7d29Jh4RXLUrninIkONIpacFognvW8uXLkXGXoxJ3eqSPLwKYAgcNU+BQYeVc -9Xop7aFDh9ABdmLUySTTGfj00087duxIYi4JiE4aRehYrEG6S2RHT4cOHbphwwYSR0T6+IoLJFfH -mJ2djUN49+7dDz74oM4JAqsT0qBBA/Koa0MninBrnSXds/RUgwtc5WppBw4cYNzhsjpH+vgigClw -0DAFFs5p4FLH8CjDzAU2UENZcjF37lydn6ioKLd2Q32EsydVwR2h0yhjuEmTJvfee6+P/cD5+fm6 -Q7mI3PXr10+bNg27V9rLcjacDLhuRHx8POOI9u3bP/XUU5z5HTt2IOA4z4mv4N4XNEyBg4YpMBQU -1iRyqQbcBvGoRzykGDobK1asaNasGbNIUl2dNCKHibOiByE4sbGxw4cPj/TBFRfcpFgZ8dprr6Wm -pp7lwT1I58Glm+NUsLZFjW3cuHFkv5fdu3//frdInOAKXEDmhTAFDgKmwGcA9l5mZiaSgnuzQoUK -5PVCh+k7kJSUtGrVKmLVmOXXiSXmSqY1ZiQ6j+sj0sf3Q7gZMUEW8pwPIc8JzNyZDmTGjBmVKlVy -yyt0yDp83ZsYHURHR+v8IMWtWrV64IEHSPKgR31CpA+udGEKHDRMgc8AxFPj5d/97netW7d262pJ -KSPlkRpHRUUx+48s6w+uvfZa1uLxdpGXl+fm/mRMElJbCmMAqPrkfjM3Efa8/PLLAwYMqFKlCkft -6u5VrVoVM5gzwBhh2rRpb7/9NisTDx065GpIRfr4ShGmwEHDFPgMKPAyA5Pq9sMPP7zgggsYerOi -Vts1a9Z0teeoOElKn65du7Lai6E3Xo6DBw+6GsESpVKY30ANQD/MlZAu8OqMaM8999zjstxrOMAU -pJoQFVGrVavGUZfz8kzqbqWjdnccPtYtpjPAFDhomAKfAd94yBokzbj0c8GCBSS01HmT+ceIm3NY -NL+EepNevf/++7H9dGLJLexiuvSxnPNSRdFfiwPh888/HzFiBLWESKpTqVIloqP1KGO4adOm3JVk -G3fr1u2dd95x54qccvhk2Bnp4ytFmAIHDVPgM0DWIBashtLYrlKSVatW9ezZEztQBrCU1q1cZvqp -XCE6vZdccsnWrVtDhQFddC4Xlhzp4/shu3fvdobr0aNH//CHP0hgORZpb2xsrIsxY4VFXFxcOa+4 -W61atWbPnp2dnY3jQu8l5kHHSAXV0nm8EcQUOGiYAp8Bkkppr0vSlZOTwwyaxuZTpw== - - - TtV4nEkoZwbjiMAMZm2CdrZu3fqFF17YuXMnvghCjkunQagfhttERzpz5kwcLEyxEZVHyh0dtbvR -aKcOcOXKldSDI1kErmMS/DrHsvmBi2IKHDRMgc8AslmygsPlAfv666+xipcsWUJeNZnBjRo1ctpL -Akb1KVmGZEjQzlmzZvFGoiM0xi+FtR5YsPb666/36NGjaFZJt1K7kgfVhZiCzMjI2L59u25MrHFz -kqsDlIyzs3TebiKLKXDQMAU+A7BaWcUs2xUDWNv5+flSYJYYjBs3Dv8D9TUIlJU0Sal0tqm7wch9 -wIABq1evdktCSmHn0g+74YYbdAdxnm38KmQ8c94VUmTUrl378ccf37p1K0ckyZUN7OJ7CwqRqkuW -yZMf6eMrRZgCBw1T4DCi00U6XKIdnnzyyS5duuAsZcUcE1XS3vIeOsOkqalRo4YkDiVHw/WI75TA -LQzIcP1Oojj4cIIT9FQ7OQRppn4JlUR0T8nNzdVRyG5HZnFx87NZAKgj0qsUehsxYsSmTZvC9TsD -iClw0DAFDiPOjkUwtfHmm29eeeWViDCqi47FxMQwiidZrk57tWrVRo0a9fbbb7tQW9mHhArgdg5j -p9Mnk/xN9ws96uLqK9gZKrTwQ15PX7RoEXk4XWpfvBBSYO0ntwM6LAt54cKFkm4f54IrAUyBg4Yp -cBhxwa6uKHOBlxvtvvvuq1evntNeJuYImsUkxoAUqamp999/P3NefMLBgwcxhsM4Wkd+qd/xfRH0 -s9FPfd2uXbsyMjJwMsh0V5PQ7aOCB+JAdjht69WuXbu+9dZbBYV1S8P1OwOIKXDQMAUOIyx5c6WO -NIRnykl71qxZ06lTJ6IFJGVNmzbVqcZ6VC/TuJ4FzljLl112GWkTXLQbLoJwgdH7Dw/KWwjCklHm -5cuXs9ZPeqvfKRHQr9IvRJD1+7XNj1dTmTt3LofplleH8acGDVPgoGEKHEYIeSWeATeCS62mbZmy -8+bNi42NJWg2Pj5eUkbcGsuZSZ6Ai7Vdu3YrVqxAEik/F8YUCljUboUFWdbp4NL8+fPnu6ofTCay -sli/U3tYgMzEIunomVNziywswuHnYAocNEyBwwgz+8imC3PF14qJqMeVK1cmJyfjEJaISdNIoYDQ -UUANY1hafcMNN5CNjaLt4fqdGMBY7C44Qfs//vjjAQMGqNfT/VndRnCvy/bAz6tZs+bQoUN1U8BT -rY+iPBNxIOH6nQHEFDhomAKHEWf9EsAg8XQOYVmJ6jUkId+3b19mZibp1CS5Os8IL7Yxs1pYoeqA -aWlpH3zwAet5w/U7CWZ2dd7Fl19++fDDDyckJBQt34bwulzrLtNFs2bNHn30UVfb1BnAOTk5WVlZ -ZgP/HEyBg4YpcBhh4syt0dBJw8g8evQokcMsfJNK79y588UXX6xXrx7JxIrWatcwnxISJFsr51WX -uOOOO8IYY/CD/PObN2/WHcGF9fLVtAREWI8Y6vp5w4cP//zzzwu8hdjOfnbhHwVe8rRw/c4AYgoc -NEyBI4h0+JJLLsH/IJuTeS5qHmEYk9xG1KpVa8CAATKhZVq7AvHEHktOJXpYs+RbCHl+BvbIQHWV -NLWHWGX9Ga9KgRcvXkx+M3zRGN6/9JCJfu6552o/SYdq1Khx5513kh7NmkQxYQocNEyBIwiG6L33 -3ktaS0kuldQ03sc21oXQSzhjdWmaN28uyxl1dbqKsc3MmgtF+Pbbb/Pz8/Ees1gv5Mmy9NPZrrt3 -7547dy5LLdTNXZE7yb46PjNu5Qrzag4bNmz16tW4svnGUpjDzQeYAgcNU+AIwtJmCZorLow3mAW/ -uCBcxhs9altqPHPmTBwdJNd1ZUbJ7k4snBNnaS/zgJSrQzwLvMzqaWlpzACqm5PDrWrVqvoiNxso -Na5du7Y2rrvuuvXr1/Pe7OxsJ/6RPn8+xBQ4aJgCRxCJJxFrqNn111+P31XnXyefbV0agm9lmlL2 -XftTU1P/+Mc/OscCKyzQc1yylBzNyclBqF3pYQmyNq6++mqZ02iv7G18HZJfvB9IPQawOv5rr72G -7wK1pyo925E+fz7EFDhomAJHEJ1VlyUMQXv77bd79eqFQ1iXAO1lCkzXiBk6SaWeykC95ZZbsG/J -DoQC65FM70KfL2sZQdZTKeeHH344dOhQ1rjpEyS/emSBmyAQgu6v/enp6du2bePn8YFs61twL0f6 -/PkQU+CgYQocQchLKXbu3MnQXsomM1XSV7duXebg8EUQI0FUGGs3MJIlp+vXr8ex4GIS3PViuk2f -LEtbLy1ZsqRly5bENnCtiXzQJ+NqVn9naV79+vUXLVrEZ+K+oCUQw+aWmUT49PkRU+CgYQocQdBe -qvboJB88eNA5ch966KGkpCRdDibFWAKMX0JqWatWLZRZGwkJCcuXLycQt6AwEy/GMFnOmHSbOnUq -b5dxqw/U2/XJrramvoiUxdo/ZswYVN31dD3iW6akBaU2CbowwospcNAwBY4g+/fvJ4yBOvV/L4Lk -buPGjcSq6epIaWWs4jpwOdLZgDlz5uzbtw+RxEAlvaQ2Vq1a1bFjR9waVOhwXTs6OlpGL1EQvHrX -XXdJt/XbDh8+zCwhYkvmNFJJEAJnNnBxYAocNEyBSyHENhR4C5kXLlyIR6JGjRrqj1JLXSaqwDs3 -BZNoXbp0WblypQuNkEV99OjRuXPnUkOzevXqRDhIySXj+Ja1jS9CLyUmJsqQzsvLY2214F5gl74k -MQUOGqbApRAG+Hh3tf3uu++OGDHCLdbQ1ZHhSgBDhQoVmEFjIVt8fPxVV11FCMS6detSU1NdyjX+ -Uu9Ch2NiYlhlTG6KzMxMfZHkV9Z4yFs0xxI86+kljClw0DAFLoXg0ZUB7Aq7b9q0af78+Th+XbYc -TFlm6KS06LN2jhkzZurUqQ0aNEB7uZRRUVF0bT3+shD1bnXtpUuX8i1O+fH36uozhRfp8xEgTIGD -hilwKYRCzCS9wauAg/e1115TT8STQHlil2GYFL6YtbqIqLRelSCTU51+7fzG2qNXx40bl5ubW+DV -VHLOBzy9ITOAI4EpcNAwBS6FSHWZDnPxYG4p8fbt29PT06WrLpwsNjbWFeCo6MGCDmctYwYz3ca6 -Y+1JSkp65plniGogszq14dgTKrzoaHKkz0eAMAUOGqbApRAiEI4dO0YEgltu7HR48eLFcXFxJG3A -4pXAsrBC105PWdPhIn5dbU3STg4fPnzjxo0s5eDryGyG6UsHdzHGpsAliSlw0DAFLoW4pGd0Opfn -wSWo1PaGDRvGjRvnAtKkwC6Xmi4c1Zn1VBeUMDb+TKbv5MmT9XbSrDn/BpU6WeCMN5gvZU8kz0XA -MAUOGqbApRAsT1yyrK1wCyJQxW+++UaPR48eveeeeyS2ulIutW90dLT6LMuWXVYfYiEGDBiwcuXK -gsJaQiTzKSisoMTnhwqXv/ED8E5E+nwECFPgoGEKXIbAWMU8FsSPZWVlqXsis5UqVZL2OncE2X3V -i6tXr37ttdeSUc1iG0ozpsBBwxS4bEHXQ4S1IdtVuvr1118vWLCAJMOkFMYqlgLraZ8+fR5//PHs -7GxyqbmObJRCTIGDhilwGcIF6HJFuCgUQtqxY0ebNm0ob8HEHAvo1H+vuuoql4GNtcaRPg7jhJgC -Bw1T4DKHM4NdtNi+ffsOHjzYrl07UrhTWV4Xkcdbbrnl22+/JaWkNiyrZGnGFDhomAKXIYpOz4UK -Sx5rD1FqJF3XVWMVBsvfxJ133kkKd2mv/tgUuDRjChw0TIHLEC4sjQRoLmcvMRJks6TUkdA2S+Rk -A/MugtzsUpZmTIGDhilwGcIVO2YajvUa2nPo0CFtd+jQgTw8XE31XCKEb7rpJlzHR44c0YZdytKM -KXDQMAUuQ1CKyK0U5urglMjPz09OTiZNJRHC/+EhEb7nnntk/dJnqYsU4cMwTowpcNAwBfYB5DFT -JyX7upuGI+/6bbfdxno38wCXfkyBg4YpsA8wBfYNpsBBwxTYB5gC+wZT4KBhCuwDTIF9gylw0DAF -9gGmwL7BFDhomAL7AFNg32AKHDRMgX2AKbBvMAUOGqbAPsAU2DeYAgcNU2AfYArsG0yBg4YpsA8w -BfYNpsBBwxTYB5gC+wZT4KBhCuwDTIF9gylw0DAF9gGmwL7BFDhomAL7AFNg32AKHDRMgX2AKbBv -MAUOGqbAPsAU2DeYAgcNU2AfYArsG0yBg4YpsA8wBfYNpsBBwxTYB5gC+wZT4KBhCuwDTIF9gylw -0DAF9gGmwL7BFDhomAL7AFNg32AKHDRMgX2AKbBvMAUOGqbAPsAU2DeYAgcNU2AfYArsG0yBg4Yp -sA8wBfYNpsBBwxTYB5gC+wZT4KBhCuwDTIF9gylw0DAF9gGmwL7BFDhomAL7AFNg32AKHDRMgX2A -KbBvMAUOGqbAPsAU2DeYAgcNU2AfYArsG0yBg4YpsA8wBfYNpsBBwxTYB5gC+wZT4KBhCuwDTIF9 -gylw0DAF9gGmwL7BFDhomAL7AFNg32AKHDRMgX2AKbBvMAUOGqbAPsAU2DeYAgcNU2AfYArsG0yB -g4YpsA8wBfYNpsBBwxTYB5gC+wZT4KBhCuwDTIF9gylw0DAF9gGmwL7BFDhomAL7AFNg32AKHDRM -gX2AKbBvMAUOGqbAPsAU2DeYAgcNU2AfYArsG0yBg4YpsA8wBfYNpsBBwxTYB5gC+wZT4KBhCuwD -TIF9gylw0DAF9gGmwL7BFDhomAL7AFNg32AKHDRMgX2AKbBvMAUOGqbAPsAU2DeYAgcNU2AfYArs -G0yBg4YpsA8wBfYNpsBBwxTYB5gC+wZT4KBhCuwDTIF9gylw0DAF9gGmwL7BFDhomAL7AFNg32AK -HDRMgX2AKbBvMAUOGqbAPsAU2DeYAgcNU2AfYArsG0yBg4YpsA8wBfYNpsBBwxTYB5gC+wZT4KBh -CuwDTIF9gylw0DAF9gGmwL7BFDhomAL7AFNg32AKHDRMgX2AKbBvMAUOGqbAPsAU2DeYAgcNU2Af -YArsG0yBg4YpsA8wBfYNpsBBwxTYB5gC+wZT4KBhCuwDTIF9gylw0DAF9gGmwL7BFDhomAL7AFNg -32AKHDRMgX2AKbBvMAUOGqbAPsAU2DeYAgcNU2AfYArsG0yBg4YpsA8wBfYNpsBBwxTYB5gC+wZT -4KBhCuwDTIF9gylw0DAF9gGmwL7BFDhomAL7AFNg32AKHDRMgX2AKbBvMAUOGqbAPsAU2DeYAgcN -U2AfYArsG0yBg4YpsA8wBfYNpsBBwxTYB5gC+wZT4KBhCuwDTIF9gylw0DAF9gGmwL7BFDhomAL7 -AFNg32AKHDRMgX2AKbBvMAUOGqbAPsAU2DeYAgeKgoKCbdu2ffzxx7/yKFeu3C9/+ctKlSrFxsZq -u3bt2mvXrtXfbN269dChQ9r4/vvvdemPHTumHk0bUKtQ1470cQQdU+DSybfffqtu8g== - - - vUfIU049yphRVzp8+LCeakPXrsBDV0eP11xzTfny5dX7Knqc66Gr2aNHj2+++YY/5nJbv/MB6piS -1o8++shpry63ttWR69atq42WLVu+/PLLIU+rDxw4oOaEDuuNagO0K31CpI8j6JgCl07UX3Ta6TIh -r7uxRxvoMEiN1bm0kZmZGRcXV86DAelZhTRr1kyWDx+iv5Qa27DUB6gxqG3I0FWHrVChgnorUqy7 -sPoyj5UrV77++uuzs7O5oXPjplGp2ajxaDvSxxF0TIFLJ+ojdBapJX0n5HU67UFItQftXb9+/ZAh -Q6pUqSLV1bVTp5MtpG2uoIzh9u3bF/1763f+gEHNxo0b69Spo/vsLz0QXl362NhYXBN6et55561b -t442cPToUbUfWpc+gVuzEUFMgUsn+B8kv7hwcdkxhAx5g8e/eixevDgxMZGOpkumTnf22WfzVJ2R -YemoUaPwVMj6NQX2Dbqfqj3k5uampqbieqpRowZmsK5+dHS0+q8agDbUo9XBH3zwwaysLIRX7wp5 -3gkJcqSPI+iYApdmmDHR+ZcUo8m6EDk5Oeo7e/bsGT16tIaf+H5RYNlC2pYIR0VFqfepM+rp3Xff -rUuscSi978iRI9bvfIA6pq6jrunzzz/fokULHFBqD1WrVmVDHVkbMoarVavGnilTpnz55ZeMrWgG -di+OOKbApRNdFGZMiCbCc4v/gU6XnJwspZXRq54lsdWGVFdqrKeVKlVyI9CxY8dKq/UWFBjtdaER -RtlFV5MgB7WNxx9/vEePHrr6BELIGKYBqBejzPXr12cjJSXlscceYzSk+3teXl6kjyPomAKXWpwB -zGSceo36iy5EZmZm5cqVdb1k8Upsq1evTl9Tp9O1kyzzUlxc3IUXXvj111+7eAldaD3iA4z0wRk/ -F13EY8eOSYQJbNB9dvz48WoJagMa+3BfVjNQL5ZVrA091T1aG3o6e/bs3Nxc80KUBkyBSycybP7u -gfNBV0Hym5WVlZSUpH5EwIP6FGKrHkcYMAqsC9eoUaMFCxaECi0lAtiYCiciNNLHZ/xciCrkZsqV -zc7OfvHFF3VTlsaqMahhqDGoI6uRsEyjgoeaih779eu3cuVKLGGmdxkl6TOxkJmD0KvMOGjDFncU -B6bAkYWmjtISbCazhIAx1x30qJ333HNPlSpVdF0qVqyIMYPpy0hTaqyuh80zatSozz77DF9fpI/P -KC50J1XPVTv5zoORjkR48+bN559/Pj4ogoRxCKttaEMtBweFSE5OnjJlCvdoVJcmJ00gXoK4cecQ -C5n/qhgwBY4sbhRJa8fMcE9DnkRv2LBh3LhxKK160C88GFTqYpUvXx5HBCuhrr/++m3bttGb6DWG -L2F+FiNW+unCF7nz3nzzzYyVJMIaIskYVlNhuCQLWTYwDUYtZ9iwYV999RUzBQyOUGMXikMwJNiC -yrBjChxZ6EE0fm3oPHPCiRkTixcvZqkFEb/a0CPBn1wpXTh605AhQ15//XWZRnQf8/f6m//1QCTV -fiSbuPpxNGnnu+++26NHD4xhpNiNmyTOEmFmb5meW7p0KaEyBw4cUAvUJ6DAWAKIMO6ISB+33zAF -jixq52rt+OJYsCarmGD77du3p6enE+eA9sbGxjK9gg5rv3RYV0oWztVXX43ngekVNvLz8yN9fEZx -oat8xEN9E0vVdVLn3T148OAVV1xBg6lWrVrFihXVYNSveVSz0UtqSFEe48ePZ81OXl6eJP3vheB5 -cCIc0YP2IabAkUX9iLGkdNhti9dee00XhQD7czwwV6TA2DCEfYrevXsvWrRIXQYTKFTouHO+O8OX -qFdKFTVWkgjTbHjknq5XdfX1kraXLVvWunXr//CgIeEcpo9HR0eXL1+eLt+pUyem53BhuWicojoc -6eP2G6bAkUV9hOkPmR/0oK1bt951112S1lq1auGvI+xBtkqVKlV4ShIA9Z1Ro0a98847fAKZfOg7 -ubm5ePMifXxGcYFO6qKrCeGOIDqCEZCu/t69e2lR+/fv37Zt28CBA9WiuGvTfrih6zEmJkZtiZCJ -GjVqzJkzR2/knk42EiLSnQ4bYcQUOLJoxIfnlt60Zs0aiSpeO2I7K1euzChSaqxho57Sdxo0aPDb -3/4WASeu3kVTuDgK80L4GF1crrIkl0XrREcQ9U2LIqqBbTWPm2++OTY2Vo0KvXVL58gowsQuMw6d -O3eWhkuEUfXvC7FotLBjChxZEF5tHDx48LHHHmN5Kdl9NTYkxJd+wXJjNnr16oXpq6tDT6S7FR02 -RvrIjNIFjeStt97q168fkisdxg98tgc78XppW8bwE088IdWVPugWT+yxWqnLLRzyIuIk1Dg9In18 -ZRVT4BIDOwQrRY2WyQ58BRokZmRk4HMgwxU6TKoH7SHAnlevvfZaUkMQRc8gMdIHZ5R29u/fj4pu -2bJlxowZ+B/IpOc8EiQSUUuT/DL7MGHChO3btxOrxqwfUuDcEZjZFnl+xpgClwyEDCHCMiSIGtLG -oUOHnn76aZklqC6LSUl1RfQvCa9wC7dq1WrVqlXZ2dnucyTgLnelYZwE2gyW8IEDB1555ZVBgwap -XanhFU3oRFI12h4h6BKHlStXYja4JXIhb9kmk31q2CycN84AU+CSQW0elx0+OjXavXv3auOqq65q -1KgRGsvAsFKlSlwCt/iCgeHw4cM3b97sOhEGcMjrCJE+OKMMwHSDmg0hZ+Kjjz6aOnUqpq9wcY+s -u5QgS5xjYmJonFdffTWTDiFvyYZzL+tjDx8+HOmDK8OYApcMTE//zQMD+NNPPx0wYADhDTrntWvX -xvolrTrNngWk1atXX7hwIfNr6j76HHKm6WN1XaTDll/F+Eny8vLUckKFfgOMAW3ffPPN7du3p73h -hZAUkNBS9gDr6bCKu3bt+vbbb4e8xowDzUWemxlwxpgClwx4btVQsV0fe+wxTF9CMaW9OIHV2iW/ -eCSwTPr27StbpaCwxNsxD6fAjAct6sz4SVitLHsVbzCrL2mTq1atGjJkCD4H1mtoo2nTpshybGws -L2l0JpP4nnvuwTOsz8nNzWXph/nBzhhT4JKhoDCba1ZW1tixY2nbRJphZrDMTY2clRekVZk/f74L -78T/hthKw6kvU1BIpI/PKO04vwEDMVepk7GVLAQ1tgYNGhAawRrM+vXrM0ZTa9RATLYB03Pp6emf -fPKJy0qhD9m3b1+kj6+sYgpcMmAzLF68uGXLls61S5iZdJic6iy7ICAzOTl5xYoVtPCDBw/i8nWB -na7seMjrWeaIM34SejoLJ1nB4da+sRBeDen5559PSUkhLoLIcywBaS+ywKP2t27desmSJbg1nGFg -nAGmwCWDRHLWrFkU7WKujRwp2pDe8hSvrwZ9o0aNYsEpwWauTIauAuXFKVeEY9lVtDeMM8CVUcaf -sG3btszMzHKFuNRPJD5lyOYWyF999dX79+9HflESVwMUX4etYv5JTIHPDBobfl1mNFy8GU42Jo6Z -O9u4cWOLFi1otxrikSVbJ5zl+VQawvpNSEh49NFHzaIwSgwUQHd2DbVosTt37nzxxRfj4+OJhFRD -dZWXcRHLPGZDtvGQIUNeeuklfQhvV49Qy3c1Da0l/ySmwGcGzjSdlqNHj+KS5UwWFFZ+oTHv27fv -zjvvrF69uuze8uXLE12G5GL3UlqRgMxhw4b95S9/KbDM6kYJ4pzDsh+ca0KN+bPPPjvvvPOkA2qi -pEJlsliP1Aj4z8IidImJidddd12Blx+emDfic2yG7lQwBT5jsH5JXeLCdClvwShs8+bNY8aMcQM6 -fL9sqxlXqVLFLUdq0KDB7373O8m1zawZJQwr3WjDeINdmISE9KabbsL6VXNFH4pmd69Tpw4LOtSS -Bw4cuHbt2oIiSdXMP3wqmAKfGbhnWRGM/YAvAv108WZSXY3g1ER1PvE8EHtGplZa8uDBg1977TUX -MG/V5I0SxqUTYYbXFW3BM/z2229369aN1D3lCgtjuWKgVOjGV9y4ceNFixYx00dHkFUc6YMr7ZgC -nxlMjens4fIlEWvIG9NlZWVNmzaNoplSWp1JynXhUouJiZHxwARH5cqVr7nmmk2bNqG9e/fuxZY2 -L4RRYrjoGhJKuzEdZTJokLm5uZmZmdQ5cq4z3GhqxnrqFnFoY+LEiYzmDhw4YF6In8QU+MzAAC6a -CRDTd/ny5R07dmRZPT4HMk0RZuncv2LQoEGLFy8uGmZGcjOrSGuUJITc4HlwtmuoUJkFr2rP888/ -n5CQEB0dzSo5rF89ZQknZY8Ibk9OTn722WetTtapYAp8xqDAzL6Jjz/++Le//a1s3Zo1a6K9apCs -bkN1ta1WKitC9sMll1yyZs2aAm9ZPaU5GQkyJ2J5fY0SwzVgHGtENmoURoga5ed4VVp98ODBwYMH -161bV0rL6iES90kuaOr4hNX+Nda7+uqrGRgaJ8EU+MxANnFByEhYt27duHHjyhVWHyDNFGl+yblK -ml+1z/r16996660kpdy5cyf+h6NHj1JaiGkRsxyM0sztt9+uZoxPuLyHmroeSfLjarioC3Tt2nXb -tm0uhbWrh8j6eqZRXCgyw8BIH1xJYwp8cmgVOnxXAIgwGzJDqv3s379/4cKF8fHxNDnie3/xi18Q -u06WdY3UEOfzzz//rbfeci6LSB+cYZw2BLr/+c9/7tu3r0tryQI6tXaqMKvBU1xAdnK9evXuvffe -vLw8FyqP+UH1DToXtcJDRdIOBwdT4JPjEvHpROlWzqiKNDti48aNGRkZzLJJb6tVq8aa+nM9dEpd -QfAaNWrMmzePjJTS7QMHDqglW2UBo8xR4CWRkGioDd944421a9eWDtPUq1SpQoQPBUBZZOSm57Zs -2cJ8H6s76UEu6AJHdKQPLgKYAp8czg/3aFcti2UXTzzxhEvrJ73FDya9PcsDFxl72rVrt3r1atZv -cjJpfhZ1ZpQ5ZM1KQlkRrzb86quvUtQbp4Qr7U34pQwSbdSsWVP7mzZt+txzzxUVXvUpsr5jDAdz -CbMp8MlhrSW1AGg8hw4dUrOZNm2ahlcMwVxqXyRXlkDVqlVJdyZLQEYy2fwKiqRR5b5vCmyUOVBO -OgW9Y9u2bVOmTCmaW5g6s1JgbVesWFE7ZYfISK5cufLcuXNdplZ8emQqDnlaZF4IU+AfoKayd+9e -IhY07NKeP/3pT3369NHpksa6eQfOmE6dbvflCqsLxcfHP/DAA2gvt3uifVg7T5HxSB+fYZwemL6H -Dx+m1oasWTbuv//+1NRUjGGy/7kpOQIyXWhQz54933///VCR3KpMxgXTDDYFPjm5ubm4DnS717l6 -+OGHJa1qTjo5BOEQgcN0MM0PA6BHjx6YvrrjI7wYD7rju5lfi/s1yhxECLvxIEXiJMh6+uabb44e -PZp8Pm4CmqWgsn5ZzqzOUqdOHRkqUuwvvvjCBcKFPOs60gcXAUyBT44s1V27dqmR5A== - - - 5eUNGzbMhfWivTKDmfZFe0lnrafEm6l9umlfl3iKSDOXozXSx2cYp4carawIteeQZ8RSQ5mNAm8d -3Pz586tWrcpIkHGiSyghHXb5fMRll122adMmwiEwSwKYZ9UU+OSQ7WHx4sUUFZJ96yZ8QXpbsWJF -7GGdOp3J119/3XkeWDQX8trqsWPH1D75QG1T7i3Sx2cYYYPcJlJRGcODBg1yUyGYvriCSY3C6rly -XqZ3dS7mptUjcGg4QSb7KxnbIn1wxUXQFFh3ah3vYQ+X4NfNC6gJ6ea+f/9+moT25OfnT5gwgYUV -urM77VWLorSxS+3bsGHDjIyMSB+fYUQGGcYklUIwv/jii+nTp5Msok6dOnXr1sU5rD2MGWUP4xZW -t9Jfbt26FbslJyeH1abqiehwyNdxwkFTYLcGkxxQ7MSjRcUr/AZix44dn3/+edOmTWvXru0y8mHx -ssyN+AedqBo1aiQmJj7yyCMW22AEFnqNuk9ubi4Rm1lZWU8++WSzZs3Ua1iMzxQJ4fH0JmfSdO3a -9bnnnkO9MY0wiswG9pkCM2WAiyBUZDZWyNxV+yFLqkZDCxcupHYbjUR38MoeOi0aXuklMu3opREj -RmzZssWyoRpBxkklFmyocOX+X/7yl+HDh5O+kghh+o4zYGQVM4qMj4+fOXMm83ohr2+6yHkNSyN9 -fMVFABWYGpdUWEMzdXTZ2dk0Honwxx9/rDbDrRlzl1U/LtqhevXqjJ7q1at31113SbqZhtAAKtLH -ZxiRQd2qaHWYYx4FhWnW7r//flkv6kRu4RLT2epZaLL2M0k3aNCgTz/91MVXqG/u3r3bx2ESQVNg -XVlu0KQjI/MeCVG1fejQoaeffrpx48blCksYl/OKYWHr0n7I+aCTk5aW9tFHH4UK8/h9+eWXFttg -BBbWU0guZMMgxcgmARJ6XL9+PYlbCRliBZPL7o6pgzEsw+bZZ58lAIlAC0LxfUnQFBiR5Db9rYfz -QuzYsWPq1Km6I+tUEPCgM8CiHp0N7tSsuJQ4a7hEqHBBkbqcajCRPj7DiAzMpDCpTfbskDe6pI+o -sxDhMG/ePCwZkvkQ3knOYRk2xBRRwfaSSy4hqdquXbt8oz//l6ApsHP/hgqbhza++uqrF198sV27 -dsSbkUuHmzU3ZakxaahF//79//CHPxQUpvbF/VvgFeU0P7ARWOgR6DCTaMx6aw/uPnU3/BIvv/xy -fHy8ehZBwupZ+Pfc4mUyDGtPq1atli9fXuDrDCpBU2Bn8eJ80Ibk99Zbb1UzkLnLdVeriI2NxfOg -s6H2oPs1qfbS09M/++wzpgbcjIPOIYuDTIEN4xQZOXJkrVq1COxkjT9TdeQZpuKG9qvTzZkzhyj6 -kOdtRthdegqpvboefZnwe+0vQ6NRvyow2ZZYd8b14gZd4OWZZJmwbtbvvPPOiBEjUN1yhRmnmR2g -noWkmLaRmJj4wAMPEKumx0gfn2GUbQ4ePHjvvfc2adJE5g0jTdIJuowr9ETWdHTq1GndunV79uxx -4031ZXVt3BTY26S+LBrpVCbwqwI7f1TIW4Vx+PBhbp1UWkF+77vvPiYFGjZsiG9KN1xXYCgmJgZX -lZrHxRdfvH79etxZLFKO9PEZRtmGiRh1qwsuuID5boLtXdZ35lxcxhUZzE888YQ6L7FqTKkXFBaz -46mb1ilDeuVjBQ556y+kwxjAujrkX9JLH3300UUXXcSV1fESpsil1yPFB7kvN2jQ4M477yTDP+4s -f0cnGkbJQPynuqQ616233lqtWjWySZx77rnqjOqVLkai6FrUKVOmyARiWSvxxkeOHHFS7MptlKH1 -/n5VYNCPJ96MEoS4jBYtWpSSksIFjY2NrV69OgrsJt1YNVmhQoVu3bq9//77ZFYnIQmlVcrQ9TWM -0on645YtWzBpDhw48MYbb3Tv3t0ltCS1mqswjnuQgOFWrVq98sorGMNM/6G6CLKrOhfp4ztV/KrA -ui6sbmOhMdvS0qlTp8qsxelUs2ZN7F7ifqtUqRITE0NdY92RMzMzN27cyDysW6pMuKPF/RrGz4Q+ -JSHFo1vgrWKWieuihYlYU98kNAJRwjrS0+uvvz4/P58hLR0TJzAiXIZWcPhVgUOFiyJd6O/zzz8/ -ZswYFlNQRpA7LFWMf+GBDZyWlvbYY4/t3r3bxZihw9TopNlE+uAMo2zDGlJcuJIXxpjaecMNNwwa -NMgFfxbNZomj2MWIpqamrlmzRrpNNyfplnMIR/r4ThW/KjDTcMQlbt68+e6776aaFfnVXdgDx8t9 -luXG6enp7777rlNaIn4JJmflhVWTN4yfD6kIMVzVuQgVZirtww8/vPDCC0nJEh0dTUZuuq0sKPqs -XtVL2r7vvvskwrgj1D1R4zI0SvWrAnNl9cvff//9iy++2OVzwAbWnVSXj6U3OPy1s0GDBv/93//N -CkqNjFwOH11ZbTPeYd1lAGupGEbJQBU5dcDrrruudu3a6qGu6C0JLSVN6sjkl4iJidHjuHHj1q5d -61bh0VW1IQuKSbqizopIH98PKesKzKwoaXYovqbbKOuFdREfeeSRVq1aMa2Gs/fss8/WBeWuSj4Q -VsD169fv1VdfxR9F8VYqCkX6+AwjcGRnZ+MlXr16dZcuXYiIqFOnDvGidFhZUHXr1kWW9dikSZNF -ixaFPOeGRAADzM3QsUwDEY70wf2Qsq7ADF70IzFZXT2gzZs3z5gxgwTRZHgg2kE3TYxe8voyrlmw -YMHXX3/NBcLbEPLWdJTC62UY/gaDSr0Pc2jPnj3z58/H1tWjxq3qxZJf5tBRY2bPpc+TJ0/esWOH -c2swaY4NrKels0eXdQXWb5Oty8oLtFcbK1as6Ny5M+MUltjoURYvC99IsY5J3LJly7feeospAF0s -Xf28vDxdOO6epfB6GYa/YfJF/RopLvCKlWt82rNnT1zB6r+yqdSp6eDS5OrVqzOPQ3LL5cuXu0lz -pJgUBMzpRPr4fkhZV2DOc05ODvIr/bzqqqukrlwdlJbsH8yusuoNt9L06dOLRhW6JedcOFNgwyh5 -vv/+e1INqwMyBUNP3Lp1a3p6usuaFRsbixeCnq5OLQsZiW7SpMmsWbN4l/QtPz/fzemUQh0r6wrs -bnb6kWvWrBk+fDhpHHQ5mDaV5BLQokfnQapcufK9996L0oa8gsihIkl7/u5ROr1GhuFvcEFoELp/ -/356tzSZ6Tn103vuuad58+Y/qJVAEgmXuBunxMSJE1euXOnm4Nx62Egf3w8p6wrMbU5XavHixXFx -cQgsXiP9fsmvKyXvwrxTU1P/8pe/cEFZsIwnmex5ul26EHE9jfTxGUawYDLddcDc3FwNVCXCzi56 -//33BwwYUN6DNcsIMvl8AMNYPf2RRx6R8UxwmqvZUarwgQJv2bLl0ksvxefgJtp0Q6xSpQp3Q+lw -zZo1ST165ZVXciukJCv3RwYpVMoghJj9Ps7MbxilExf26TK+qkvu27dPeyhqQ4e99tprGdJSglmw -Yo5ijtpQl2caaPTo0Rs2bMAMJqtPqaKsK/Bzzz1HvIouAWU0WWrBFcES5obYvn375cuXS2N1ZWUz -E6ASKqyeHPKWSXL1cd27ekaGYUQcMmthDCPLy5Yt6927NxERdPlfeegphTZkehEy0blz5xdffBHP -sLq5Pgc/M4bWNx6ROq7SpsA6My7lUX5+Pukd3GIZPd2/fz+jiY0bN86aNYuC1//plfxjJKLfr20C -uVljXqFCBd0x9+zZU2rvI4ZhnBxGqeiV8+5u27btuuuuw8FYq1YtXI5UGXPTc2xXrFhxzpw5ZNnS -2BZVkWlN2sMIHldpU2D9mDwPTFOSmxGUsnPnTnRYT1977bXU1FSXzLmCB9keqOlGrC++oIceeoj0 -DqVwDGIYxqlQUJgGTUaaJFQWGr7i3NzcFStWNG3alNUZUq3o6Gg3+CXwidl5mcRpaWlvvvkmb5SB -F/JCLyJb3aa0KbDObdHpS1Ie6dtdIjudt+uvv173NVLrU+iEexwTo26GNDY2Nj09XSecM6yPNRvY -MMoo6r/k3kEHyA9AkhaJRnZ2tjq7cwuTf4DlzEJSIMWQxEnc4uLiZDazbBZJj2zUU2lTYE4FKTsY -KWiDWF+NINavXz9y5Ei3CkYnlsrFTIbiCualxo0b33333Qwx9AmygXXOS+YQDMMIOyTacnXHnA6T -CAJxll5R6JOVGhoXSw1YDuA8FZjHl1566YcffihlQACJR43UcZUqBdbvkWwiuaywIFBBP+Dxxx+v -V6+ehhKcT06mfi1JHnSPY25U2z179nz77bcJJmSdBWvDy1DOOsMwikKmCBauahsDGBuY2SL+4NNP -P+3YsSN668KDqXmEL6JatWp4hmWkPf3003qXm4uPCKVNgSm9V1CknqZO79atW3XPIk8dRa5JxyE1 -1snE/a79+uX6mylTpjDEwPFLrjMsYctpZhhlFNeRQ95IWZLLhtuPwYZiXH755QRIOMPMeSlxC0tA -CBueMWMGBUAjdVylTYE5kzJf9+3bx3DjpZdeSktLK+flZ2ZJBRG/VJXiXkYGnpSUlMWLF2M/61Ej -C9Jx6BhJxV8K47ENwzgVmI6XWLl0AerRhEVRmYhBrmxaevrSpUuTkpLwOWhcLNU999xz3aJm6RtV -kLTdq1evVatWReq4SpsC68fk5OTgHt+5c+fcuXPr1KmD/Op06c5FNVUmOnE+YACPGTNm27ZtaK8r -rMnROevX4nsNIyCwVovpOSRCukG0sB6ROBSYKNZrrrlm8+bN6LlknKhjDcld2DDrQf7mEcb44Ugp -MEfKobnievouyS/+nA8//LB///6cHKmu9Fb3LG5hRKDpF7L6WDbw7373O7y+GpLs3bvXbF3DCDj4 -FqQnEjGMYdZuoGzUJiOQVYKMX6Jv374rV650ZTsovaGROEYdekVpjzD+zkgpMJOPrFAjTJrTRczD -H/7wh2bNmhHg16RJE84ergaqyXMv09OMjIw333wz5Nm3kl/uXDbjZhgBh/yWzCW99957gwYNct5L -aYi2JSPETZXzipcxuS+tvv/++3Nzc/FvyJyTQLm1eCFPMNHMcP3OCNrALpW9foAOmWnNHTt2XHrp -pdyk3LJi6TDmrkRYJ5A5zXPPPfe6667TnY6gtVDheroCy6hjGIGHEDVXtEhaeuuttzJ5REph5Jf1 -y06EWd08adIkCRFRAWQKQoQLCmsxh9HGi5QCc4vhAJHNffv2LV68uEOHDghvxYoVpbdU6+Pm1bRp -U/w2Okv6M40XCFTTTUrvxfqVCGvIQMJ2wzACC45NRsQ4NvW4dOnSnj17MqcvNXY6jKVXu3ZtPMYy -+TQGf+GFF9zYPCsrC5mSzhDAFq7fGcGZOFIVMemmY5w3bx6OBamuq2hMPIm7Q+nUVapUKTMz092h -iKlmjEBKZ+oah/3XGoZRhmBWiOkhCQKVdLS9a9eu0aNHS9ykM66MjsujWKtWLco3sA== - - - tHbu3Llbt27ljVJgfRqWHh6JsBBBL4QrHbJ69epevXq5TBoU0IyOjsbbUM5L+YsXvXHjxkuWLCF3 -BAuWSbxMLRKq8pFeMry/1jCMsoUG14yFpcOuRgaTaxoy//73v09OTmamKT4+vqjOyPbTAFyPmMrj -x4+XQEmpcJZiWpNwOCxESoGzs7OJoL799tsTEhLcTceF7ZFSg1UYvHrppZd++umneqNL2sNZ1Rne -s2cPAw1OVHh/qmEYZRG3UoMAM5y3GjujFevWrRsyZIjLKiPd0yPZZiSG5Fpk5ZckesGCBc4tzIKv -cP3ICNrAOgPp6elUzyRIj1AH9xv0iA7rJf0S0iwXFBZEZrqNk8lAQycHx7v5gQ3D+FHIEoPzc/fu -3ddee22DBg2YkpP2yghEdbGB0WR0afTo0V999RVBwoRv6UMkRCQ9II3YGfg/w6XAzBW6XENUDsJ/ -Qi50/OEsE9YPfuaZZwjSI4GGvl22rnTYeR60H89Mr169Xn311TM934ZhGP8Cg01alJOTQ3jDsmXL -+vfvT4YZpBgDmPBX0ahRI2aj2rRps2jRItZBS73Rt0OHDkmTmX46A0s1XArsPC36NLy7/Dwd6fce -ocKV3ZLiiRMnUjtedxyqxmubAkPcidyq7enTp9sKC8MwwoXMV6IaeErw6rZt2y677DJJLlYfNc7I -PIMWMWEndZJVnJGRwcoFaaM+DacoFSXOQKnCpcB4ZaW0hz1IpEzFPQLPiKl77733UlJSiHPQN+rQ -9HUcGkFoMoMx+5s2bfrUU0/JyMf1fSbn2jAM49+RnuTm5qKWUidJqMsYs2TJkvj4eJfsi0pzEijM -Re0ncpjsixqYs4ThqAeTUGcQJxwuBcaex/p1DnDtz8vLY6ceb7jhBgIemG3Ez0DkA9Z+3bp1y3nJ -i8aPH//RRx+RWFI/QAd4ZmfbMAyjKMwZUSkSaZLOkElG9p6M4bFjx5L6ABF2BSiRJukw27GxsXfc -cQcO4ZBXxo61G6f7e8KlwMw2uvgEYhJ4qjvOV199dckll3D7wL2APc93xcTEMAWpl5o0aSKhZraR -8vEFhZnoDMMwfiZFq/CQ5IHZK2bZ8CfcfvvtderUwQ/MMg1i1WrUqIGLmOUJkqzzzz///fff543M -fJ3u7wmXAutzKDmqY3FlpgkVW7ZsWVxcHItQZPeSXx3Tl68rWsXJHY5z1+iE2AoLwzDCArlqpUsh -zx5miI2tuGPHDvwJYs2aNX379iXrOEECriKzy+qDCCcnJ0uxSYq7a9euM/g94fJC6KNYKoJHQui2 -MmfOHOdhcLngSJWsL6Lcm24r2tBfEiRMsAQL5XDXmAIbhhEW3Didip+uGrvzBmvDCfKNN96oYTsV -PwkSRnslZSRVcwmHJ0+evHnz5gjawDhAnAdYb1m6dGm3bt3wPJBp5xwPPdXvd8aw6NGjh+xk3NpS -XcYFLncl7pozO9uGYRg/hxUrVqSmpjKB5RYvO1nDOcxMVkpKyssvvxzyNJzgNPwbZBuWkB4+fJi4 -AqdvLtPaqSuwS0/hXA36hL179/J1xKTJIJ83b55+7dlnn627hn6e9BYR5obigj10E5kwYcL69evd -cCCiJ9swDOPfkDTt2bNn+vTpEivyNErWCJaoVq2aW1DGtoRuxowZqKuMyVChUYowUmaUtAnsJ1vF -aSkwc4jY7ZJcfQtZeSkGVOCl4uzfvz8FLHR3qFSpEsEPOE/+w4P7iO4sTzzxxM6dO/VGt5Qjoifb -MAzj38ALKgldvHhxw4YNmc+KjY1l7QblNn7hgW2sja5du65bt04iKW1kmUZBYX0lbeujJLwuk/np -KjCJyPR0//79LgoO/62M7YULF7Zo0cIlFyIbpz6H1PTEePBTx4wZs3LlSue1kAJb3K9hGKUNqRzp -v6RRH3zwwejRo9E3MpaTU0ISp8G+9uMW1qMsz7vuuosIYb1Xglk0TBfng4SUlWunpcC4C/SxPJKf -ocAryTRhwgRcu9LYmjVrUt+NOAeZxC7hZOPGjWfPnu3yObCCgzuCPjOyZ9swDKMozkRkek6W57x5 -8+rVq4f8Vq5cWcp2toeEV+LJGjrcFFOmTNm3bx9rgbGB3QeSShfXwWkpMA4NSfeRI0fwZuzevXv5 -8uVdunThJ0n88T9wO9CHVK9enbRvYuDAgfpjl57dhQ0TR2EKbBhGqYKoiYLCBb+o1qpVq6R4brCP -bDLJhQaS1xGDU38stXSfkJeXp6e4c7GHT0uBZbviT8YVvGvXruuuuw5vA+XbyOqA6ct0G0Uu9GpG -Rsb27dsLCisK6WfwISxLwY0c0ZNtGIbxb+AdlWySCwLvboFX9mj69OmIsMTN5ZSQ/LJqQ0+dp+KW -W27ZsWMHZqdL4INf4nQVWNsut9sbb7zRuXNnXA21a9fWj6lYsSKTg/oZcXFxVCDV08TExGeffRbp -JlSDO4urE+cmByN6sg3DMP4NGYdumYY2qFPPKF5PlyxZkpKSgsyee+65WJ7Ep+mpLFJtk00iLS1N -w3/crSFPfvVINt3TUmDWQcuWvv7666W61LlD/GUJE2mmDdwgrLyYPHkyqX31OfrN+jryWOpWgvA6 -H7XVODYMo0xw8OBBhvCffPLJ6NGj3boz9FMyqEd02EUOV6lS5aabbkK9qVPsElO0bt0ar4WMWN4e -FRWlxxtvvBGHg7SRyvLEmw0dOpR1ItSwoOISIRl6O3UucIY8/vjjmN8UFWLuL9InzzAM42eBKSsb -Utbptm3bHnrooY4dOzLzVc5L/CgrFJNYkkj0GtG5F1544dq1a93bkeI2bdrExMS45RKuPuYDDzyA -l4BabNqW6TtgwADsahfqAESd6Y0EnvXr1+/jjz923g9iJ/CBmK1rGEaZpqCwcj2WsDZeeumlcePG -lSvMu4sM8lS4JcDaaNu2rRQb5wYe3YSEBMokSVH1x2RNr1Gjxq233uqWUWdnZ6enpzPpVq6wbLHe -IrnWuyp4uKw7Eurc3Fz3XhfxG8YKd4ZhGJHCJR+j7g+5a7R9xRVXsHBDCuyqbBAYVqdOHaeflStX -zsjIkPHMh1AwSBJKYJtM3Pr162vPwoULcVm8/vrr3bt3R13POuss/aXkF23XHnzI2MOS95UrV5In -zTkfWAftcgibI8IwjDIN4VssMSZamEUWUubnn3++Z8+ebnouJiaGJWnalnji42XdhET13XffzcvL -04b+gArF+IH1x3FxcQsWLNi7d68e9ZLsW709Ojqa6pksr9AfS8ydvT116lSZyvpV7gbhnA8kT2Nd -nsX9GoZRpinwkoZRBqigsDKmjFWiar/44ov09HQm11z1HzwSpPeRwPJqYmLijBkzmjRpwswa82gI -tazcmTNnDh48WE9xL2sPpZxJ0aadvEsvSa6ffvppKhO5CT6W3eF8QI0t6swwDB/gzEtMSkq3E+6b -n5+PU+Kpp55q1KhRucKq97Vr18bBW9FDKsoMnaQYOWVmTWjbeTBkQhN1TJQFNd0onIQZLEnv2rXr -2rVrd+3ahbrm5uZiA7s10SEvkJgw4AKreWEYRhkHzyrbLOzVI+EKhPiixu++++7IkSOdCFPzCMMY -n7BkWXasSzVMqh8EVvvr1avnItkIEtZLRLgxASehvvrqq0NFFju7vJcu0w6RD7ggkN/s7OwInjrD -MIxiAiXUqJ+1GwVepvc77rgDW5dlyySRwLKVwMrKJbqMpc2YwWeddRaeYWmvq6TJpBsJJ/W0Y8eO -q1atIhIj0sdtGIYReRBDKTA+CmIPJMKrV69mBTGiSrkNzGBtsJAZHy+mcs2aNdmWDuNwkCxLe9Fq -SfHUqVN3796Nq+HIkSORPm7DMIzIgwfAmcFuRTNZdC6//HJ8uQQwsG6OVGaSVvKqIcXlvJSSBFHo -qSusqf0tW7ZcsmSJSzhcYHXcDMMwPAqKpP+lgjxuWEkl+dBeeumlhIQEon8FAqunZBimGCjxZuSI -kDJTTxNxHjp06IcffqgP1ycTCJeXl2frLAzDMEJe9kimw0JezWLcEegwxqo086uvvpo6daoL6CWx -A/atHitWrCi9leoSdVa1alXcETJ9r7vuOn1Ifn5+yJN6l5uCikiGYRgBh+Q5LpkD7gjCcY8cOSLN -pOKGBPmxxx4jdxkZfatVq4YIE+uLs5cNmcepqakvv/yyy2PmvkjfQkH5SB+3YRhG5HHlJ1glx/pf -zFRKHbFY+Lvvvtvu0aVLFzL64hZ2qSRcZolatWpdddVVWVlZbhG0ZJzy8dJeRP7AgQORPm7DMIzI -Q+E2GaiuEJtbhsZSNbKT4T2QVSxFnTZtGg5hMv2ec8451J6T/LZq1UqmMh4MvL58DrG+KDlfFOnj -NgzDKHtgLb/wwgvt27fHBVGlShVy7GRmZm7evFli60oa2Vo2wzCMMEKh+QIv0/tll13WoEGDmJiY -hISEhx9++Msvv+QlibAMYMtpZhiGEV4o3Fa0EBI+h1Dh8jqMZLLr4P41DMMwwsIPrFxqEpFJ8rvv -vjviQTk5XMeR/r2GYRj+YdeuXS58IuTlz8HbIE3+1gPrFwPYVl4YhmGEEdbQuTQ+klm3msNBsjVy -r0X69xqGYfgHVme4lJIHDx48cuQIvl+MXoqBIr9W28IwDCOMsMwNExdPL/J77NgxV33Dra0jD7xh -GIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZh -GIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZh -GIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZhGIZh -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 -pPQ553kHWeRs6XPikrz/LromyvtnYlS7uISmcReNjLogquM/ty784UtXRs3Urt5RLZOT2yYmtU3p -GNemddvE5HYdO8ZlamfrlMQ2rVNax7Vp0zoxJbl9ctwg7WyTnNi2TXvvD1un6B3evnaJ7dp30B+2 -7pCY3KZtB2+n/qBtStvkuDZt2ya2S/nnzqT2agTHd+oj27ZRUxn0Y18+KKpf1MiowUV++sxS+xuT -vfP3fz7d+21Jickpx3cmpyR2TE5qfeJP/9Hf8SO/mK+80rveyYXX20vskTb18kmd2Ow5KWPq9H9m -+dDZ09/0jWrVe9JVU9MnDe3bM+6iwVGXHG9krdt0PP5Pm9ZtvOZ4/N9/7vW+ur1+C1/dul1K3KVx -Kcltvf/1cVPO6AOO/9rCDyn8v0Oc3vPPY2kbd/zDk6Li470DOC4cneLad2yd0jE56qL+5SOdS8Uw -DMMwDMMwDMMwDMMwDMMwDMMwDMMwDMMwDMMwDMMwDMMwDMMwDMMwDMMwDMMwDMMwDMMwDMMwDMMw -DMMwDMMwDMMwDMMwDMMwDMMwDMMwDMMwDMMwDMMwDMMwDMMwDMMwDMMwDMMwDMMwDMMIFt9+++3f -/va37z309P/9v/+nx3/84x/Hjh37+9//rp1/8+AP2CgoRO89ePDgN998E+mDMAzDMM4QCbvUXpLO -XeCvf/2r26M7gu4FyL72Hz16VHv00v/+7/9K/w8fPqy/10u6Zezfvz/Sx2EYhmGcCc62l5hL/xkL -SOr/6qG7gEz9I0eOfPfdd/yl9uh2EPL0X4/5+fm6I7BtGIZhlDlw9egWIAtfT/WII0hq7zw/6L9e -kv3PU24QetRdQ/eOSB+EYRiG8bNAyaX/uh1wX5Day+bXECA3N/eBBx5ISUlJTEycPHnyK6+8sn// -fgYFBw4c4DZhHiHDMIwyiox5THqZ+v/wCHmzAxJ5Wf4vv/xyt27dypUrd9ZZZ0VHR//Xf/1X9erV -p0+f/uWXX6L/jAjMI2QYhlF2cQMBJoi/+eabvLw8CfusWbPKecTExPznf/6nNnQj4I7QvXv3xYsX -68/0FiaRI30QhmEYxpkg4//vHjiCZNhL27Oyslq2bNmwYcMqVaqcc845Z599th5/9atflS9fvkKF -CnrkjnDFFVdkZ2ebR8gwjP/P3nvHV1Vmbf84zjOjIiQhPaFJRxAHFbuIoFjABogiVVEQFbtgxcog -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 - - - cgWIZquazMxMu/UoF2UjwayWEszmLdmGV5mtnQ0xXwBJUDchIeHgwYOjR4/29/en7UovAT2xnp6e -MGIXLVp0/vx5FZHLUDEmHag6MCJHSTCrpQSzeUsq15VzhFW1bRNgU1NT9+/f36lTJycnJ9JV9Zcp -V67cyJEjo6KisqzVtFigQEUUMI5L5EAJZrWUYDZvSRWntRhRVVjs465h7Z9l1K01G8UQzp4927dv -Xzc3N7bHBWCZXVu5cuVZs2Zh/uKX6SKg/4ERsJhT2fcOE9lBglktJZjNW6L9qdp8sxmNxShySGDi -dy5cuNC9e/cPP/yQ95F5YYBt1apVFyxYEB8f/38M8R1wAEr/ZsNxkX0kmNVSglk9xIRcZg2cP3/+ -j3/8Y9GiRdnRhsFdOC5btuwXX3xx//59KWCYayWY1VKCWT0kmNVDglktJZjVQ4JZPSSY1VKCWT0k -mNVDglktJZjVQ4JZPSSY1VKCWT0kmNVDglktJZjVQ4JZPSSY1VKCWT0kmNVDglktJZjVQ4JZPSSY -1VKCWT0kmNVDglktJZjVQ4JZPSSY1VKCWT0kmNVDglktJZjVQ4JZPSSY1VKCWT0kmNVDglktJZjV -Q4JZPSSY1VKCWT0kmNVDglktJZjVQ4JZPSSY1VKCWT0kmNVDglktJZjVQ4JZPSSY1VKCWT0kmNVD -glktJZjVQ4JZPSSY1VKCWT0kmNVDglktJZjVQ4JZPSSY1VKCWT0kmNVDglktJZjVQ4JZPSSY1VKC -WT0kmNVDglktJZjVQ4JZPSSY1VKCWT0kmNVDglktJZjVQ4JZPSSY1VKCWT0kmNVDglktJZjVQ4JZ -PSSY1VKCWT0kmNVDglktJZjVQ4JZPSSY1VKCWT0kmNVDglktJZjVQ4JZPSSY1VKCWT0kmNVDglkt -JZjVQ4JZPSSY1VKCWT0kmNVDglktJZjVQ4JZPSSY1VKCWT0kmNVDglktJZjVQ4JZPSSY1VKCWT0k -mNVDglktJZjVQ4JZPSSY1VKCWT0kmNVDglktJZjVQ4JZPSSY1VKCWT0kmNVDglktJZjVQ4JZPSSY -1VKCWT0kmNVDglktJZjVQ4JZPSSY1VKCWT0kmNVDglktJZjVQ4JZPSSY1VKCWT0kmNVDglktJZjV -Q4JZPSSY1VKCWT0kmNVDglktJZjVQ4JZPSSY1VKCWT0kmNVDglktJZjVQ4JZPSSY1VKCWT0kmNVD -glktJZjVQ4JZPSSY1VKCWT0kmNVDglktJZjVQ4JZPSSY1VKCWT0kmNVDglktJZjVQ4JZPSSY1VKC -WT0kmNVDglktJZjVQ4JZPSSY1VKCWT0kmNVDglktJZjVQ4JZPSSY1VKCWT0kmNVDglktJZjVQ4JZ -PSSY1VKCWT0kmNVDglktJZjVQ4JZPSSY1VKCWT0kmNVDglktJZjVQ4JZPSSY1VKCWT0kmNVDglkt -JZjVQ4JZPSSY1VKCWT0kmNVDglktJZjVQ4JZPSSY1VKCWT0kmNVDglktJZjVQ4JZPSSY1VKCWT0k -mNVDglktJZjVQ4JZPSSY1VKCWT0kmNVDglktJZjVQ4JZPSSY1VKCWT0kmNVDglktJZjVQ4JZPSSY -1VKCWT0kmNVDglktJZjVQ4JZPSSY1VKCWT0kmNVDglkt9dNPP5GxxOy3335brVo13E3cU4VZzNCg -oKDTp0/jav+PITUY8ApvhGPPQiSY1UNqQuE2ffXVVxUqVPjggw8KFCiA24f7iPno5OTUo0ePyMjI -389YwazdpDCLSZqeng7MVq9eHXfWFrM4IGbx+4LZ3CnBrB6yxeycOXMEs3ror3/9K6424WmLWeU0 -IG/pNOBcFszmQglmtdHfDcXFxQGzfn5+WFriDgpm87Rgx+Jq/81QRkbGunXratSogbuJ6fkfhnBz -cUzM/o9VgtncJsGsNiLTgNnZs2cLZvWQwiyOMzMz169fHxgYiHsKC5aYxYIFlm3z5s2BWfoWBLO5 -UIJZPWS7Bfbll1+qLTDBbJ4W5iauNo+B2Q0bNhCzEO4pYFuwYEHcZWD21KlTf/3rXwWzuVOCWT3E -yQXFxsYCs+XKlfu3f/s3bkMLZvOucENxtekOevnyJTBbs2ZNemWJ2Q8//BD3VzCbyyWY1UOcXPgK -zOJmCWb10L+C2QIFChCzP/30k2A2d0owq4eUXy4mJgY3C7cMmOVGiWA27woGqtmgJa55amrqihUr -uAWG2/ree+/hMQrG4kbj25YtW65bt+7Zs2eALQYDQxQgfPvf//3fFus+Gl/EDWLig6PPL79IMJub -9TerzFbLhPPlxx9/xNzhTMHt4zzChLp169asWbP8/Pxg5/D2cSZ+8MEHRYoUwc29ePEiISmYzSvi -pMPX9PT0bdu2BQUF4c66ubnRXVCwYEFMVdxfZ2fnihUrTp8+/caNG7gFMH0zMjJ4O+hM+G9DnO8Y -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 -bpo3b97o0aPd73K3z87YJXZ5eXlXXHHFH/7wh9dee80+bRevhW+k2HsKir0buJeq2jFzO1CvWfyf -/vSnK6+8Misry47a2b/boqH7hRdeqNn9M888Y39lqxDFYXlnUew9A8XeDdzJu+7s2rXLDrLt3LlT -i/f444//+7//u6p7/PjxH/3oR88//3wN3e+7774XXnjB4mNfZnXwWP8J+GgtP8XeA1Ds3cD9uJl9 -8rSp5Z97tuXUE5577rk777xT03P1+h07drgH2O3Au10zE8VTaZ1FsfcMFHs3eKfl34W3ym1q+bce -7FSanUSzS+BsV2AborHlYnv32ybjuPwUew9AsXcPJfzu3bvtA7PvtPoHGRudfyneysH+RYk9e/ZY -SC2qtuTRvfy1syj2noFi7zbuiXL3Glf7p6bswQMtXwhvw3urKVsLlb/9i2zxWnKKvWeg2NEuir1n -oNjRLoq9Z6DY0S6KvWeg2NEuir1noNjRLoq9Z6DY0S6KvWeg2NEuir1noNjRLoq9Z6DY0S6KvWeg -2NEuir1noNjRLoq9Z6DY0S6KvWeg2NEuir1noNjRLoq9Z6DY0S6KvWeg2NEuir1noNjRLoq9Z6DY -0S6KvWeg2NEuir1noNjRLoq9Z6DY0S6KvWeg2NEuir1noNjRLoq9Z6DY0S6KvWeg2NGuzhb7nXfe -abm0Z88e+1erjjlJEEUUO9pFsfcMFDvaRbH3DBQ72kWx9wwUO9pFsfcMFDvaRbH3DBQ72kWx9wwU -O9pFsfcMFDvaZVfIWCR3796tOyr26667LiMjQ2WuVNFtnz59RowYEQgElCf/+Z//+X//93+2Ffbu -3Wt7CXsF3XeTx91M8V6/3oJiR0dYqYqKVxtux44d119/fWZmptJj2LBhypDjjz9+4MCBxx133Mkn -n1xQUHDZZZfde++92ifYRXSiO2+++ab+3LaFdho7d+6038Z75XoLih3tUvSs2LXJtMUVVZXqL3/5 -y6KiIqWHckO3Gs9bsQ8dOlSNPhgMzps371vf+tbWrVsbnW2t0tao3vJNt6p6Vbp+RWfvNhQ72mXj -8EanMBVPRVWP3H///XPnzh0yZIgK3Pq7csb6u+pdD6rks7Oz1eJvv/32V155xd0o2hZW5vYI26Xb -UOxol7ay4mn93UIq27Zt+8QnPjFp0iQ7OqeqV7337dtXZT548GAljx4fPnz4yJEjZ8+efcMNN6je -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 -H8yGfbSb/7nPfa65uTm8bq6VyfCORgADGWq5X3311WF7/sknnwz5HczHcP2rgujKN77xjQ0bNpSX -l1fmUAXkTa7c5TJnzpz169d//etff/3sIfewlX7y5MlLBj84ceLEz372s8OHDz/99NO5zu/Ndf48 -kD+58vj888//v//3/44ePTqYgL+e3X/vPy3n9ewuQFhLhOCfzuEMMOpy5fGVV14Jab0gwucfgR+k -X+Uw1OcBhm8weRxSQqMt/7BmeC1L3iE+LpnHQWYzCviZwR3cA2Klfy97kPnNdU7OaznkWs8A+ZMr -jxckPfx46tSpQR6fj4SHnxn6ibhAwUWn2F0y71HG+1cXv8oe4nN8HmIiVx5HZzUCAAAAAAAAnK+4 -uH1Pd1tnb2dm7aJMccvimo3h53s7D/b2HMgszxRvnNNyoLdte1fv9r17Og+8p6gx3FTSVl1R2dZW -VV+2Y1/P1llFc+7fs71rb3fPfb0Htu/ZWlTS0r13c0/77s093d093Ss6e7fNKirte6a6uvKK2oq6 -yvqiOYv39F5wv0Wde7p39bxxzwXboxcrmtNyX+vixfU1bT19L9D3y+r5e0rKmxvvKQ== - - - 6eyYt7C4ZEHNrNpFpdXtZQ/MPti4qqJ67R0HNjf0rG9cV/tA+f6O+sZb5m6Zu3VZ5bzmg6v33VLV -sWPeoep9O9oOVnU3LV3XVnbvlt7ZHcWdTW1Lmndsql47e15HW/fuhrsyxX033N+yavX82tkH587e -uXDd/raW1kVrdt7ZUr9539bZC1bPr5vd3Hr7lpYla7ZvLL/7zq6tlW3z66rKe1ZUNFZ0LZ6/Yk75 -ovXF5T2b6+oqZvc2z52zbFVFR8XC1TM6yhdtvHvd7Hmru5dmimfP235odd/1be2bb+tqndvR3nsw -vFR9Xccte5pWtOwobrqno71t8cbyOcXL9yxs3FOyf87eFV2t5XNqFi+uaqm6vaV8TlNjXd9jazvu -WP1AR/O8zpaWjhltO3ffWnv/otrsM2eKs89d27u0Y2n75lVL6hbsat5Vlb2tubGjrLdj/tItu/rv -vjS66J8nbXM2rtmwYOV98+ur1i0vK+mYef/uqr5ZVNF8YFHV3IUPPrCiPUxzWU2muHTGoqbV556i -ur13w4aqDQ/un9E8b35H2bzSd63bWTNj04be5tW3vuve1u0za+s72iu2VLVtWXlwy9xNd5ZvqG6q -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 -GK46BWKuP8g6hZgYYLjqFIi5/iDrFGJigOGqUyDm+oOsU4iJAYarToGY6w+yTiEmBhiuI9IphZ4+ -eCvrD9ojjzxyxx13jMsKIY3+QX3/n31samr6xCc+4e88Mgp0CiSXTiFudAokl04hbnQKJJdOIW50 -CiSXTiFudAokl04hbnQKJJdOIW50CiSXTiFudAokl04hbnQKJJdOIW50CiSXTiFudAokl04hbnQK -JJdOIW50CiSXTiFudAokl04hbnQKJJdOIW50CiSXTiFudAokl04hbnQKJJdOIW50CiSXTiFudAok -l04hbnQKJJdOIW50CiSXTiFudAokl04hbnQKJJdOIW50CiSXTiFudAokl04hbnQKJJdOIW50CiSX -TiFudAokl04hbnQKJJdOIW50CiSXTiFudAokl04hbnQKJJdOIW50CiSXTiFudAokl04hbnQKJJdO -IW50CiSXTiFudAokl04hbnQKJJdOIW50CiSXTiFudAokl04hbnQKJJdOIW50CiSXTiFudAokl04h -bnQKJJdOIW50CiSXTiFudAokl04hbnQKJJdOIW50CiSXTiFudAokl04hbnQKJJdOIW50CiSXTiFu -dAokl04hbnQKJJdOIW50CiSXTiFudAokl04hbnQKJJdOIW50CiSXTiFudAokl04hbnQKJJdOIW50 -CiSXTiFudAokl04hbnQKJJdOIW50CiSXTiFudAokl04hbnQKJJdOIW50CiSXTiFudAokl04hbnQK -JJdOIW50CiSXTiFudAokl04hbnQKJJdOIW50CiSXTiFudAokl04hbnQKJJdOIW50CiSXTiFudAok -l04hbnQKJJdOIW50CiSXTiFudAokl04hbnQKJJdOIW50CiSXTiFudAokl04hbnQKJJdOIW50CiSX -TiFudAokl04hbnQKJJdOIW50CiSXTiFudAokl04hbnQKJJdOIW50CiSXTiFudAokl04hbnQKJJdO -IW50CiSXTiFudAokl04hbnQKJJdOIW50CiSXTiFudAokl04hbnQKJJdOIW50CiSXTiFudAokl04h -bnQKJJdOIW50CiSXTiFudAokl04hbnQKJJdOIW50CiSXTiFudAokl04hbnQKJJdOIW50CiSXTiFu -dAokl04hbnQKJJdOIW50CiSXTiFudAokl04hbnQKJJdOIW50CiSXTiFudAokl04hbg== - - - dAokl04hbnQKJJdOIW50CiSXTiFudAokl04hbnQKJJdOIW50CiSXTiFudAokl04hbnQKJJdOIW50 -CiSXTiFudAokl04hbnQKJJdOIW50CiSXTiFudAokl04hbnQKJJdOIW50CiSXTiFudAokl04hbnQK -JJdOIW50CiSXTiFudAokl04hbnQKJJdOIW50CiSXTiFudAokl04hbnQKJJdOIW50CiSXTiFudAok -l04hbnQKJJdOIW50CiSXTiFudAokl04hbnQKJJdOIW50CiSXTiFudAokl04hbnQKJJdOIW50CiSX -TiFudAokl04hbnQKJJdOIW50CiSXTiFudAokl04hbnQKJJdOIW50CiSXTiFudAokl04hbnQKJJdO -IW50CiSXTiFudAokl04hbnQKJJdOIW50CiSXTiFudAokl04hbnQKJJdOIW50CiSXTiFudAokl04h -bnQKJJdOIW50CiSXTiFudAokl04hbnQKJJdOIW50CiSXTiFudAokl04hbnQKJJdOIW50CiSXTiFu -dAokl04hbnQKJJdOIW50CiSXTiFudAokl04hbnQKJJdOIW50CiSXTiFudAokl04hbnQKJJdOIW50 -CiSXTiFudAokl04hbobaKeEyk8mEURquhBu3bt364osvnjp1aoDnAfIkhDQK8uOPP37bbbeNyQo5 -nThxYpTTiVnz5s37m7/5G53CKBh4uF60U6ZMmRJGabgSdlW6u7uPHDlS6ImAtHviiSdKS0vHZ+kU -CmionRJ2q9/+9rdPmzYt7FyHGzs7O5977rkzQCGcPn365MmTx48f//CHP1xSUhJSGW3s6RQK5fL2 -U8KV6LDtpk2bwn3C2C70dECqPf7442VlZSGnoUEmT56sUyiUoXZK2BAKI3bChAnhxzBW161bd/jw -4UJPBKRU9FFmuPKxj31szpw5YTNv6tSp119/vU6hUIbaKVdfffW0adOi876mT5++bdu2l156KTzP -aWDU9Qf5scceKy0tnZDl8xQKaKidMm7cuDBEQ6FEH6xs2rTpa1/72k9+8pP/Dxh1P//5z19++eUQ -wD/6oz+6/fbbQ4mETolCqlMoiKF2ShifoU2uyAq33HHHHXv27NkPFMiuXbve/e53t7e3hwaZPHny -ddddFzb2dAoFFw2tM2fOvHZWuPF73/ve3r173/nOd4YGCVUS7Z5c1NixY8PWUbhD2EwKYzjcP/rH -VldRUJNzyLUcp2RFD+z/961BoaeDi5uUQ8hgWI7RqcXhx+bm5k9+8pM6hdE0yE654lImvlmuMc/o -GJ9DrsU36WyJnL8ow3ZCoaeDi5uYm06hsAbZKblEW03Rxm20Ogoromi3hQIaYJFdVPTlHtH1Qr93 -Lp9OoeAG2Sm5xvD5nRJtQV10t4VRluvYV67l2N8pE958DLPQ08HFDXC4QKdQWMP8PKX/yEkQfgxr -rYGP9zI6hvp5Sv+aapLlmAS5lq9OoeAG2Sm5xvD5W7bnr4tyrbsYHbmOcV2ya/pvsRzjLNdn9zqF -ghtkp+TaXsq1Sz6qBwL4Nbk6JddyjNZU0XULMf4c+yK2hvl5Sv9aaOLZT+fHjRsXnWBMAQ3185T+ -NdL5C9FyTBydQqHkGmPR1z786Ec/euihh0KnjMuuna6++upc20XEU1QHoSCmTp0afUXbddddF30R -aFig0Y5J/ycm0SooPOT666+P7h8d1Yz+Vg4JEhZitGEQlt306dOXLFny2GOP/exnP9Mp5FuuMXby -5Mnw25dffvmJJ544cODAli1bdu3atXv37h4SZceOHdu2bQtXwrILCzH82N3dfdttt4XKiDpl0tl/ -lxp1SqiYsAmxatWqrq6uTZs2hUdFDydxtm/fvnXr1s7OznD5h3/4h0899dQvfvELnUK+DTzGwpV/ -//d/f+GFF1588cUjR46EKz8hUX7605/++Mc/fvbZZ8MSfP7551966aWwbgllkclkQqdckT2/K/og -flL2q6JuuOGGpUuXfvzjH//ud7/7wx/+MHp4eGyhp4OhCcs6LLUQ2LDoDx8+HML7yiuvXDLvMHy5 -xtjp06dfffXVsLfS/92nv8p+A9hJEiVadmfOnPnV2eOZYSWzYcOGq6++OvRIdJzkyuxZXldmTyQO -V1auXPnVr3413Pn8VU2hp4Oh+fWNw+ijUp1CvuUaY2EEnsqK7hZGY7je/8evSYoTJ05Ea5LQEUeP -Hn09+xnZ2rVrp02bFp1xOjH7/TmTz34Bwrhx4+65556vf/3r0QDobyKSJQps2CzsX3zRBqFOId+G -OsYK8gdSuWznbwaEfgmX//Zv/9bT0zN9+vQpU6ZEH+NGuyrRKcShXO6///5vfvOb0bK23BNqpPIO -QzXAfkr021ez+n8kWaKN1WhZ/8d//Ee4PHLkyLp16/o7ZXz2b5f3H/4KPy5duvSpp54KBRRt1oZn -OJM9dEaChN2TsDlxJvsH68OiPH78eBgGjn0xCnKNsfM7xZBLtP6t1mg/5Sc/+ckDDzxwzTXXhE6Z -cPbvN/V3Srjxvvvu+5d/+ZeLPgNJccFh6v4fdQowHP11EF0Jly+//PKmTZtCp4zPfuN9JpMJnRL9 -+6Po8Nc999zzla98JWzfRg+JNm4LOQ0AxINOAWCk6BQARopOAWCk6BQARopOAWCk6BQARopOAWCk -6BQARopOAWCk6BQARopOAWCk6BQARopOAWCk6BQARopOARh9/avNt976M/obf6+f/ZtcL730Und3 -99VXX33VVVeFTrng79GHy9Ap//zP/3zq1KnoDzlFfzGwwNMwQn79b8z5G1VAPoQVb7QmOZ0V3Xjy -5MmCvqkRFmri9ezfedy8efPUqVNDj4QSiQol9Eu4MmHChNApy5Yte+qpp6I7v57dT+m/nlzn/6HD -/hujftEpwIgL2/DRmiRc9q9/wpVXc8i1LoqbC6YxXP70pz/t6emJOiX0SCiRq7LC9fHjx4fbw37K -l770peiP0ffPkEJPx3Cdyfr15Z7r/nkfcEA6ROuf199cLr/udEJE7zZMSOiI//iP/3g9u5/S3d09 -bdq00CMTJ04M+ybnH/sKt4T9lNApx44di3bTorlR6OkYrmhC+svC32cHRsFrWeff8lZa50Tt8OMf -/7irq+vaa68NuyShUMaMGRN2T0KtRHsr4celS5d+/etfL/Sbza9oDzTaOX3LLF8gPsL6tv8Ep3Al -bKUfP348XMm13XsiIcKERAfrwgSG/Y5Tp059+9vfHqBTghUrVjz11FPHssIDf5lV6OkYrqNHj4bL -sEzDtET7X2FZv/LKKzoFyIewtomuhPXMN77xjUcfffThhx9+5JFH/ncO70uI//N//s8Hsz7ykY+E -6+9///v/4A/+oLm5uf+8r+hcr+jY18SJE6+55prq6urf/u3f/uM//uP3vve94VHhSRI0vbmEaf/A -Bz7w3qxPfepTL7/88utnj4bpFGDE9R/yOnz48O/8zu9UVFS87W1vu+GGG27M4R0JESbh5ptvvumm -m8J7Djsm4bK0tDT6aD66nDJlSiaTCZehUMI+y9is6CHXXXfdrbfeOmPGjHe+852Fno7hCpMQJiRc -CZO2du3az3zmM2GHJVeh6BRgmKLVSNhwPXLkyH/9r/81rHyi82zHvUVdmUOh31e+RP+uMzotIeym -fe5zn4uObeoUIB9ydcpVb1G5OqXQ7ytfdAowmtK2nzIph0K/r3zRKcBoStt+yhU5FPp95YtOAUaT -TtEpOgUYKWk79jUxh0K/r3zRKcBoStt+yoQcCv2+8kWnAKMpbfspuTql0O8rX3QKUBAvvPDCww8/ -vGbNmqamptbW1gU5tJEoCxcuXLp0aWvWQw899NWvfvXEiRM6BciT6BuxXs9+Ifxzzz33hS984TOf -+cyTTz75+RyeJFE+/elP//3f/324/Ju/+ZtQKL/4xS9CcRw7dkynAPnwq+xfAIz+HuL5cv39lJMk -yvl/Yqx/4UZ/iE2nAPkQ1iRhJ6V/5RN+HODvG+ZaFxFng1+O+RpkQJr86uzfNAzXoy+HL/Q7YsT8 -6uxfezx9+nRYstEf6tIpQD6cPPuncqM/pBLdeCa310iUCxZ3/58S1ilAPvQf5oo+K4nWKqfP/u1d -ki4s09fOnuXVf2NYvjoFyKtQLudv1uba7h1gF4YY6l+gUY/0L2udAgAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAJHi4vY93W2dvZ2ZtYsyxS2LazaGn+/tPNjbcyCzPFO8cU7Lgd62 -7V292/fu6TzwnqLGcFNJW3VFZVtbVUPZjn09W2cVzbl/z/auvd099/Ue2L5na1FJS/fezT3tuzf3 -dHf3dK/o7N02q6i075nqaqqqqhuqy+uL5ize03vB/RZ17une1fPGPRdsj16saE7Lfa2LF9fXtPX0 -vUDfL6vn7ykpb268p6SzY97C4pIFNbNqF5VWt5c9MPtg46qK6rV3HNjc0LO+cV3tA+X7O+obb5m7 -Ze7WZZXzmg+u3ndLVceOeYeq9+1oO1jV3bR0XVvZvVt6Z3cUdza1LWnesal67ex5HW3duxvuyhT3 -3XB/y6rV82tnH5w7e+fCdfvbWloXrdl5Z0v95n1bZy9YPb9udnPr7VtalqzZvrH87ju7tla2za+r -Ku9ZUdFY0bV4/oo55YvWF5f3bK6rq5jd2zx3zrJVFR0VC1fP6ChftPHudbPnre5emimePW/7odV9 -17e1b76tq3VuR3vvwfBS9XUdt+xpWtGyo7jpno72tsUby+cUL9+zsHFPyf45e1d0tZbPqVm8uKql -6vaW8jlNjXV9j63tuGP1Ax3N8zpbWjpmtO3cfWvt/Ytqs8+cKc4+d23v0o6l7ZtXLalbsKt5V1X2 -tubGjrLejvlLt+zqv/vS6KJ/nrTN2bhmw4KV982vr1q3vKykY+b9u6v6ZlFF84FFVXMXPvjAivYw -zWU1meLSGYuaVp97iur23g0bqjY8uH9G87z5HWXzSt+1bmfNjE0beptX3/que1u3z6yt72iv2FLV -tmXlwS1zN91ZvqG6qWL/gfbb9jWXtty7at2M9k3zD+5v7b6tYsm5Jw1L//ynvX1J30V7RWlJx/w5 -y5bMrKlY2Na1qXzLtjsXVa3b1L73Tc/44K7a3pKKJdX7tret6n/GbWFut65r2NWxcnXLvkXdKzta -u9fszBSX372io7H87p3Nc8uXN/RsqFp/26qV5VtmHdpfXrutaWXVxs57bl+ws23NAw== - - - 2Zc/N6vLaytW1Vdt6F5xS/OBrsbbOtpq3lV57vWq2+/qbT/320xx9vez29tmzqrq3LWkoWPT+s07 -Zu/bu7D+vAUx74G9C1u3V89d1VK3ePOi/gVxR8emZY3L27asurst/KKhpHVb3aJ9bUuW7F/ZNwJr -zy2LvjHW99qt2/ZvbNnbtqG0ed5d6xa3lZXdvrW8pmnR3AXlddvWNu/qqZ7f3nVLbel577apYmNX -y/ZNd+3sKGmondV+Z+mW6rb2da3LZs9b0z3z7HA9NO/WhlW93Znic3l68wweyYs3puWSFzNrR+NV -cl8M5uWH/yq5L86FOZ+vMtC0NDbUDGsZDHuOXfYQGKE5domXz/tyyQ6BQi39fAyBoU/L5QyBkZxj -uV9+tJbLhaU+ikt/hIfAZc6xIQ6BEV8uF335UU1lnofAJadlRIbAcObY4IdAfpbLhS8/+uvk/A2B -wU3LcIfAsOfYoIZAHpdL7ai8ykDTkpchMIRpGcYQGJk5dqkhkO/lUtit8XwMgaFOy+UNgRGcYwMM -gVFZLoXdGh/hIXBZ0zLkITDSc+ziQ2A0l0sht8ZHbghc/hwbyhDIy3L5tSEw6qks5Nb4iAyBYc6x -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 - - - Rdfi+SvmlC9aX1zes7murmJ2b/PcOctWVXRULFw9o6N80ca7182et7p7aaZ49rzth1b3Xd/Wvvm2 -rta5He29B8NL1dd13LKnaUXLjuKmezra2xZvLJ9TvHzPwsY9Jfvn7F3R1Vo+p2bx4qqWqttbyuc0 -Ndb1Pba2447VD3Q0z+tsaemY0bZz96219y+qzT5zpjj73LW9SzuWtm9etaRuwa7mXVXZ25obO8p6 -O+Yv3bKr/+5Lo4v+edI2Z+OaDQtW3je/vmrd8rKSjpn3767qm0UVzQcWVc1d+OADK9rDNJfVZIpL -ZyxqWn3uKarbezdsqNrw4P4ZzfPmd5TNK33Xup01MzZt6G1efeu77m3dPrO2vqO9YktV25aVB7fM -3XRn+Ybqpor9B9pv29dc2nLvqnUz2jfNP7i/tfu2iiXnnjQs/fOf9vYlfRftFaUlHfPnLFsys6Zi -YVvXpvIt2+5cVLVuU/veNz3jg7tqe0sqllTv2962qv8Zt4W53bquYVfHytUt+xZ1r+xo7V6zM1Nc -fveKjsbyu3c2zy1f3tCzoWr9batWlm+ZdWh/ee22ppVVGzvvuX3BzrY1D2Rf/tysLq+tWFVftaF7 -xS3NB7oab+toq3lX5bnXq26/q7f93G8zxdnfz25vmzmrqnPXkoaOTes375i9b+/C+vMWxLwH9i5s -3V49d1VL3eLNi/oXxB0dm5Y1Lm/bsurutvCLhpLWbXWL9rUtWbJ/Zd8IrD23LPrGWN9rt27bv7Fl -b9uG0uZ5d61b3FZWdvvW8pqmRXMXlNdtW9u8q6d6fnvXLbWl573bpoqNXS3bN921s6OkoXZW+52l -W6rb2te1Lps9b033zLPD9dC8WxtW9XZnis/l6c0zeCQv3piWS17MrB2NV8l9MZiXH/6r5L44F+Z8 -vspA09LYUDOsZTDsOXbZQ2CE5tglXj7vyyU7BAq19PMxBIY+LZczBEZyjuV++dFaLheW+igu/REe -Apc5x4Y4BEZ8uVz05Uc1lXkeApeclhEZAsOZY4MfAvlZLhe+/Oivk/M3BAY3LcMdAsOeY4MaAnlc -LrWj8ioDTUtehsAQpmUYQ2Bk5tilhkC+l0tht8bzMQSGOi2XNwRGcI4NMARGZbkUdmt8hIfAZU3L -kIfASM+xiw+B0VwuhdwaH7khcPlzbChDIC/L5deGwKinspBb4yMyBIY5xwY5BPK3XGYWfHuskFvj -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 -u/7iF7/4wAc+UFZWFuojBDM0i06hUIbaKRMmTIjGbTB9+vSenp4XX3yx0BMBqRbS+sgjj5SWlkbx -DMHUKRTKUDsljNUrr7wy+hAwbA49+OCDzzzzTNhSKvR0QKo99thjYT9lclaUU51CQQy1U0KhTJ06 -NQzXSZMmhdG7adOm6Du0c/1dFSB/Xs8edg4BfPTRR2fPnt1/aFqnUCiX0SnRtlAYqGH09vT0vPzy -y4WeCEip17Jf9xouP/rRjxYXF4d49p9Co1MoiKF2Shir/R+pjB07duPGjS+++GL0JcbAKOsP8hNP -PBE6JWzsve1tb/MZPQV0Gfsp0b98DIM2XOnq6vrJT35y5uw/oTJWYTT1B+2RRx654447xmWFkIbt -veg4WKSpqekTn/jEf/7nf8op+aZTILl0CnGjUyC5dApxo1MguXQKcaNTILl0CnGjUyC5dApxo1Mg -uXQKcaNTILl0CnGjUyC5dApxo1MguXQKcaNTILl0CnGjUyC5dApxo1MguXQKcaNTILl0CnGjUyC5 -dApxo1MguXQKcaNTILl0CnGjUyC5dApxo1MguXQKcaNTILl0CnGjUyC5dApxo1MguXQKcaNTILl0 -CnGjUyC5dApxo1MguXQKcaNTILl0CnGjUyC5dApxo1MguXQKcaNTILl0CnGjUyC5dApxo1MguXQK -caNTILl0CnGjUyC5dApxo1MguXQKcaNTILl0CnGjUyC5dApxo1MguXQKcaNTILl0CnGjUyC5dApx -o1MguXQKcaNTILl0CnGjUyC5dApxo1MguXQKcaNTILl0CnGjUyC5dApxo1MguXQKcaNTILl0CnGj -UyC5dApxo1MguXQKcaNTILl0CnGjUyC5dApxo1MguXQKcaNTILl0CnGjUyC5dApxo1MguXQKcaNT -ILl0CnGjUyC5dApxo1MguXQKcaNTILl0CnGjUyC5dApxo1MguXQKcaNTILl0CnGjUyC5dApxo1Mg -uXQKcaNTILl0CnGjUyC5dApxo1MguXQKcaNTILl0CnGjUyC5dApxo1MguXQKcaNTILl0CnGjUyC5 -dApxo1MguXQKcaNTILl0CnGjUyC5dApxo1MguXQKcaNTILl0CnGjUyC5dApxo1MguXQKcaNTILl0 -CnGjUyC5dApxo1MguXQKcaNTILl0CnGjUyC5dApxo1MguXQKcaNTILl0CnGjUyC5dApxo1MguXQK -caNTILl0CnGjUyC5dApxo1MguXQKcaNTILl0CnGjUyC5dApxo1MguXQKcaNTILl0CnGjUyC5dApx -o1MguXQKcaNTILl0CnGjUyC5dApxo1MguXQKcaNTILl0CnGjUyC5dApxo1MguXQKcaNTILl0CnGj -UyC5dApxo1MguXQKcaNTILl0CnGjUyC5dApxo1MguXQKcaNTILl0CnGjUyC5dApxo1MguXQKcaNT -ILl0CnGjUyC5dApxo1MguXQKcaNTILl0CnGjUyC5dApxo1MguXQKcaNTILl0CnGjUyC5dApxo1Mg -uXQKcaNTILl0CnGjUyC5dApxo1MguXQKcaNTILl0CnGjUyC5dApxo1MguXQKcaNTILl0CnGjUyC5 -dApxo1MguXQKcaNTILl0CnGjUyC5dApxo1MguXQKcaNTILl0CnGjUyC5dApxo1MguXQKcaNTILl0 -CnGjUyC5dApxo1MguXQKcaNTILl0CnGjUyC5dApxo1MguXQKcaNTILl0CnGjUyC5dApxo1MguXQK -caNTILl0CnGjUyC5dApxo1MguXQKcaNTILl0CnGjUyC5dApxo1MguXQKcaNTILl0Cg== - - - caNTILl0CnGjUyC5dApxo1MguXQKcaNTILl0CnGjUyC5dApxo1MguXQKcaNTILl0CnGjUyC5dApx -o1MguXQKcaNTILl0CnGjUyC5dApxo1MguXQKcaNTILl0CnGjUyC5dApxo1MguXQKcaNTILl0CnGj -UyC5dApxo1MguXQKcaNTILl0CnGjUyC5dApxo1MguXQKcaNTILl0CnGjUyC5dApxo1MguXQKcaNT -ILl0CnGjUyC5dApxo1MguXQKcaNTILl0CnGjUyC5dApxo1MguXQKcaNTILl0CnGjUyC5dApxo1Mg -uXQKcaNTILl0CnGjUyC5dApxo1MguXQKcaNTILl0CnGjUyC5dApxo1MguXQKcaNTILl0CnGjUyC5 -dApxM1KdchnPD4wUnUJMDDBKR6RTzgB5o1OIm3x3CpA/OoW40SmQXDqFuBmpTjFWYfTpFOJmpDrl -NWDU6RTiZqQ65VQOJ4G80SnEzVA7ZfLkyeF6GLGhU2688caFCxf+zu/8zsc//vGPAaPu0Ucfffzx -x9/3vvdt2bJl9uzZEydOjHKqUyiUoXbKlClTpk6dGq5MmDAh3BI2isKPb3/72ycAoy5s2oW9kkwm -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 -PJwFIgBngcjAWcARPJwFIgBngcjAWcARPJwFIgBngcjAWcARPJwFIgBngcjAWcARPJwFIgBngcjA -WcARPJwFIgBngcjAWcARPJwFIgBngcjAWcARPJwFIgBngcjAWcARPJwFIgBngcjAWcARPJwFIgBn -gcjAWcARPJwFIgBngcjAWcARPJwFIgBngcjAWcARPJwFIgBngcjAWcARPJwFIgBngcjAWcARPJwF -IgBngcjAWcARPJwFIgBngcjAWcARPJwFIgBngcjAWcARPJwFIgBngcjAWcARPJwFIgBngcjAWcAR -PJwFIgBngcjAWcARPJwFIgBngcjAWcARPJwFIgBngcjAWcARPJwFIgBngcjAWcARPJwFIgBngcjA -WcARPJwFIgBngcjAWcARPJwFIgBngcjAWcARPJwFIgBngcjAWcARPJwFIgBngcjAWcARPJwFIgBn -gcjAWcARPJwFIgBngcjAWcARPJwFIgBngcjAWcARPJwFIgBngcjAWcARPJwFIgBngcjAWcARPJwF -IgBngcjAWcARPJwFIgBngcjAWcARPJwFIgBngcjAWcARPJwFIgBngcjAWcARPJwFIgBngcjAWcAR -PJwFIgBngcjAWcARPJwFIgBngcjAWcARPJwFIgBngcjAWcARPJwFIgBngcjAWcARPJwFIgBngcjA -WcARPJwFIgBngcjAWcARPJwFIgBngcjAWcARPJwFIgBngcjAWcARPJwFIgBngcjAWcARPJwFIgBn -gcjAWcARPJwFIgBngcjAWcARPJwFIgBngcjAWcARPJwFIgBngcjAWcARPJwFIgBngcjAWcARPJwF -IgBngcjAWcARPJwFIgBngcjAWcARPJwFIgBngcjAWcARPJwFIgBngcjAWcARPJwFIgBngcjAWcAR -PJwFIgBngcjAWcARPJwFIgBngcjAWcARPJwFIgBngcjAWcARPJwFIgBngcjAWcARPJwFIgBngcjA -WcARPJwFIgBngcjAWcARPCQfli1bpiXHevttHEceeWTt2rVr1Kjx17/+tbCwsCSOsL+p40fhLFC1 -8N9x6HHs27dP8pz9pb323XffPfjgg9WrV9d+lA5WrVq1mjVr6lVvO3ToIE0MIkA30wMN+zocUYBW -4IEDBz744AO0DkwAvUr+a+0lJSVpcebn5+s3dbB79+6wv6/jh+EsUOWg56UngvDPzs42XWv8+PGS -+Xp8sID24OGHH+4s4Kg4iAW0CN9//32JCwmQw+PQsZZfSkpKenr6zp07WavFxcVuDlRaOAtULehh -/U8cei7S/7UN9QQxCu69995fx5GYmIgtgHfIWcBRQdDCk006f/783/zmNyw2WKBu3bpagU2aNNF6 -08rUWpXJ4DKk0sJZoGpB+07PQvKf5/LPf/5TT1DH2msPPvgg4bnq1atrD+o5ukfIUaHQaty/f//C -hQu12MraAvXq1dPaS01NzcrK0srU8pMtIKM17O/r+GE4C1Qt6HkVFRVp62lz6bns2bMHW3vv3r13 -3XVX7dq1xQKY5EceeeQRcTgLOCoISI/ly5drsZWNDkMBeu3UqdPzzz8v6eEB4soMZ4GqBVkBKFci -glg86CZzIDs7+7bbbjvhhBMOO+wwPThtSSJ0HhdwVCi0kLS0Vq9enZCQcFgcLD/EiN5ik44dO1a6 -yoEDB8L+vo4fhrNA1YK2ElaA7GtE+vvvvz9s2DAygnABkSmEeuYs4Kg4SAPRavziiy+SkpJYfr/5 -zW+0/EQKkh46xjjV5xdccMHWrVvD/r6OH4azQNWCNt2uXbvIC5I5MHHixObNm+P/0XbTK0FhbUDZ -AjiFnAUcFYS9e/dqHe7YsePCCy8kISEjI0OSRAdaezXi0FuUk0aNGr3wwgtbtmzBO6TVW1RUFIsr -NmITQl38SMeElcO+vkMFzgKVFrrt5P/oWGKcDZKfnw8FbNq0aeDAgZL2sruTk5PRu9hxaWlpderU -0RNEQ3viiSe0rbTRSC7So7QiMofjP4EEuNaSVuOCBQs6deqEOdCiRQu9ajVqEfJJampqSkqKDkQK -V199tYiADAf9oc4g+UPxiw7ECzr2IELAcBaonNAu0HaQriW5LQGupyDdCdWruLh41qxZ7du317aS -/G/WrBmWuF4PP/xwEoR0AAVcf/31Mtj1V3rKPEpOHvb1OaIALc6CggKE9uuvv965c2fEvtYejiCt -Ri1FPqSMRW+PP/74efPmscL1igjiQJ/ADpTDhH19hwqcBSonrAoAsa8dwbE23YgRI6Ro6emw0XSQ -kJCgx2eqFweyygcPHkyqHga4HqKzgKMcgSTHItDr6tWrhw8frgUp+1TyX2KfGLFe6WrSoEEDLILM -zMxRo0bJsMULhEeIhAcd61VrVT8K+/oOFTgLVE7ohptrlJ2ibfLBBx+cddZZkvloVuICioV/FYce -mSS/dp/YoVWrVk8++SRi31ggFvcyUWsW9vU5ogCiw1pOslJxDe3Zs2fq1KnNmzdnlcpElV2QkpKi -ZSk60HJt0aIFuUP6pEuXLitXrtTytiqY/zcOPoEOHAHAWaByQvdcmlJubi4WQWFh4eOPP96yZUsC -wdL2taHYZYSD9Ql52rK4e/fuvXTpUuS/dpYO2GUYAtLZXMtylAtw43BAMTsqx8KFC3v16kWUChcl -biKs1Dpx8GGjRo2eeOKJbdu28Yc6G7Uwbq4GCWeBygk6RWgv6M4vWrToqquuoio/IyNDr9Km0tLS -LDtUx+wy/c6IESNwH4lEdu/eTSzYwsF/j8NzhBzlAtYn2ctasbt27bL0ns2bN48dO7Zx48Y4LWW3 -ErqS/NcBVcbSXvS5Prz99ttFHHiWyvZIDPv6DhU4C1ROIMllC8i+7tq1K0a0KMAeDXUBAonZ+rBD -hw5vvvmmhQ9ipf5/zHb2l15JPQr7+hxRAEXBLKe9e/fytqioCB+mXl988cXTTjuNABZljFqoLFot -4MTERBm2GAtnnHHGnDlz9LfkQmj979u3L+zrO1TgLFA5oYciTf6uu+5C4ZcGlZCQQLqFHg1qFaWa -+lBbaeTIkevXr6eVhLaP7Ag8QjQgpd1QLM4I+pFXcToqFOghpLRlZWXJPsUFlJmZCQvQ8FBLV59r -GeutPtcKHz58ON6hwsJCMQKB4+/lS3u8oNzhLBAMzNWJvkSU9p9x4KjHV69nob2jn86dO7djx46k -+mh30B0IiwAiSElJgSBOPvnkWbNmhX19Dse/sH//fppOkwuqVT1lypSjjz6aOgKUGfqcWNvDBg0a -6BMdnHfeeQsWLMAWpmWW+Yh0zOdhX1/U4CwQDPLy8mi6wp3UwhYL6AATGF4g9VoHN998syS89kv9 -+vVJ+6cEDBOAMgGs7L59+65du9b3haNSwSq/9sWhZa/VLqPg0ksvPeKII4hqYcxiCzAjj3VOEOH6 -66+3MLHUJMwKdoev9nKHs0BgsOp4cjVJiiMKRp92HUukd+nShWwfPRFtDe0R2gHxYd26dbGm09PT -p06dmp+fj3ER9sU5HP8C9V9a2Iwblgy3bOdHHnmkYcOGWsBaxqmpqdb/nIQiiR2aTsjUPfvss9es -WWNWgLiA4ndf7eUOZ4FggD+TbDoyq0nghAKQ5JMnT5ZqhJBPSEggF5R9gQlAgpAsggsvvHD+/PlY -xzqPx9EclQqUKOpVKxNVR8t+x44deIf+8pe/nH/++fiFiBFzYOXGlvZ8/PHHS9VBQdI2kUFNsCDs -64sanAUCA9OBidvqAGOZeG5BQcG1116Ls1S33QYHUwWWnJwMIzBB5sYbb9y9e7f+UJtCB64dOSob -JP/xc2rNy1zVK54cLVctWoK/Q4YMMZ0HRtDylnVg9QW0RsnMzBwxYsRHH31kHiHPIC13OAsEA2ZE -6m5rd+iGW8BLB4sXL27dujX6f1kKQB3S1mCP6Lkcd9xxc+bMIT1bShFpn8XFxZ7/76hU0IIsisNq -waheRF2x1kOvvPKKtH2SSOk1QYyA1ugSQVQT6OC8886bOXMmJyQL2lGOcBYIBrrJkt7aC3o1Cvj2 -228nTpxYtpqGcACBYMl/PQu4QOaAjIWvv/6aXcAZ8CYRPgv7+hyOf0GaCeWK+Dxl7dqyj8XT5GQL -4M9cs2ZNv379TNuhOxZSSAd6K3WIBAkxxd13352bm0uswVGOcBYIBgS2YnFjORYPE8gE6NOnj6S9 -jGKtfzpu0ZWdSJkWP3ZBixYtJk2ahAYldQhCwejWztKO844QjiqNKVOmtG3bluiAFB5SRtF/cBDR -KUUHHTp02LhxIwWV4hFtAYqXLfqM14gdQUs695f+WzgLlC+I/2L8aonScRGjuCAOlPl77723Xr16 -NpKPTAnGcxALRv/R4h8wYMDy5csJsbkW5Igq1q1b161bN2IEtWvXRuaLAoiO0XFCBJGWlpaQkHDf -ffdZfp31S8zPz9dewztKIwtS73zq/b+Fs0D5gs4qWnumjWAaa4myVpcsWXL55ZdTSqmFnZmZSSws -JSWFSJlA95VjjjlGq10ms5nSHhdzRBIEjvfu3Ttx4kR2geQPCaXklFqaHAfaLF26dNmwYUNJabNc -TGPrmnUgDivVdPw0nAXKF8XFxaw9K5wUcnJy9Lpz587p06efeeaZaP6/jkO3nRYQDIixBNHevXvP -mjXLimVi8ScV9sU5HBUCbY2S0m4n8+fPP/HEE80WoCU1+4XYcUZGho61U9LT05977jkMbVGATGzy -JXAKiRdIyXML+t/CWaB8gXJiLXbNI5SVlXX99ddjAtD/QbCOELrnSUlJsIMMgcsuu0z7whoBEQtw -xcYRVZAvjbOUFOg+ffoYEUj/RxxJWWLLMNRen+vDG264wWpwtNekfUlY0S+LyTUeNQ== - - - +7dwFih3kBRqcze0sFetWtW1a1dCvVQB2wCm3/zmN3QHZXkzHQYSsciXeT59OowjkiCJGjvaempN -nTqV1kPVSqdVViszrYCEouTkZB23b9/+008/tdQ7CTTKMGmc6HnU/xbOAuUL8/9TzCWt5uGHH5Z6 -T//PxDhIASIRjnuOOXDppZeuXLnSBP5f44jFs69pN+HdFB2RhJUVUFMm0Fn0448/7tWrl0wAWilK -ZYIFEP5sIoaaaVtNmDBh06ZN/LlMABxBsqNdd/q3cBYoX2gF7tixIzc3VwfffPNN3759qYuXDZuS -kkIKnJT/pKQk9H+bHfPQQw9RFKNbTRwBHUZrWEuadFD3CDkiCarpqSmQHiUu0IHViN133310n6On -OrpTjRo1YAdCxuwjbbfVq1dTX2x04Lvm38JZoHyBVau1N2XKlOOOO87q4q2VLpnP5EITCO7evfu7 -776L5784DqkxNJ0uKQPLgnY4DhGg+Wg7vP/++z179kTmS2VirFLZXutYCjpo3br1008/jXfI1Ced -Ye/evZTbs5WY6x329VUWOAscHOiaqHXF6C6Sk3ft2kVF8IgRI+ijLoGP5x9zoE6dOqxk3VvZAjq+ -8847SZCwxDY68YZ9fQ5H+JCBIFsABWnjxo233HJL/fr16ayLWzUxMTE5OZljaVnp6el0Yrn55pu/ -/vprvLKECWQdUGKvt3T0chvB4CxwcCDD2VIRdIsQ4zNnzrz44ovRT2QCENWSosL65EMMgQ4dOsyY -MQMKwApA+WfNh319Dkf4wLOKm5StMWvWrFNOOYV4sU3ZoO8Q+8uGcXfu3Pmtt97CmrCMO7iAc3o1 -mcFZ4OCA01Ki24oCtGKlgaSkpGh9YrHWKAUJopL/uDe1UK+88srVq1ebt4cMN/KCSHsL+/ocjvBB -yJjGdDhz9u/fv2XLlr59+6JWSWrRcY5tJdlFG14d6EfacTfeeGN2dnbJ/zmqhgxS17UMzgIHB4K/ -ZnKuWrWqW7duKCSyTJkRieefrAYtWj7RrZ48efKePXtIitPiFJVQCM8AAgZqhH19Dkf4oFMWB5JU -lAajxo8dO7ZRo0aSWkfGIalFlwkiBdLEqDLWJ+ecc86nn35qqRcFBQVWzhP29VUWOAscHBDjWk5a -XY8//njDhg3JXrNEUN09qsD+Kz5WmwXZvXv3uXPnwh02RBVHEBSgNc/0mbCvz+EIH/n5+eYmxVOq -t/qQ4K+s6R49eljdJQfaa7hhpXRpS6KDtWrVatKkSXl5edp6VlYg7Svs66sscBY4OKBXbNq0qV+/ -frp1Wng0gpaorxWHVBEsU1xDsgUeeOABuINJTGXzf4wCzGIN+/ocjvCBo5WZSpZBV1JaYkxW9h13 -3IGjtU6dOtp3tGRJSkqyWWb16tWDJgYMGLB+/fqSeBXP9u3b3RYwOAscHA4cODBt2rTjjjsuIyOD -9aYVqCUnga81SfyXOdqpqaktWrT4+OOP8U+S+UaXOXoe6v7jqLQxHO4Rcjhi8R5xbBmKKLVTSJ/T -ThE1EDuWBvXGG2907dqVPfibOKz1HL15U1JSqDXo2LHjjBkz8Ajl5OSEfX2VBc4CB4drr722WbNm -TEc68sgjExMTRQGYpbzVwoMd+vbty0xJ1rB1HMXUxTtEF0QtdWpnXEtxOH4C2kqFhYWU1eBWlVV+ -8803a8dp3xGAI0AsYKEzwgyX0ahRo0jq1k5kDhryjSL9nTt3hn19QcNZAEj2aknQh4q6RaSxzTnF -V69PPvjgA2kU3CUJfGn70kB0rLUnIqhZsyaWqdZb/fr1p0+fjmwP+/ocjujAEqq1W62L79atW6dM -mUK3FpvTRCc6rIP/j73zAKyqvNt4WKKQQAghJIQRRtiEhL1kGUKQPQRF9kaWIG4RHFi1DlALWgu2 -VJxVaj9HVcSJgAs3VWTPsFFcVzTfk/Nr3t5aQBNvcnO5/6f0eu5Jcu8573n/ezGhgMztIUOGPPro -o1gEbhqIJAsGe7Dvr7BhUgCQnKmlIAkBLX3//v048FHRJRquv/56Qr2ukwmJoIxJ1TGJajrft29f -/Jnbtm2zuQAGQwCBjwg6dSVg4OOPP+7SpYvUs4SEBBo2irPFx8czwlXkqR9xICVN/I3cIYkAHfA5 -Ithg319hw6QAwDNDzJcxqTQt11sCSWLpnTp1IggF/9d2ojRYqgVlwrQGkk26aNEi7VIanhONCvb9 -GQynFcSXXJhAVrxoFkOeoTNiXHFxcZgAtBjCWo/IHV5JUrfO9O7de8OGDT6PE4pU8RQF+d4KHSYF -gO6R4XQ0uWVwpDg520yWZuPGjcX/xee1UFIzmAvDgBhKF5mXLT3k9ddf1x/qo8j8wSII9v0ZDKcP -/ItrIFLO7Nmzh7pLvX3kkUdat25ds2ZNfEFIBOcswhwgfCAx8Ze//MXnNazI9kZ7B/v+ChsmBQAZ -O1qKrzz4crvdbtq0acyYMRUqVKAaJTo6mqJFxEH58uVlV9IaqEaNGlOnTkWU8Lfuc6SoBPv+DIbT -By7RmgEcmO2Y87QMIpX08OHDF1xwQZ06dbAFcNtiCyAC3FBL0fLEiRNFueHA6/4XJgWAG+ZFQho5 -yS+//HKbNm1cRfDPYkw648ah6tekTrjpMK4EgLiwzQUwGAIIsSM3eulrD6I12odiFJDXARkuW7as -atWqMTEx0uVQ2FDnyOjTAQaC2F3Lli3//ve/h+FUGpMCwBUCs3l27949d+5cGhgyEfgMD2d5oBCA -XSRBMGnSJAZhY04STXAVjpQDBPv+DIbTB0SH8eT7p3OQyCeKI8FPlEjvoKysLHo8ipBdDzpCBjqG -13GmYcOGl19+ebDvr7BhUgD4Zx2sWrVqwIABpPpI4ac0WDoDlqNsSS0OtQC1atVasGAB88W0RBS5 -fO+BWAAuSosLGAxBBPMFFi9enJycjHcItu/6TtD+na4vOujevftrr73mVLjjHmAOGB0CXR9Pj34v -4SYFeI6kE/gfb9y4EU5+yy234C1kqhFsXwo/y0Joic0zbNiwd955x+elK7gQQLDvz2Aw/BxY+mLX -UvC6desmPs/UP4wCkblzEOkM5J+UlLRw4ULZFGIOlHm6XBH/THJaCgf7/n4rwk0K0FQcQ9LZkgQC -Xn311ZEjR1auXLlYsWLaJ2j7eP5ZkAhvUkxCQoIOfv/7369du5Y/ZwoYJkCw789gMPwcrqe0KH3b -tm1z586l9ZBsfMQBjt+4uDiqgSB8/fSCCy4gUTwrK8s1L9KHyBZw3S1Og5ll4SYFHNMm2ZjnKHH/ -wAMP9OzZ0/UnlBQo4UESQW/1ql3BDtFarVixwo0VwKDANrSJkAZDEQRz7Wk6QfLesmXLOnXqRLBP -jI5MD/+ZsJQCiQ2effbZDz74IIkfe/bsYWyNU/xwEAX7/n4rwk0K0HVEd7R9+3Ye6JYtW2644QZx -eFqOxMfHS0/A81O2bFkmBcgE0LEOhg8f/tlnn2Fg4jOkxOy00QoMhtMPonoMf5Eq/aWFjRs3Xnjh -hYmJibQejY2NJRvcdZmg7jjCmw913XXX7d27Nzt3JohLBT89ksDDTQoQ2YH/S5Qz1Zqnr/uVDSgd -QLahGD6tqCQFKBauVq3akiVL9NzZTtQXoAxwhtSgYN+fwWD4OcjfEIXS1PHQoUOcEWO/6667GjZs -6NJH3XwQmpH694rp3bv3u+++ixopqqe4jONg399vRbhJARfu10NctGhR/fr1nRtQCr9zErq4ABgy -ZMgHH3ygRSDGxIB4FxRAHGgZT4P9YDCcfhCdbt26lejAlx5EsDoDCb/22msXXHCB9L2SJUsyHARX -sNS/SpUqETKmP2SNGjXuvPNOBAHTZvU5p0Ef+HCTAoR4Pvnkk6FDh+IVlKyH4ZMtRsKYv6vwtttu -o2+hzxs3TGmwFs0xf6QDfsJg35/BYPg5iOTSRJr+MHh1mPSa7Y2wvOmmm+Li4rACxBbcOGPxB7LE -SR0Xl+jXr99bb72FBJFkOQ2qzMJNCujB3X///U2aNKERtBQAAsFRUVH4hfSsXXZQvXr13nvvPYxH -Gg2xZ+hBLdCDlG1gIsBgCC2Q8Mk4SwmI119/fdCgQeQLkSIOc6BpGHMK9FaCoFmzZkuWLEEQbNmy -hUkHAp4Bkk+CfXN5QKhLAdiyXtHGaSdCLxHXaQrRj64+ZMgQBsEj2XXXEvp61vgDyRZjPsXEiROp -AjAYDKcl4NWun7xeV69efcstt+D8gefDKJyLWG/LlSunY/3C5MmTMQqIMxIZpGJUr3v27An2/f1a -hLoUOHTokGswy0W6BE5p7JIFMtnI8lq5cmXz5s1l7knnlzQnK0wPFNNPt1+pUiUCwTVr1nzooYcs -58dgOL1BmM8/7Qcnz5NPPlm9enWSxiMjI4kO0EOeSVL4DcRDzj///OXLlzOaChMAF7FeQ8hTFOpS -wD07BLGeJnFb3ZSkAP5AHcybNy8hIUHPkXYQxHpcLAARwJkRI0Zs376d8PFpUBVoMBhOBrFuOj1K -XSTU6/OCCOJ4W7ZsSU9PJ0tQzJBJUuL/OiMDITo6umLFihgIOpg/f/7nn3+OCbBjxw7UzhDyJIS6 -FNBDpAqYHuPIYlfDpWfx/vvvd+/e3c2hZhwYolyyQI+YGLHeSkzceeed/BUWos0IMxhOY7gcb/g/ -Xn1SgPbv36/zCxYsoHuAOL/4A/ECLAJxD1dQIG45ePBgWg9le+2I9+7dW2R55v8i1KWAJDgdO50U -0FtMAL1dtGgRlp2rAtAzpUG0+H+tWrV4xLLsJPclL3iCbAPCPcG+P4PBUFBAgUQE0FgMDZA8QAkC -cb9169adffbZLmlc3IN5UogGGg6jVTZv3vzPf/7z4cOHXbuhYN/fr0WoSwFdPOwap5xzEG3evHng -wIFi8oR9dVMu7CuJoJOuNKB27doXX3wx5eG4ByVEsOkkEYJ9fwaDoaDwbS5I/MaH4HrL02rS56ma -c+bMET+kwzyCgKxyOkzqbWxsLC1Jhw0bRmvKEOosEepSgAsT00aBz/b6Pr300kstW7ak7ZvkdaVK -lXDuMWDITRqSHM/IyFi+fDlJvwwtxSOk507BeLDvz2AwFBSgdyKJBHMRAdQH+UeNxQ1efvnl6tWr -kzJE4FgcUnomKSXMKcA7JNvh4YcfDiHuEepSgIgAyTw8LEntcuXK4fYRtycQ7C8CeI4SASNHjvz0 -00+xAV0tMLNmLC5gMBh+BmmYw4cPp8uQmD++BQKOFBQ4hlO5cuVZs2aJjUjQuDqjYx7wNbmEUp1x -o5ODdV+hIgUQzZRrwbGpAaTLN76g1atXn3vuuQwYJeBLCQC+OyICPLLk5OR7773XhQ9CSGobDIZg -gSzQ++67j2hjmTJlKDsViA6IZ8bFxTGUvGLFiq1atVq3bl12bhc7Zpq7hvbUrLnjIOalh4oUYDA0 -zJ/SDJ/nDiKOo0W+88473SAhPQi9iu0zUVScn4oPRMDgwYNXrVqF5wcpEEI5XQaDIQ== - - - WJAW6vM00rVr15JHSixAfAY/M2FiFFF4juTF/PnzSTtnJibDy/RKJyIYLAjWfYWKFIDVY1v99NNP -WkPGAGECjBgxAg7vhLIEMX3CiQJLItBC9sYbb2RGsP52z549ui+eTnDvzmAwhAQYKY5r4tprrxXD -IedcPJ+2Y2I+OqYlnVhQdHS0fqdv376EjJ0cge3TdAITI4gtaEJFCnz55Zf4f7gYLSat/JYvX56Z -mYmnjigw3jn3aHQXCGXd47PPPutMMP257Ai92nR4g8HwawAbp42kDsQ8V61a1bVrV2SBRECNGjWY -RSUuRPch+KoOGjZseN999/lynds0tBE3QwUVIwriqIJQkQLS22nZ5Aa9ffjhh3PmzOGCMQGI0Uv+ -6kHEx8cTuNePJKPHjh37xRdf8Ie0lnWyAOlsMBgMp8aGDRvgG+SR0mHgwIEDI0eOdMPKGU0insNg -ggoVKrhhtYmJiePGjdu1axesTIxXnF8MDZ+GxQV+EUQEiAJLhr7yyiuDBw8mZUtWgJMFkr+sOW3i -6Ar1l7/8hWdHApgbEEaeMMGa4N6dwWAo+hCj2LZtG93pxcl1IDaCP196flpamkSA2GalSpUoRyUp -pXLlyvirxZTEjsRs165dCy+Cm7kAcbDuK1SkAKFhQSr9vHnzkLyCdH6tM444HTAgzHUCHzFixEcf -fUQqKW43IgJMhHG5RqfH2DiDwVCgwBHh85pYUljq8nzEVcTbx4wZg0dI/JOpBPSmFi+SUiqOqjOx -sbFiX2KtxBd8XvGaOFIQc1RCRQpgBXz88cfDhw9nMen+rcuW/o9fjjXnWI/gjjvuwNsjJu86x7qm -Q64ZuM8rHg/u3RkMhtAFbe3xNt95551S/uH26KLiUXqVjkrpMfEC/ahPnz50rREXklhxM8vgUa43 -aSHkrgRLCnDvJE2hnOsr4NUETTjwbwqxaNGiRo0aMeuBBK2yHuD/FAXQA7BJkyYbN26UqHUWBNze -coEMBkPAQfcJn6fV79u377nnnjvvvPNgSrQsQyKQslKpUiUJAnxEVatWfeCBB/BLYwtQBsVMTEyM -QvBUBEsK6B5113jVnIvG9XFy6VjU2W3atEmrWrNmTVYSESDxyiInJCTEx8cTjtfyTpw4USaA/ooC -DZqO4hEKoY7fBoMhVIAhoFfYV7bXynj27NklSpQgTQVZIBvBv6a1jAdxs+HDh9PEgDoCVF8xLjIh -CyFeECwpQMK/q5hgNAC372aDSiDq4IUXXujcubNr/iaFX+upa6OJk85Tta1jmQDLli1ztWBIZwwK -FxcwGAyGwEIs68cffyTCSBM5WNDjjz+elpaGCBDzZ5oJeiypLOJduIy6d+++YsUKfNRihuSRwrt0 -XNDXHywpcNwPugA6bFDDhS2Q7fX2vPrqq0n7r1ChAkUZ/t0hdIUkCOltv379tm7dSiIQjiDahpN/ -hVAwQWAwGAIOxyFh/vv375dRQP7nhg0bxo0bJ25PNFNITEx0oQF8ROJsRJNvvfVWEtolU1xNayFU -MwVLCrhhzSjqPj+5gEXw4Ycf9unTh/xbrCeEpq4KWUDXaP2obt26ixcvFvOnByDM32WW+nLnkVG+ -Hdi7MBgMBiKPrsUZhQASBMwyE2tasGCBmL+YauXKlaW4Oo+QyyB1gYMLL7xwzZo1LpoJKyvo6w+W -FHADOomM/8yNc++99yYlJYn/Mx0Y7xkzHWQUuLlvEqPdunVbv3499V/cDh1BnSPIBYjdRCGDwWAI -IJxLn9ZAvlyGRpAXZ9Hq1aul1hIyprMEbD8hIYEUl1q1anGmQYMGCxcuJMSgj9VBQV9/sKQAvi8c -QTBqXYaMoJ07d0oawuS1OFoxXEBumoNLCm3YsOGIESP0VwcOHPB3JX311VcSBD4vIkDs3uWFBvYW -DAaDAdAUwpfrfPblslZG39KsQK/z58+npwH8DW+2OC1VBnFxcZUqVaIT0ejRo+l4VghZ+sGSAv45 -sTiCJALee++9OnXqYDRREVCxYkUcaLTyxi6IjIzUBVMRjARxQwH0abLF8P/A9r/PRWCv32AwGE6N -k3G51NRUagpc3ZMrd/IfZKZfu//+++Fv8DpxOWSNG4/u8/wq/kPT8tGJoqClgPPz8ErrNsoEnPYu -RV13d/3117uYr1g94QA69VEFhrjUT8eMGUMMxdR7g8FQZHEKj8fUqVNxConTStclLoDfm5Io5ELd -unWHDh1K60vXawJ3tywLx//duEyfJxTyep2FIAWkluvPf+Yx++qrr1zl9RtvvHHuueciCsXzCabr -ArQyTI2nKbTQqFGju+66iz4euvGsrKz8XZXBYDAUNE4W/eRVen69evUc0yPdnU5EEhCMRxF00L17 -93fffdfpzOKcR44cYdj6Nx78PzwfmaUFLQV0wdL8xfPdSC8tCG2is702rQsWLEhISNC34xBzjUDF -/BnlqcuQlaTX0aNHv/3229wsn5m/SzIYDIZCwCkyIffv3y/e+Pnnnw8ZMsR1xaTpEElE1JRJBNAV -s2bNmnfeeacYJhwV1wp5j67RRHbuBMa8XmdBSwFnuWAUHDp0SDcCJ//kk0/GjBnjQiRk0jK1U9eA -/0drIotAxzfffLNWjA/Zu3cvQiTo3Y0MBoPhZDhZVRQ8kGDlgQMHrr/+ejxCriqK3EiJA6cSoyEP -GDBg165ddFRwNgUWAVJGn1kEpQBiy+e1dHNVdeLkjz76aEpKCsERUqecK0yyQKJBt1+xYkVdTLt2 -7V588UWsKun/XEnQZ7QZDAbDqXGyDgniupQbIxrEEl955ZWuXbv6e4Gio6NdmEBMUiwR0SC2+ec/ -/9n1w3f1xbiGCBDn9ToLIUeImIjrsPHee+/NnDmTAgrXYSM+Pp7geEJCAraARIB+Z+LEidL8WcOg -dNgwGAyG/OFk3dJQ1+kjCkOThr9v376hQ4fWrVvXtcd0YQJ0Y4FyM50ZN26cOGpWVhazz/xbT+Tj -OgtaCuC84sZ1m88+++zAgQOpm+bVFc1J3kn86bVatWp6W6lSpSeeeIIeTRTlsYyu217h1FMYDAZD -/pB9ks7J/FQHJP+4tE+93n///ampqWSK0jNTB+LGJT1QNgXnrF+//meffUaGDA4WNzYrr9dZCB4h -/87bdNgT5+c2if/KFtBNcZt4w4YNG8aw5q88uLJf//xbqrPzd1UGg8FQ1EBx2YYNG8aPHy+uKH4o -xogtQPc5/3JaTt5+++0kDh0+fFgyBfaY1ykqgZICuga+0enquGs4WLdu3aBBgwhw6F6I/CII9LZC -hQoIOB1Ur15dXyqrIbtoTOExGAyGwoHjnNu2bbvppptq166Nn6Ry5cpwfhRmRhu76fYDBgxwyZNi -mIcOHcrO40TFQEkBfdH27dvdDDWxcbo66GIkrerVqxcVFUUEHFkQExPj+kKQC1SlSpW6deuuX7/e -jXJzXYCCOJfZYDAYCgewa+fxfv311y+44AIYJgPLxDBdUx0ERKVKlcSok5KS/vCHPzAQ0/Xn//XT -1QMlBUjjRBbgwzniYciQIfj5nWuLPCgEXHR0NE0zJOPGjBlz9OhRKuD0pTIuuClXKG0wGAynMbKy -sigxwDUkfPrppzfccENpD2d6QG0WO8Vzgiyg8ebYsWMdH/7SA8eSBVTsngwBtAUY7+uKGlauXNmx -Y0cEmZi8ZBZSgBnxOkNlhA5atmz517/+lXbc+hBdMINmMCV8nl8okGttMBgMRQ/ie24kIoWx2AWP -PPJIjx49YPgxMTEEC/Cri50SXaUxaVpa2hNPPIEXCP5/8OBB0lNPMacgUFKAVFjSQfWZc+fOJX4h -5o85Q300UoxhAVFRUTru27fvli1b9Ff6W+n/cH4X19DHEl8O8HIbDAZDEQOVsKjTNIhwkYI333xz -+PDh1BG7GeskESUkJDCnICJ35P2NN95IP1J9iJtWc4qp64GSAk57f+ONNzp37syluvFqFAgT4HaD -Y+rUqbNgwQLMFt047iz/Nt2u2sKqwwwGw2mPQ4cOocbjFScqKr5K5zSp2WKYFBSInUrBliLtRvHi -YNeBGKxeBw8evGrVKvIz+cBT5NgESgpw2YsXL65SpQr5PyT/0w4UcSBzoGLFisyOP/fcc99//334 -P4KAsAhxAZCdC5MCBoPhtAdJPq7Nmn9UNCsrC7tg7dq1PXv2JKke7wrHuFzEacVgMQ2Sk5Pvvfde -oquujdsJESgpsHv37mHDhiGk4uPjaXwhtk/HbJfvqgMJgquvvlrXJm3f5REd9JDt9ZcjQKDPpF8E -1QGBXW2DwWAIFcgKoEEQDpM9e/bccMMN0rf9Z9njfsEckBQgiKzzo0eP3rBhgwsZcyDdm54MfNrJ -pABx55tuugkBhIdKwHVP02w+UJ/28ssv165dm/CEoAPXE4leecSIJRQyMzMff/zxU3ioDAaDweAP -Zxe4MMGBAwdWr17drl07uu7Tk5lSAviweK9+VNxDp06d7r//fj5HDJx+dMLOnTsJH5zCFpAOf/31 -19MUmox97BSp/XR10Bmp7nPmzKHrkeQORQ0ul5VAsJR/eiKNHTtW30sgOMjLajAYDCECQq6EBgih -Mktx27ZtQ4YMqVChgngsDJ/ce72lE6lrWJ2UlDRq1CjxbfFeeL7YOLbAF198cTIpIO6tv5Ut4Eb6 -Ionw2+zfv18fuG7durPPPts1x+ZvCf7iUAL6aUpKytKlS13+/yk8VAaDwWDwx5dffsnMSvznhFDx -DglLliyhypiePLiG3JR2WQQkDomln3POOWvXrkUPZ84X3SdOJgUiIyOl2N9+++3EBehEgVtJIkB/ -uGDBAmZB6nsTEhL0y7h99LcxMTESSVyPzBNJq1WrVnHBsh3MEDAYDIY8QVyazmkIAg5oIprtzWrJ -zMwUnycu4N+oR2o5OTn8SIYD0V7CBD4v/HoyKYB759Zbbz106JB+mT5FyKMtW7akp6dT+cVcSCqa -qV/T23Llykki6NOqVKmiT6AvnL53586d+LWsI4TBYDD8SvjPbRc3JotegkBsmSZysPR58+aJ5YoV -izmLM5OiSUIOE1tc6XGfPn0+/PDDbK/RhOtB979SgFYPkhpHjhxxlWj6kyeffJKyZf2abAGKwsgC -0lfQL5rjoUOHPvbYY9l+TeEwKE6ds2QwGAwGf9CNwVXUZvuBZEvJAtqvrVy5Mi0tDS+NmD9VZoyz -L+sBJk8e6eLFi/mrk0kB2jtICvBr+qI33njjjjvu0J/XqFGDocAEowlDMCwML1CtWrUuueSS9evX -IzhcTIEb0V3s27cv2OtqMBgMoQFU6G+++cZN79XbAwcOMFOABE60el4vuugiSgZI1GdCQbFixWja -QBkvwdxJkya5ePEJ4wIyKCQF8OQ/99xzAwYMcHEH/YhIBN1NXVBYB82aNbv33nt9XlYSlQ5OeLkG -11YFZjAYDAUEMdsHHnhARgGBWhkFWAd6paWDDhAQ5cuXl1b/1ltvSZR0796dvCBxeA== - - - /QKpnvqFe+65Z/fu3ddddx2WBZk/HGNxMBdSr8Qjhg0b9sEHH+D5p811sNfDYDAYwgt0nNiwYcPQ -oUNxB9GAmkxOMWqkAH1KddyoUaNZs2YlJSVFeYDVu+KvXr16jRgxglnAFAVIfOijYmNj4+Li8DjJ -9NCZOnXqLFy4kCQivdK/jhi0wWAwGAoNrmXE0aNH77vvvvr161NZFh0dLZ5PGBeJgKdIb6tWrVqu -XDlp+G60MR0qJCbE6l1FsGQEbn80f/oXkSnat2/fDz/8UN9IXYOrC9BxsNfDYDAYwgtSwg8ePOhi -ss8///yAAQMo3aK8F9eQ+L9/YqdkBMml9KmmebWOCQFjPrgeofpbneEzZSbccMMNe/fudUlHjv8z -aybY62EwGAzhBcoBdLBnzx5XIHzzzTdLkyc6LE0+JiaGXFCxesbBUyNGmQB1x4yDx+cjGYGbSFJD -n6Pf1OfouEuXLg899BASZ8eOHYiAH374gXEA33//vXmEDAaDoZCBCGBmDfVlrspYRgE+H2n4OIjI -6sHbI0jtxxGk81L4dcYZETqvM1QcSApIjgwfPlycn0Qgxg3/+OOPR44c2bdvn7NEbGq8wWAwFDLE -hF19rmtSjZa+Zs2aCRMmJCYmiqVL1Sd3iPkvEgo6SRcI1wJabytUqOCGBRNiptzgnnvucXUEaP4/ -qwg4cOAA3UeDvR4Gg8EQXoD5f+OBggKOaeb5ww8/LFq0qFGjRmj4VJNJ58cLFBcXR+BYr26KAdEB -zuiX+/TpQz8ifRGlx5QD0HeaEQmHDh2SUaAvtanxBoPBUESA3g7HfuONN3r16oV7B58PQoHsIIoC -yA6VdIiNjSU1qGHDhjfccEOw78NgMBgM+QGuGzoRIRFuvfXWypUru/5CVBPg+SFYUK1aNTfUuGvX -ri+99JJNgTcYDIYQBXmbP/zwg5vzfvDgwdWrV8Pqxflx/kdHR1eoUCEqKgqvEdUBs2fP3rlzJ1UA -wb4Pg8FgMOQHEgEYAkwocD3ojh07Nn36dBJEXW9qphKUL1++Tp06f/7zn13817rAGQwGQ4hCmjyB -Y9o7HD9+XK979uyh2mv58uWpqamUCSQkJNAp4rzzztu8eTMhZtcaLtj3YTAYDIb8QDo/5QPi+UeO -HBFjxyhw1b7r16+fOnVq1apV4+Pj27dvv3jx4t27dzPvki6mTBkL9n0YDAaDIT/I9qbPw8zdyJhv -vvlGNoKsAzfdWNLB1XzRGk5nGElGWDnY92EwGAyG/OD48eM//vijtHoZAnv37vWv8GWQsSwF/Y5M -A8bN64x+Qcq/XvmRzlhcwGAwGAwGg8FgMBgMBoPBYDAYDAaDwWAwGAwGg8FgMBgMBoPBYDAYDAaD -wWAwGAwGg8FgMBgMBoPBYDAYDAaDwWAwGAwGg8FgMBgMBoPBYDAYDAaDwWAwGAwGg8FgMBgMBoPB -YDAYDAaDwWAwGAwGg8FgMBgMBoPBYDAYDAaDwWAwGAwGg8FgMBgMBoPBYDAYDAaDwWAwGAwGg8Fg -MBgMBoPBYDAYDAaDwWAwGAwGg8FgMBgMBoPBYDAYDAaDwWAwGAwGg8FgMBgMBoPBYDAYDAaDwWAw -GAwGg8FgMBgMBoPBYDAYDAaDwWAwGAwGg8FgMBgMBoPBYDAYDAaDwWAwGAwGg8FgMBiKIJKTu00f -lz569uio8zOjkrv0aDlS7weMvmT2+FlRfaKSRzbtMmt2+uSxsyfPmD561pVJ7XSqfnqLtGbp6c1a -pVx08fiJDZKanjd98tgZ48YPnD1r8vSJSfW7jJsxZny3aWPGjxs3fly/0bMnNUhqnPNJrVs2b94m -NbVVi6SmPabP/tnvZY6ePm7q+H//ZtfJfFlS0y4Dz+nRo03L9PE5X5DzwxadptdP7dyub/3RGR26 -J9fv2rJBq8zGLbqlXNDoknaD0lqc33DWmLbjh7cb1uqC1JkZbdrVbj+h/cTezTp0vmTwxbWbZ1zU -4dIWF1+UfknzcR17DUtPGTBhdqOM5NEd03t2vmhUi/MbdchIHzet7dlRyTknzusyaHCnVo0uad9o -SvdhM9O7nJM5ZEqTLm3GXDyxUdfBnVo36nxOvQldeg6ZPDL13CZjJzZL79S6eer4fmnt0sb26NSv -aWrm8OTU8WNat05rNLtz+6a9B6VlpHUfXDMjNXPkucMadRg8rldUcqMOky8dnHM8qduYumPPaZ/R -bfYl+qo2rTNqT+/Yr8tFyR37ZnRL7zEytWlyn+nd202vP7PpjH5jz0lt2rJHj+Zdmtfrktq0Y7vW -OX/bKqPh4AsyOncY3aVLRs30KdPqtDovs5X3yVHJ3me3mt0ro1e3MYN6tu46tfPU5t65zu0yUmZn -dOo1Yar79V68uDVJbzpyyIiu/Qd2atN8WJ+U+hm1zpvWPGeJ0jrPymzevvuFF/TrpntOaRmV3Lhm -ZsfB//mIFt1mjxjRfMSFM2t27tApI6VD46HDprSsOWrE7M6D6wwdcM7kWq3aZHRLm9A8fUL/Sya0 -H9UkdUSLjmkzZ3Wre3Hnxl0GDBpWs9uoTpfMPGdc3bSe//lQPX3/j63XM+elW1rj+hmdmvbuWatl -Wvf0saNSJ0xqktl82KhuM/7rEy+c2mp2/bSeLS6enD7IfeIkrfY5w9pOzeg/uMvFmeP6Z5wzbsiU -qOTUc/tltEs9d0rn9ql92o4f0Xx43UH9Uyc0uHRmaqtJHfs3Hzm6b72uU9KHXOB9/X+WOrVV2qA2 -zUeM61e786yx7epmpLcc2uw/39ei29mzu/3np1HJ3s8bdUuv1aD56Kk922aMGj7mokYXz+jexu9B -dLhgRvdzJrdoP6hL6x5jMt2DaJgxqne7PukTBp2brh+0rX/OpNaZF6f37Dmzf84ObPWfZ5Gzx3K+ -+5xJM0d2mZE+onHnDmcP65GeklJvYmrLjpntu6a2nnR+56njW3TqNrZ2q8Z+V9sxbeTYLpNHnT0l -o37bVg26NWk8oUV6t2Hn9G7UYci4Wrnb9dIOddoOmj0uKvk/9PTfCxzIl3/fyy++1GpVGN9y8pdf -8/W//VtO/vIfYi7IbznVvbRr2/I3PYPfvGL53gIBWrFf+PoCfy7eFgjW0y+ILZD3e8nPFgjkip38 -6wvrufxcqBfi0w/wFsjniuVxCwT8uZzw6wuVKgt4C/zivQRkC/yWFfv1W6BgnsvPv77weXLBbYFf -dy+/dQv85hX7VVugAJ9Lq0L5llPdS4FsgTzcy2/YAoFZsV/aAgX9XIKrjRfEFsjrveRvCwRwxU6x -BQrluQRXGw/wFsjXveR5CwR6xU68BQrzuQRTGw/cFsj/iuVlCxTIc/mfLVDoVBlMbTwgW+A3rtiv -3AIF91xqBV0fC6Y2/lu3QCBW7Je3QAE/l1pB18eC6x3N9xYI2IqdcgsUxnOpFXR9LLje0fxsgcCu -2Mm2QCE+l98WKPrtKxZc72get0ABPJcTbIHCpsqC3AK/5l6C6x399VugoJ7Lf2+BoPDkAtoCv/pe -ghyt/jVboECfi9sCwZPIgd8CebuXIEerf2ELFPxzydkCQdbHAroF8nEvQY5Wn3wLFNpzKYikkTzd -S6C2QH5XLMjR6hNugcKlyoLdAr/iXgKwBX7TigU5Wv3zLRAEnlxgW8CyB/O6BSx7sPCf/q/ZApY9 -WPDPxbIHLXvQsgctezBoT/+EW8CyBwvz6f/6LWDZgwX4XCx7MJhPv0C2gGUP5nULBDtabdmDlj1o -2YNB18dCIXuwXbsWM7sPb92gzjm9Zg5K6zLw0jpdGtfr12JmixnXdoxKHtk+qX6XHmnNkvpNHT12 -/Lik83v3S8rpPkDhf/1WKc1at2jRMrVBUtPcbgJdu3YZO/bSaQNmzB6d04SAX2yv/0edd+L2BE1/ -4X39aaP10VcMq5+W1KRZSmpayxbNWoxvkpqWmvTf7/TjtJS01s1TW7ca3yDn75qkprbMOdesbdsW -bdL0S6mthjXwu9LZs0ZPv2TCjFnT/n2NSfUHDu4+ssts/XjMpbPHX5JzHf/1o/+cqJ+WkuohqUlq -7pE7+PnPtHo68i7JO5/mdw1eT4W+Yy4aP3Z2b+82/dYr55ZSvf+df2WU959xUa2S6jdIOn9IVP+o -tv8+Ou/nP7o0aqZOpUc1T2ubkpbaukVSszZtUpq1aNYsaVpU89Q2KW2aN/NONdd/e3ln2rZsmZbU -PLVZSvNWaW1yzukvmzXX4uWca9a6Wdt/n/vvT+sVlRk1JKqP36XMLLTvTMu5v9S2ev5prZO8L2ij -TznhdzVrm9I854c5p9JaprX997mWrZq19P6ydWrzNO+afv5pud91qfcg0nIfhNdzI2Py1PHtOOw6 -fuLk6f9uwKFl0O90j2qaPv6yyWPHD+jeNen8PlEX5myNFqlp/94PzVsm+f0357y3HmnceotmqS2S -hic1a9kmqXnLZjkfNylfH5BztbkfkvtfvSbl3ksL/U+/E5Wc7N1ADk23S9K6t2iZFnV+jzLBbnNy -GuKHH35YtWpVyZIlS5cufdZZZ5UoUUIHZ5xxhl7LlSv33Xff8Ts//vhjPj78m2++0esDDzyQlJQU -ERGhD4yOjj7zzDOjoqKKFy+uM3xL2bJlS5UqxVfXrFnzhhtuOHjwYHZ29uHDh48cOZLt4dixY0eP -Hv3pp590fPz48a+//vrbb78N8FoYwhUFSgVfffXV9u3btW/37t3bv39/bfsyZcpERkbqi4oVK6Yv -LV++vM5EeKhQoYJ+pIO4uLixY8e++uqr7P9Dhw7pAr7xoM/U5hc56Fg/CvBaGMIVBUoF+/fvh3WL -t+vtvffeGx8fD9uXRNC3aM9LKIgQ9FbHJTzoQG8zMjKWLFmyY8cOiAiK0P7/8ssvOZakCPBaGMIV -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 - - - Sh2xWPibb77Z4tGlSxcy+uIWdqkkXGaJWrVqXXXVVdu3b3eLoCXjlI+X9iLy+/fv9/u8DcMw/IfC -bTJQXSE2twyNpWpkJ8N7IKtYijpx4kQcwmT6PfPMM6k9J/lt1aqVTGU8GHh9+RxifVFyvsjv8zYM -wyh9YC3/8Y9/bN++PS6IypUrk2Nn8uTJGzZskNi6kka2ls0wDKMYodB8gZfpfcKECQ0aNKhWrVrT -pk0ffvjhtWvX8iOJsAxgy2lmGIZRvFC4rWghJHwOkcLldRjJZNfB/WsYhmEUC9+zcqlJRCbJb775 -5qAH5eRwHft9vIZhGMFhx44dLnwi4uXPwdsgTf7KA+sXA9hWXhiGYRQjrKFzaXwks241h4Nka+Re -8/t4DcMwggOrM1xKyby8vIMHD+L7xeilGCjya7UtDMMwihGWuWHi4ulFfr/++mtXfcOtrSMPvGEY -hmEYhmEYhmEYhmEYhmEYhmEYhmEYhmEYhmEYhmEYhmEYhmEYhmEYhmEYhmEYhmEYhmEYhmEYhmEY -hmEYhmEYhmEYhmEYhmEYhmEYhmEYhmEYhmEYhmEYhmEYhmEYhmEYhmEYhmEYhmEYhmEYhmEYhmEY -hmEYhmEYhmEYhmEYhmEYhmEYhmEYhmEYhmEYhmEYhmEYhmEYhmEYhmEYhmEYhmEYhmEYhmEYhmEY -pZrY2F5TxvQcNWNU1KV9omKT+yaO1PtBo66cMXZ61AVRsSNbJU+f0TMzfUbm1Cmjpl8T00m7mvZs -m9C6Z8/W8XETrhib0Sym1cVTMtOnjhk7eMb0zCkZMU2Tx0wdPbbX5NFjx4wZO2bgqBnjm8W0OPJJ -7dvHJ7Tt2KF965hWfafM+N7v9Rk1Zcyksf/6ze6ZfFlMq+TBPfr27ZDYc+yRLzjyw7bnTWkan9Tp -wqajUrr0jm3aPbFZuz4t2vaKu6z5lZ2GJLS99NzpozuOHdFpeLvL4qeldOh0TudxnTPOb90l6cqh -V5zTJmVCl5ltr5jQ88o2Y7oNGN4zbtC4Gc1TYkd169k/aUJa20ubd0npOWZyx65RsUd2XJw8ZOh5 -7Zpf2bn5xN7Dp/VM7tHnkoktkzuMviKjefeh57VvntSjybjk/pdkjozv1zI9o3XP89q3iR87MKFT -Qnrf8wa2iu8zIjZ+7Oj27ROaz0jq3Or8IQkpCb2HNkiJ7zOy3/DmXYaOGRAV27xL5syhR7bH9xrd -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 -CDowSOCj/6P804pBZgJhAkYY8AsLFixAtmdkZJA1JDo46KCDeHY6Q9sHJgLrrTR/yRA9R5L/qUej -Lyg2wpAhQxgQXL60mf9uVQD+6MOEs4AjfDgLVCPoQWzZsmXMmDEk+aSmplpQwJJIUfWTkpKYAoDV -gMzXgcwBTIDu3bu/9NJLxcXF35sI44gWzgKO8OEsUI2ARVBYWDhz5swuXbqYz18afs0A5Pzo8dGM -lLoARh7r4eIR0vGtt9769ttvUw5saj9t4hzRwlnAET6cBaoXkNj79u3TUxs+fDi5Q1CAjvX4kgLQ -hsJ6k2ZkZDBBuEWLFvfee++mTZvI/5EJYKONedaOaOEs4AgfzgLVCDSj27VrF+mgRUVFkyZNOvro -o62OLDk5WZKfGQE4gqwfqZ5p796933zzTRJBJf9lWfwlAPMrvVNEVYCzgCN8OAtUI1hmqQ2akSa/ -ePHiU089laJgisiwAvRq3aobNmx4yy23bNiwgeCvEQG5QPpkxoRFfX0OZwFHBHAWqEb429/+Zu2G -9uzZs3fvXsT4qlWr7r77bqn96P/4hQ466CD8Rccff/zrr78Oa1CtzCAAPELWEVqEEvX1OZwFHBHA -WaAaAVmNO0hPRDJ83759dAoqLi5u166dniNBAT1KAsF169adOnUqo+EhAtoWMSlex/qEfwTwrnFV -Ac4CjvDhLFCNoKdQPpPfxk1u3bpVPxILSOxnZ2fr2VFEUKtWLT3K0aNH40fatWsXxQg6Lm8FUCzs -NcJVAc4CjvDhLBAD6AHpSUlQSGgQF7bZBHo7YcIEatD2byqZI0w4CzjCh7NADOAsEBs4CzjCh7NA -DOAsEBs4CzjCh7NADOAsEBs4CzjCh7NADOAsEBs4CzjCh7NADOAsEBs4CzjCh7NADOAsEBs4CzjC -h7NADOAsEBs4CzjCh7NADOAsEBs4CzjCh7NADOAsEBs4CzjCh7NADOAsEBs4CzjCh7NADOAsEBs4 -CzjCh7NADOAsEBs4CzjCh7NADOAsEBs4CzjCh7NADOAsEBs4CzjCh7NADOAsEBs4CzjCh7NADOAs -EBs4CzjCh7NADOAsEBs4CzjCh7NADOAsEBs4CzjCh7NADOAsEBs4CzjCh7NADOAsEBs4CzjCh7NA -DOAsEBs4CzjCh7NADOAsEBs4CzjCh7NADOAsEBs4CzjCh7NADOAsEBs4CzjCh7NADOAsEBs4CzjC -h7NADOAsEBs4CzjCh7NADOAsEBs4CzjCh7NADOAsEBs4CzjCh7NADOAsEBs4CzjCh7NADOAsEBs4 -CzjCh7NADOAsEBs4CzjCh7NADOAsEBs4CzjCh7NADOAsEBs4CzjCh7NADOAsEBs4CzjCh7NADOAs -EBs4CzjCh7NADOAsEBs4CzjCh7NADOAsEBs4CzjCh7NADOAsEBs4CzjCh7NADOAsEBs4CzjCh7NA -DOAsEBs4CzjCh7NADOAsEBs4CzjCh7NADOAsEBs4CzjCh7NADOAsEBs4CzjCh7NADOAsEBs4CzjC -h7NADOAsEBs4CzjCh7NADOAsEBs4CzjCh7NADOAsEBs4CzjCh7NADOAsEBs4CzjCh7NADOAsEBs4 -CzjCh7NADOAsEBs4CzjCh7NADOAsEBs4CzjCh7NADOAsEBs4CzjCh7NADOAsEBs4CzjCh7NADOAs -EBs4CzjCh7NADOAsEBs4CzjCh7NADOAsEBs4CzjCh7NADOAsEBs4CzjCh7NADOAsEBs4CzjCh7NA -DOAsEBs4CzjCh7NADOAsEBs4CzjCh7NADOAsEBs4CzjCh7NADOAsEBs4CzjCh7NADOAsEBs4CzjC -h7NADOAsEBs4CzjCh7NADOAsEBs4CzjCh7NADOAsEBs4CzjCh7NADOAsEBs4CzjCh7NADOAsEBs4 -CzjCh7NADOAsEBs4CzjCh7NADOAsEBs4CzjCh7NADOAsEBs4CzjCh7NADOAsEBs4CzjCh7NADOAs -EBs4CzjCh7NADOAsEBs4CzjCh7NADOAsEBs4CzjCh7NADOAsEBs4CzjCh7NADOAsEBs4CzjCh7NA -DOAsEBs4CzjCh7NADOAsEBs4CzjCh7NADOAsEBs4CzjCh7NADOAsEBs4CzjCh7NADOAsEBs4CzjC -h7NADOAsEBs4CzjCh7NADOAsEBs4CzjCh7NADOAsEBs4CzjCh7NADOAsEBs4CzjCh7NADOAsEBs4 -CzjCh7NADOAsEBs4CzjCh7NADOAsEBs4CzjCh7NADOAsEBs4CzjCh7NADOAsEBs4CzjCh7NADOAs -EBs4CzjCh7NADOAsEBs4CzjCh7NADOAsEBs4CzjCh7NADOAsEBs4CzjCh+TD+++/ryXHevuPAIcf -fnhKSkrNmjW/+eab4uLi0gBRf1PHj8JZoHrh/w2gx7F3717Jc/aX9tp333139913H3HEEdqP0sFq -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 -zZs3E2K21nChvg8HBwcHh7xAOj/lA9rzDx06pI0do8CqfdetWzdlypRq1arFxcW1bdv2jjvu2LVr -F/Mu6WLKlLFQ34eDg4ODQ17g96bPs5nbyJgffvhBNoKsA5tuLOlgNV+0htMZRpIRVg71fTg4ODg4 -5AVHjx795ZdfpNXLENizZ0/2Cl8GGctS0GdkGjBuXmf0ASn/euVPOuPiAg4ODg4ODg4ODg4ODg4O -Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4O -Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4O -Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4O -Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4O -Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4O -DoUQiYldp41JGzlrZMx5GTGJnbo3H673/UZeNGvszJheMYnDm3SaOStt4uhZE6dPGznz0oQ2OtUg -rVlKalpaakrSpAvHjm+Y0OTcaRNHTx8ztv+smROnjU9o0GnM9FFju04dNXbMmLFj+oycNaFhQuOs -b2rZvGmz1KatW7RKaNJ92qxffS5j5LQxU8b+55OdJ/JjCU069e/SvXur5mljs34g64/NOkxrkNyx -Te8GI9PbdUts0Ll5wxYZjZt1TTq/0UVtBqQ0O++MmaNajx3WZmiL85NnpLdqU6ftuLbjz0lt1/Gi -gRfWaZo+qd3FzS6clHZR0zHtew5NS+o3blaj9MSR7dN6dJw0otl5jdqlp42Z2vqsmMSsE+d2GjCw -Q4tGF7VtNLnb0BlpnbpkDJp8ZqdWoy4c36jzwA4tG3XsUn9cpx6DJg5PPvvM0eNT0zq0bJo8tk9K -m5TR3Tv0aZKcMSwxeeyoli1TGs3q2LbJOQNS0lO6DayVnpwx/OyhjdoNHNMzJrFRu4kXD8w6ntB1 -VL3RXdqmd511kX6qVcv0OtPa9+k0KbF97/Suad2HJzdJ7DWtW5tpDWY0md5ndJfkJs27d2/aqWn9 -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 -0lk0sQ5I2ojMb3PRMr+dWzSx6PSiE4piVZEFjfjWuiVU7nIJrhXAyyknzbWRf6NGLXPR9DtGUY3G -0jDU4MmeQ0b700fMm1/eHx+Hlp867/QTZ561qHxhEXUXPTOyqN+w8rPnzS4/ceTQ4klji07hTZjL -K5KMImepsWQXHCLHCtdWcr1MLfZIxvu0alMpc3fnd/xA8tvkvyTgipOa05rPzxT17CnVHTZz0cz+ -xZHD3hlFk0YfUG1gYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBg -YGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBg -YGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYLDP4MuvQL7rZWBgYNBU0HTkZNOpiYGBgUHT -RNORk7tbk6963sDAwGBfQ2PK6n8vges+8y8DAwODfRLNSGJDVv9T8H8GBgYG+x6al8SGrK6qqvrH -P/5RZWBgYLCPoRlJbCjYVSKu//73v//DwMDAYB9D85LYpGD/Q8T1F1988XcDAwODfQxNX2ID2Rbs -fO9LDAwMDPYusmUdfaCvEMtGYhsYGBg0NRiJbWBgYNBcYCS2gYGBQXOBkdgGBgYGzQVGYhsYGBg0 -FxiJbWBgYNBcYCS2gYGBQXOBkdgGBgYGzQVGYhsYGBg0FxiJbWBgYNBcYCS2gYGBQXOBkdgGBgYG -zQVGYhsYGBg0FxiJbWBgYNBcYCS2gYGBQXOBkdgGBoWEf/zjH2Ccv8sFH7izlYjbtm0jCv5ERHqS -/vrXv/6V/vS3v/2NPtBfUQJ+mNdGGHwljMQ2MCgkgGuIHUgO07/4+g+5/xQ8AkGNW0voT1VyRSAe -Iz7CFVR5boPBV8NIbAODAgP4oipLFJP0rhbVGjdMQSwT1+BP+rEqUbCrRCzkuQ0GXwEjsQ0MCgmk -PxNTaPELvti5c+f69es//PDD999/f926dSSl6U9E3LZtG/2rf0ifIcnz2QCDfwsjsQ0MCgkQ15DY -JH5JCK9Zs+aVV165+eabL7/88osuuuimm2566qmnVq9evX37dqjZ1WJF2bFjBz0Mhvr888/z3Q6D -3DAS28CgkEDKs5bD9PWDDz5YsmTJGWecMXTo0JKSkq5du4ZheOqpp5IAf/PNN7Whu1ps3Ti1JJ4i -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 -qmMObUBGX/CS8LsG2jO9czRvGB4US1BQ0LRp0xo0aIAlJKfJOxpY6xLGzM13uv5g/B06dJg3b96F -CxdgzOl3rOaKki7BS5cuffLJJyy/JowtUMgsxjZpdm6y+PpglnFxcVg5Qldw5chEXXwm6yrQzpkL -z9g/nMGPDRo0aOPGjdevX6ejD8tG1XjaetwZT5J1t0mQk0BLpr2ZtH1AWmBMTMz27dshrWGo4FL6 -K1TegXI40/Xn4uJStmxZf39/qPGbN29Cn9NohbEF/wsyhbFVp0iTxtip2kKPcarQyYGBgXPnzm3R -ooWrqys+TX0y67jSuQ2DZFZ7oUKF8JNTp04NDg6GJgFj08IZN2KyxP6ZLO1NBYJMBxUIA/nMWqx1 -RETE1atXFy5c+NFHH4GioTFgvdTVrFfJMzimuvby8qpdu/asWbMOHz4M6aJkBkV7Wn9XGFugi0xh -bJNVOjnHyKTFqarW6swFg94oWbIk/XssqY3PVwkFzs7OTAfDYrNq1aqjRo3at2/fvXv3GEPFJapJ -0z9cn5qlBqDg5SBV8348evTIpLF3VFQUrHfYsGEwS1Aoe+pRWr+hQbmvOWV8fHx69OixZMkS8Cqr -wbMgA5Nu0lEawtgCXWQiY1P6cjOFtvfbb78x4wb/hRXl0aNHx40b5+fnhz/BzjVMZud2JJMl+RYo -Xrx4586dV6xYcevWLTA2d3zI0vhYVYtYIHgZYJ878C3Mb82aNV27doXYgK6g2MidOze9H5gg3EOn -1xoHtWrVGjFixLFjx7hCVJ/GKWayBJz8JYSxBbrIFMZWA6GKOHF0SKpQ2mp//OLFi7D/du3aFSlS -RDX8ZdVWEjWzDxhPAnNt3LjxmDFjrl27Fh0dzSUqJTdTGLLoHglyGMhCsLHTp09DY7z//vsuLi6q -LTWZk3norFTJvh6FCxdu27bt/PnzYeTcPedWI2aWaueRqlUOSevvCmMLdJEpjG09IgoqC0Y1KjVr -KZMhISE7d+4cNWoU1AgMEmKbW5CYFLR8UjdTeqFqSpQo8fnnny9dujQoKAgLVYofpoll5Y0S5BzA -xmDtmzZt+vTTT8uWLcsiOcz5oq6GWZI/mTWDt2B1mPT27dvv3r1LDyEWlXTfUWOQvTkL0vq7wtgC -XWQKY1uPC8+QpbEAVJ3vGMjN/RecAW8vWbLEz8/P3d2dmzUU24wbgX3CMllRh2W6IbahXi5fvsza -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 -pwRBEARTRnRKEARBMGVEpwRBEARTRnRKEARBMGVEpwRBEARTRnRKEARBMGVEpwRBEARTRnRKEARB -MGVEpwRBEARTRnRKEARBMGVEpwRBEARTRnRKEARBMGVEpwRBEARTRnRKEARBMGVEpwRBEARTRnRK -EARBMGVEpwRBEARTRnRKEARBMGVEpwRBEARTRnRKEARBMGVEpwRBEARTRnRKEARBMGVEpwSh+JKd -nQ2zxca///1vGC8NhHtgJn/88QdeYSnYc+fOHXyY5oMP5+Tk4DP8PP5k5MsQhAIRnRKE4gusgEYB -6fn555/xFtqEV0gPDZn7dZql4xX78QF8HtvYD5Onihn5MgShQESnBKH48ssvv/yu8asGNAim8YtG -ZmbmlStXzp8/f/XqVXhPNBlsKDuisdPnMvZ1CEJBiE4JQvEFPhEk6Y4GzRZWfOvWrZMnT65evfrl -l1+eMWPG4sWLt23bduHCBXyYfhZ1DV+nrtHhEgSTRXRKEIovNAQ1OAUTPnv27NatWydPntysWbOK -Gn5+fp07d164cOHhw4evX7/OkSn2B+IVypWRkWHs6xCEghCdEoTiC7SG4016bYjqyJEj8+bN69Wr -l5eXV7ly5Z566qmSJUuWKFGibNmy4eHhY8eO3bFjx8WLF/kVjkzBlPDW2NchCAUhOiUIxZesrCxu -JCcnb9q0acqUKY0aNbK1tS2tYWdn5+LiUr58eQhWmTJlqlWrFh8fv3jx4qNHj+KLFCnalHGvQhAK -RnRKEIovcIVgtqdOnVq6dCncqLp160KboEpwpuBDlSpV6plnnsEr3kKtIFXYjoyMfPXVV3fu3Hnl -yhV2/d2+fdvY1yEIBSE6JQimBoP3dFrYOYo6CrzyfRhzDm8oJycHn4HQ7N2796WXXoqKioJCWVtb -U6fgTFGqoFNPaWDbwcEBO6FWHh4e/fr1++yzz86ePQuRYmSFTqsNIHy//PJLamoqJ1v99gCMfYcE -y0J0ShBMB0ZE3NPABt5CNfCqzzfjiVYAqUpKSvrggw+GDh3q6+sLGYIYQZVsbGwgUiVLlsR2iRIl -4EbZ2triFZ4U3laoUKG8hru7e2xs7PTp07/77jscVq8pIH5I2f4fGqJTgikgOiUIpgN8JdggSziz -RgDoCHYy/pwTe/EnuFELFizo0KGDp6dnKQ1IFQQIOgWvytHREXuefvppOFAcrsK2lZUVtuFPYQOi -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 -Z2dnJVJcpVLeE35HfcLVqxYtWkycODElJSUvL8+seU8URJah55qUmu7Dh/huolNCKSM6JQiOg1kT -JtZvMluqb6hKHNymZNY0KyMj48CBA6NHj27WrBmL7XLtialrVYAEZwK5N4qV4rkaBcGqWbNm9+7d -ly1bdvbsWbhpVCWoFWtRUStVeWIloCxQYu/7JBgL0SlBcBy4Ecm60iK75N27d9kxoVn4HbXZ9uLF -ix988EGXLl3q1Knj5uYG36p8+fIsZUjNYsy5yr/EeT8IVlBQ0LBhwzZv3swMgTi/2VJ3WG3jwjdR -teP5icq1bu/7JBgL0SlBKLtAOLKzs/fu3ZuYmBgYGAiniUERDOcrp8H1KQqWu7t7lSpVWrduPWvW -rFOnTnFGUertCg6O6JQglGmYaz0lJWXOnDlwrHx8fLjzl8CBYoz6Cy+84OzsDDfqlVde2bBhw4UL -FxjOhy6fn59v74sQBFuITglC2eWvf/0r91jh9eeff96+fXt8fHytWrUYzsfCHHSmoF9hYWFTpkzZ -t2+fWuRSVajsfR2CYAvRKUEou/ztb3/j9lt2jdzc3N27d8+aNSsiIsLb25sRFE5OTg== - - - gYGB/fr1W7BgwcWLF5UbVVRUxOpXst4kODiiU4JQdmF3gFd19+5dxj9kZ2efPXt26dKlw4YNi4yM -bNSoUVxcXFJS0o4dO/AjFaHBsD311t7XIQi2EJ0ShLILdzbh1XrLFWQrKyvr6NGjmzSSk5P/+7// -u6CgwKy5UXTBGMinionY+zoEwRaiU4JQdmEFEEqVKrPL3gE9un//vhIvJWfcD4XOjl+wLnQoCA6L -6JQglGnMli3ATAaIXqwKGqo+Qm0CzC4LijV4jF+27yUIgm1EpwRBEARHRnRKEARBcGREpwRBEARH -RnRKEARBcGREpwRBEARHRnRKEARBcGREpwRBEARHRnRKEARBcGREpwRBEARHRnRKEARBcGREpwRB -EARHRnRKEARBcGREpwRBEARHRnRKEARBcGREpwRBEARHRnRKEARBcGREpwRBEARHRnRKEARBcGRE -pwRBEARHRnRKEARBcGREpwRBEARHRnRKEARBcGREpwRBEARHRnRKEARBcGREpwRBEARHRnRKEARB -cGREpwRBEARHRnRKEARBcGREpwRBEARHRnRKEARBcGREpwRBEARHRnRKEARBcGREpwRBEARHRnRK -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 -A91qRTQfGu8d/sKIWuH16rT2G+o3+JVQO5duDRxdw2O9fRxbD0js2SvJsUOL1o7Z3QdY+O/q5eGl -wM3R09JNoEmT8J49Rwx8fnBKYnYTAn6wAf6za3vv9gSeVn52HZiIU4/u4urt6IV/vB39PPy8/H18 -fHvV9/Lyd6zv7eEX7OvnFaj82MVNdSkpwxIHDU8ePGzg3xfh6PpCu6bdwlPw6x4jUnoNz/6if/zq -7huu3n/fmaPX/xzk+JWfn2P97CM3RSBe3v6qK1BaJrTq0a9Xz5QWyl2oxJF9K17KPx3G2Cn/S7IL -cHR1c+zQ3q6NXfDfR21z/mqE3VA7X+8AD38/32DH+r6BHgHe/j6OA/Gen0eQn2/Q3feaq9/z9ggM -9PdT3hN/e6/3xN/G2LW3a4lvy75Mb8tlKg0novsO6BXCwya9evcd9Hf3CVwePtPUzjOy18i+PXs9 -37SJY4eWdp2zpeQd7Ovty5v18PLx9wvwd8y+tEAvKFb2ZQQE+/k6dnX09vJx9MHV4jR9NP2hohd/ -/7Hl/0GOvo6Wa/fDP/iMnYuLcsHZChziGOgT5Ott1yH2GaNbekhISEhISEhISEhISEhISEhISBRn -/KURRl+v8ZAS0wopMa2QEtMKKTGtkBLTCikxrZASyzcokP/+9793FGiVpK1htHjuAV6YlFjewQsT -EvuvQSi6EjMKUmIPj8RuG4SiKzGTQZASK34Sy+0KjZLYH3/88eeff+IAM5SPTqMllBNSYlohJaYV -UmJaISWmFVJiWiElphVSYlohJaYVUmJaISWmFVJiWiElphVSYlohJaYVUmJaISWmFVJiWiElphVS -YlohJaYVUmJaISWmFVJiWiElphVSYlohJaYVUmJaISWmFVJiWiElphVSYlohJaYVUmJaISWmFVJi -WiElphVSYlohJaYVUmJaISWmFVJiWiElphVSYlohJaYVUmJaISWmFVJiWiElphVSYlohJaYVUmJa -ISWmFVJiWiElphVSYlohJaYVUmJaISWmFVJiWiElphVSYlohJaYVUmJaISWmFVJiWiElphVSYloh -JaYVUmJaISWmFVJiWiElphVSYlohJaYVUmJaISWmFVJiWiElphVSYlohJaYVUmJaISWmFVJiWiEl -phVSYlohJaYVUmJaISWmFVJiWiElphVSYlohJaYVUmJaISWmFVJiWiElphVSYlohJaYVUmJaISWm -FVJiWiElphVSYlohJaYVUmJaISWmFVJiWiElphVSYlohJaYVUmJaISWmFVJiWiElphVSYlohJaYV -UmJaISWmFVJiWiElphVSYlohJaYVUmJaISWmFVJiWiElphVSYlohJaYVUmJaISWmFVJiWiElphVS -YlohJaYVUmJaISWmFVJiWiElphVSYlohJaYVUmJaISWmFVJiWiElphVSYlohJaYVUmJaISWmFVJi -WiElphVSYlohJaYVUmJaISWmFVJiWiElphVSYlohJaYVUmJaISWmFVJiWiElphVSYlohJaYVUmJa -ISWmFVJiWqFVYncKBJRVIRSXOXeJ/ZkLbtsYRVdif+SC3CSpF4qfxGyNoiux3HRASiw3ieXG/HJW -5iax3J5ikvlzk5hWSeqL4iQxo2C0nO7CaEnkFUbL6S6MlkReYbSc7sJoSeQVRsvpLoyWRF5htJzu -wmhJ5BVGy+kujJZEXmG0nO7CaEnkFUbLSUJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQqI4wMUlalBS -ZGJKol2HGDuX8Fj/bvj5+cThKb2G2bW0c+nmGT4sJbJvz5S+gwclDhvjGIK3XCP9vH0iI32iPfoN -6dXbzdGz7aC+PQcn9XohZVjfQb0dXcOTBvfoFTWwR6+kpF5JrRNT+rg51ss+U6C/b4CPd2CAl6Nn -7KCUHJ+LSRyUNKDX359s0pdf5ugZ/kJEbGyQf2Sv7C/I/qVf40GuXmEhrVwToxs2dXFt4u8WEFPP -L8qjY93hIfHefh3ch/UI7tU1pEtAR6+h0UEhNRskN+jdwqdh2PB2Q2r6RvdrOMJvSL/I4b5Joc27 -RHo8n5xSN9olMTQyLqxfd78OdRtGRyYNDG5k55L9Rtvw+HaNA+oOb1C3f9MuQyPDI2La968fHtRj -SO+6Tdo1DqwbFlEnOTyufd9uXs3q9+ztE9k40NerV2vvEO+esY1be3rFdHXx6tUjMNC7bkpYA88W -8d7R3k3bOUV7xXRr1qVuw3ZJze1c6jbsO6Jd9nGfqB61e0Y0iI5KGY6vCgqMrjkotHV4P5fQVtFR -kbHdvDxdWg5qGjLIdajn4NY9I7w8/WNjfcN964R7eYaGBGb/bUC0e7uO0WENE8PDo50i+w+sFdA2 -JkA5s52Lcu6AlObRzaN6xMcFNhkQNsBXeS8sJNojJbpx8+QB4uPN+SJkEunZrX1Ckw== - - - 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 -za1dbWV48uTJnTt3FhUVSUBGRUWJcchIcnJyfHy8BGGSgdiHikwZl6/kN6kAEDGSOkBSTxKw/Ue7 -3d6vXz/JzdjY2MWLF//pT39q30Mey4AeofOWkZaWJlNkPMYgthVzj7UArE1HrQn5Kt5ARiQfo6Oj -Zah+j2VA5Oi8ZahQlMhUE+X4R4YyMQYAIkZ8B0gmylDaF5KDMq7OIcvvsQyIKJ23jHBYSkCqtrCa -0lFIA0D36chKJA0lN/v162e32xMTE1X7Qh3FYRkQOTpvGfJRIlPGZShNjLS0NAlXGUkEgIjRkZWI -L8i3KQbqIqOMcC0DIk3nLUNdiZMp0QaqrSETUwAgYvTrAHU5I9ziUMdyiUbvFCwDIkfnLUNNGTZs -2JVXXinDQYMGDRgwYODAgWanFICV6cgyhgwZYrfbxR0kMWUYvtqIZUBE6bxl2Gy2q666asaMGdXV -1V/+8pdvvvnmLxncDAARY0cHjB079vLLL5f0lCSV9r7YhxrHMiCiqEcKqKcOHj9+/LHHHsvPz5fA -k6iTIxnV2pWPMhQTkcbFLbfcsn///k8++eSjjz76BAAijCTaPoMPP/zwA4P3DeRoTfIxJiYmNTVV -clPdKkUrAyJN5y1jwIABmZmZ3//+99UfSrBJHMqfdxSKANB9mgwk0dQrCerr69WDprEMMIXOW4a0 -fDMyMu644472f07IAfQm4V09lgGm0HnLkOE111zzD//wDyr8mlvf3Ne9d4sBwMUItzJUQ6PegFYG -mEXnLSMlJWXkyJH/+I//2P6F4ADQm6ijNQHLAFPo0ompUaNGSStDftz+ocoA0DuonTyWASbSecsQ -HA7Ht771LfmxaiaHW80AECHOOT0VvgiOZYApdOnEVHp6+ve+9732f05bA8AUsAwwhQtahnrYoLot -SEWjfExOTh41atS3v/3tltY3tpi86gBfADra1W/fvn348OHR0dHhgzr12BAsAyIKlgGgM1gGaAWW -AaAzWAZoBZYBoDNYBmgFlgGgM1gGaAWWAaAzWAZoBZYBoDNYBmgFlgGgM1gGaAWWAaAzWAZoBZYB -oDNYBmgFlgGgM1gGaAWWAaAzWAZoBZYBoDNYBmgFlgGgM1gGaAWWAaAzWAZoBZYBoDNYBmgFlgGg -M1gGaAWWAaAzWAZoBZYBoDNYBmgFlgGgM1gGaAWWAaAzWAZoBZYBoDNYBmgFlgGgM1gGaAWWAaAz -WAZoBZYBoDNYBmgFlgGgM1gGaAWWAaAzWAZoBZYBoDNYBmgFlgGgM1gGaAWWAaAzWAZoBZYBoDNY -BmgFlgGgM1gGaAWWAaAzWAZoBZYBoDNYBmgFlgGgM1gGaAWWAaAzWAZoBZYBoDNYBmgFlgGgM1gG -aAWWAaAzWAZoBZYBoDNYBmgFlgGgM1gGaAWWAaAzWAZoBZYBoDNYBmgFlgGgM1gGaAWWAaAzWAZo -BZYBoDNYBmgFlgGgM1gGaAWWAaAzWAZoBZYBoDNYBmgFlgGgM1gGaAWWAaAzWAZoBZYBoDNYBmgF -lgGgM1gGaAWWAaAzWAZoBZYBoDNYBmgFlgGgM1gGaAWWAaAzWAZoBZYBoDNYBmgFlgGgM1gGaAWW -AaAzWAZoBZYBoDNYBmgFlgGgM1gGaAWWAaAzWAZoBZYBoDNYBmgFlgGgM1gGaAWWAaAzWAZoBZYB -oDNYBmgFlgGgM1gGaAWWAaAzWAZoBZYBoDNYBmgFlgGgM1gGaAWWAaAzWAZoBZYBoDNYBmgFlgGg -M1gGaAWWAaAzWAZoBZYBoDNYBmgFlgGgM1gGaAWWAaAzWAZoBZYBoDNYBmgFlgGgMw== - - - WAZoBZYBoDNYBmgFlgGgM1gGaAWWAaAzWAZoBZYBoDNYBmgFlgGgM1gGaAWWAaAzWAZoBZYBoDNY -BmgFlgGgM1gGaAWWAaAzWAZoBZYBoDNYBmgFlgGgM1gGaAWWAaAzWAZoBZYBoDNYBmgFlgGgM1gG -aAWWAaAzWAZoBZYBoDNYBmgFlgGgM1gGaAWWAaAzWAZoBZYBoDNYBmgFlgGgM1gGaAWWAaAzWAZo -BZYBoDNYBmgFlgGgM1gGaAWWAaAzWAZoBZYBoDNYBmgFlgGgM1gGaAWWAaAzWAZoBZYBoDNYBmgF -lgGgM1gGaAWWAaAzWAZoBZYBoDNYBmgFlgGgM1gGaAWWAaAzWAZoBZYBoDNYBmgFlgGgM1gGaAWW -AaAzWAZoBZYBoDNYBmgFlgGgM1gGaAWWAaAzWAZoBZYBoDNYBmgFlgGgM1gGaAWWAaAzWAZoBZYB -oDNYBmgFlgGgM1gGaAWWAaAzWAZoBZYBoDNYBmgFlgGgM1gGaAWWAaAzWAZoBZYBoDNYBmgFlgGg -M1gGaAWWAaAzWAZoBZYBoDNYBmgFlgGgM1gGaAWWAaAzWAZoBZYBoDNYBmgFlgGgM1gGaAWWAaAz -WAZoBZYBoDNYBmgFlgGgM1gGaAWWAaAzWAZoBZYBoDNYBmgFlgGgM1gGaAWWAaAzWAZoBZYBoDNY -BmgFlgGgM1gGaAWWAaAzWAZoBZYBoDNYBmgFlgGgM1gGaAWWAaAzWAZoBZYBoDNYBmgFlgGgM1gG -aAWWAaAzWAZoBZYBoDNYBmgFlgGgM1gGaAWWAaAzWAZoBZYBoDNYBmgFlgGgM1gGaAWWAaAzWAZo -BZYBoDNYBmgFlgGgM1gGaAWWAaAzWAZoBZYBoDNYBmgFlgGgM1gGaAWWAaAzWAZoBZYBoDNYBmgF -lgGgM1gGaAWWAaAzWAZoBZYBoDNYBmgFlgGgM1gGaAWWAaAzWAZoBZYBoDNYBmgFlgGgM1gGaAWW -AaAzWAZoBZYBoDNYBmgFlgGgM1gGaAWWAaAzWAZoBZYBoDNYBmgFlgGgM1gGaAWWAaAzWAZoBZYB -oDNYBmgFlgGgM1gGaAWWAaAzWAZoBZYBoDNYBmgFlgGgM1gGaMX5ljF16lSxjASDpKQksQyJQwnC -jiyjo1AEgMiBZYApYBkAfREsA0wBywDoi2AZYApYBkBfBMsAU8AyAPoiWAaYApYB0BfBMsAUsAyA -vgiWAaaAZQD0RbAMMIXOW4YwZsyYmpqaF1988dChQ3v37n3nnXcOHDiwF7Tkvfe7JtCT9zpg/vz5 -EyZMSE1NlcSUPFWWERMTg2VAROlSK6N///7jxo2bOXPm3Llz8/Ly3G735MmTJ4KW5E7umkBPpnTA -2LFjJR9tBpKqqq2hntiAZUDk6LxlpKSkyDGMfCVDaQ6rWJUfJIOWJKR0TaAn8R1ja0X8QjIx/JAf -LAMiR+ctQ5rA4ShVZ1DFRGSiDfQkuosCLUnoAHWuWD38TTJRtTJkCpYBEaXzlmG32yUyZVydL5VA -lRC1GUc4oCFxyV0T6ElcB0huygFbv379VFYqv8AyINJ06VpGOIBlXDlIR4dAYDqxSV0T6ElqB6iW -vmSoOkssQ3W2KgHLgEjSecuQcXUtQ6aEr2XEgK7Y4rom0JOLnLOSg7fwuWJ1hkpMBMuAiNKlE1Nh -75CvwkGbBFoSn9I1Qd9C3CTFQJ2PUiepsAyIKCdOnGhqapIRNTx69Oh//Md/zJ49e9CgQWIHEo3K -EQYMGKAutEEfwhYTnWhPsUVHxSUnJvezx8q+JDVZXemWjzJRvopJjI9JkF9GybcdnUs3ezugy4hr -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 -OjgAfC4dWcaf/vSnpUuXyj5TdqHqEUyyn5GR+D6OMggh1jglpTwi3riKoRoXylBijQfbijWYua49 -QUetJNk6aWW8/PLLDQbq9kazgxEAdOcilrFgwYL297gJccZ5qj6N8j4h2uhbGybOuO9bXEM1Q5Sn -qOkXxJy17zoJHSBflZWVSS2rRxZz4RsAOkNHlrF3717Zpajdy8CBA+UgXEb69evX0S6or6BOr6UY -JBmojrU24x0ZagOVfch0daqqT5PUAVIOFRUVf/nLX8wOQADoS1zk8veNN96oehap4+34+Pg4o08R -WACp0FWrVr3wwgv19fVmxyAA9Bk6sozdu3fffPPNkydPzs/Pl2EgEJgyZUpeXp4H+hTjO0Cq9Tvf -+c5bb73V/sJ3C52mAOCidGQZsif57//+77vvvvu+++772c9+ds8998jIT37yk3+HPsXPO+Cuu+56 -7rnnDh06pC5/t3ArHwB0go4sQ746evTogQMHjh07JjuWw4cPHz9+/ODBgyehT3GsA9577z2p08ZW -VDDwiiUAuDgXsYzwDqT9+YqOfg960twBUrnqB+1v4qOVAQAXp6NdTfuDz/bv46uHPsXFa/+cNy1y -awYAXJyOLMPs9YKeoaNWxvm1rJokZq0nAPQJLmIZ7Q9BZaShoeEivwc96WQYqJcVYhkAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABf -WNLTizeVF5XVlNmXTLenF8zwrZTP15dtr6nYZp9jT1+ZXbCtpqh6TU315k1l225x5MmkjCKvy11U -5C7IWrelYm2mI3vhpuo1m8srbqjZVr1prSOjoHzz6orijasryssryueV1VRlOsaH5pST4/Tk5ua6 -/I7sGZtqzvnd9LJN5RsqzvxyWrVamCO74IbCGTNyfUUVoQWEvvRO3ZThzM+bm1FWMqk0PWOaL9M/ -fby3OGvpuO15C1zeJdduWx2oWJ63zL/UubUkN2/UxMqJa2e7J+VvX7RllKdk3aQd3i3rirZ7yqfM -WlaUdX1lzbiS9LIpRTPz163yLhk3qaSofGNgsj09NGFhwYJFU/3jtk8ct7502daigg== - - - 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 -Oten2lBHjx49ePDg//zP/0gzqri4eMiQITabTZpRYk+xsbFJSUliVWJPMkU+JhjIuEwfM2bMihUr -7r333jfffLO2tlZySmWTugomqMWppQCYDj4FoD/iHeHHyUobSrLg+PHjb7311sMPP1xVVTV69Gh1 -fk+cSF2TioqKUk0qcSXlUMq2ZLp8GxMTI6aWl5f35S9/+bnnnlMNKJVZqkOFMq8g5/1AD/ApAP0R -+wg3cCTyjxw58vzzz995552zZs265pprlDelpqampKSIB9lakXFxKGlMhT8KsQbSsBIjGzt27Lp1 -6x588MG//vWvH3/8sdiT6q2hTjPSngJNwKcA9Ec1o2Tk8OHDe/fu/c1vfnPrrbfm5uaKN6nTev36 -9ZMWk5iRGJM4l3wUz7Lb7QMGDFCnAePi4mREfiwj8ldpaWnSvJLfjBgxYtKkST/60Y9++9vfHjx4 -MJxlsixpspm93QAh8CkAfWj/CD7VH0/1cBDLUD4lDZ/vfve7s2fPHj169MCBA6OiopQfSeNIDEid -6BO3kqHD4SgqKlqyZElhYeFll12mmlTiX6pbRZKBjMhHmThhwoSysrLHHnts37594Xuyjh079tln -n4WbcrJuMlG1tswrIfgigk8B6IPkoDrnJoQvGwWNfg7SjHrqqae+8pWvlJSUXHXVVcplpH2keqHH -xMSoa1LSVhLf8Xg869atu/fee5944gnxtUWLFo0cOVJ+HL56pfoEyojMRNpW0uwS45s3b94dd9zx -yiuvhG+eUqcBVfd1WRm1VmYXEnzhwKcA9CFoPDNW3SEVjnb5+Oabb959990LFy5MT09XLSZBXWYS -xxFvUl37ZGTMmDEFBQX/8A//8Nxzz6kXI7733ntPPvnkpk2bxLzEktTlKjEpaYjJMNpAzVDm7PP5 -br311mefffbAgQPqRirlU+H1kRFp35lbSvBFA58C0Ieg0ZHv4MGD4R530oz6/e9///Wvf33GjBlD -hgxR3qT6n0u7STmUutIkbaLs7Oz169ffd9997777bngOki8yz+eff17aSrNmzRo7dqzYk7S/VDNK -dRFUd1epLoKjRo268cYbpS32xhtvHDt2LPxUQNVrXd0LbG4pwRcNfApAH8RQjh49evLkSRXqu3fv -/vnPf7558+bx48f3798/KipKfERG1CMm0gyUc1122WX5+fnSFPrd734nbqLSREZkburJSDK+Z88e -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 -XIW7T7sOTXpGjcY/9x4zuu+oO7/0X//0+wGfwP/cmnvAH3bUP9X8z6FQba+69kRAkNElaEETWvUe -1DdxdLx2H0YP5M7NBGj/dRpvof1fH4sQd5/q7p06WrSxCPvP3vN3/9MYiySLwOAw/zrBdcPcgwKC -/YODage6D9WOBdetW+f3Yy0sAoMC/euGBNQt4lgd/+CwoNrasWD/0IDQkD8/VjvYPyw0MOzOsTq1 -/YMCa9f582MBYf51g0O03/j9+v7smLqWOIuOFi1xR3ceRaDhUWhhLWIHDukbzt1GffsPHPafGBd4 -BPhOE4ta0X3HDkzs27ZJI/dOLS263nk5QSF1w2rzgRo+3LnVOqEBgbjcOv6BuJXu7nVCQrX/4SwD -HuTv7vy74W8N/wt1D3I3XHkw/sN3LLy9tcu9U0nC3cNC6obWrWPRqen/mTpuiCAIgiAIgiAIgiAI -giAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIgiAI -giAIgiAIgiAIgmAabguCIAjCfSA6JQiCIJgzolOCIAiCOSM6JQiCIJgzolOCIAiCOSM6JQiCIJgz -olOCIAiCOSM6JQiCIJgzolOCIAiCOfCrxm+//caPppIn0SlBEAThTyktOvWbIAiCUC4pLTr1qyAI -glCOEZ0SBEEQzBnz16lfBEEQhHJJadEpnSAIglAuEZ0SBEEQzBnRKUEQBMHMgU7dpVAmFCzRKUEQ -BOEuRKcEQRAEc0Z0ShAEQTBnRKcEQRAEc0Z0ShAEQTBnRKcEQRAEc0Z0ShAEQTBnRKcEQRAEc0Z0 -ShAEQTBnRKcEQRAEc0Z0ShAEQTBnRKcEQRAEc0Z0ShAEQTBnRKcEQRAEc0Z0ShAEQTBnRKcEQRAE -c0Z0ShAEQTBnRKcEQRAEc0Z0ShAEQTBnRKcEQRAEc0Z0ShAEQTBnRKcEQRAEc0Z0ShAEQTBnRKcE -wcz57bffsL1161Z+fv7PP//MyvLdd9+havz44485OTkXLlw4dOjQvn37UlJSsrOzf/jhB36HtRsf -CwsLf/nll98M8F9x5Pvvv8c5TX1/gvAXiE4JgpmjtAkSA2VRH1F5oVBr164dP358ixYt6tWr16lT -p8mTJx87diwzM1N9DTWIfwVRwxYn/Omnn37UgFThC6a+P0H4C0SnBMHMgaywgkBWsA== - - - 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 -4045NrB/uHXrFp70RYsWDRkypHHjxiy+wLErZ/ygUEwUgC6iUaNG6EPQOezbtw8DYAZYmfr8hNJN -bm4uc8xytfTatWsYAr322msYDtWsWZOrokx4wlloNEW6W0CqmjVrNmrUKBhWFy9e5Aw2TfhCbRWM -wVYSBVy0iE4JxQGXnwq1WReuEAEm1rtx48Z33303derUli1bVqtWjW7njIdiPAtjW9AnVKlSxdfX -F1qGPgE9iU5rolzhMvX5CaUbmPMqfoHdWnZ29vHjx994443evXs7OztjmMQAPa5bcRBF8I6Tk1Ov -Xr3efvvttLS0nJwclRSX7qamPrkyiOiUUBygH+CGWg7AXYPWpKSkfPzxxzExMT4+PjY2NugHaEBx -xq9SpUqwrTjdV7t27fDwcPQbGzZsSE1N5eOPvTGFhUlPTij1sBuh7UNPUWynp6dDdzZu3JiQkODn -52dlZQVJYrOEvU9nHmXmOzg4NG7c+L333tu8eTPMfHZfDLXgRLfxRJ/kWXpCRKeE4kAtVTPGFtsZ -GRl79+6dMWNGp06dqlevjuedBQ2Zo495kP7yl7/gnapVq7q6ug4aNCgpKQkKdfPmTc6r0JFPJ34R -whOjN2TLR4tScbvs/WAfJScnz5kzp2PHjrCb0CDRVitXrsygKhYH4RKqpaVlgwYNevTosXz5cgzA -mFiJXqaqfJXOIFKSd/1JEJ0SigPjaKY7d+789NNPa9eufemllyBAeLrp/WuhoR5/TqrY29tHRETg -k1u2bIG0qdxHnEVUKawF4UmggtDkUTql19wqmLwLA6RVq1bFxsZ6enoyKQrbJ1OsGyfyguHfvn37 -2bNnf//991lZWaoelsrcrkSqUOrI/FlEp4TigAFNuE2ZmZl4fjE6hRlVv359lTyWVVbVnxAsmFE+ -Pj4wo5YsWXLo0CEMa/WaxwVLjesMbZXjVVOfn1C6+dWIfxrB3CYcX12/fn3r1q2TJk1q164dhk9M -109/VOoUWi8GXXi/evXqjRs3Hj58+CeffHL+/HmVs0vpFEVKdOpPIzolFAecpktPT9+2bRue9KZN -mzJHDcNS6EalkgDgwYdINWvWbOLEiZs2bbp8+TJtKBb4UPFWxjs33ZkJZQEKB/scGunKqmKYFQMo -8Lpv37558+Z17tyZhhVnp9mMGQtMsF2vXr0ePXosWrQIAzOVZ9JYp/QyX/1nEZ0SHg== - - - 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 -xEUIIUSJI3ERQghR4khchBBClDgSFyGEECWOxEUIIUSJI3ERwib+9a9/ffPNN3xMvv7660uXLv37 -3//GETx0//vf//7rBO/xvFy4cAHv8Ul8AB9muqX/WOlihSiPSFyEsAM8GlANvIFYmGeKb3Dk//2/ -//fVV1/hlWn7/p/FNxb4kSoDJC6i/CJxEcIOjDr8QCxgv+DVPD40W/DGYckQhQYH+VsIkLvLIcR1 -InERwg7wZNEq+Z/Fv/71ry8tcnNzOVeG1yNHjmzbtm379u2HDh2C6HDGDJ85f/78119/7e4SCFEs -JC5C2ARkAmYIn5GLFy/CDDH2C9Rk8eLF06ZNGzZsWFpa2oQJE9566639+/dzUQZCg7+lvePuQghx -nUhchLADPAL/ssAbPGVQGTM5tmPHjoceeigpKalevXpVq1b18vKqU6dOp06dcBBWjMM5pYbP48/d -XQ4hrhOJixB2QCmhrMBUgT2Sn59/4MCB11577c4774yIiPjd73530003/epXv/rNb36D1//7v/8L -CgqaPHnysmXLYNdQVmDCuLscQlwnEhch7IATYgACgfc4snPnzvnz58fExDRu3PjWW2+Fmvz617+u -VKkS34Obb74ZVkx8fPycOXN2795tFvqFKI9IXIQoDngE6OJltAB2Cts/3tB+ycvLgz2Smprq6ekJ -EfnFL35x2223QVbw+stf/vKWW26B5VKrVi38SJXx8fHp2rXrU089dfz4ceNahm/56quv6Jz89ddf -myN0LYNl9JWFm6tDCCcSFyGKA54gvkG3j7794sWLFBq84aLJli1bZs6c2bZt22rVqsE2gYL82uK3 -v/0tXqkmlBgPDw9YMTfddBOO4MegoKBx48Zt37793LlzfNZwNte1G4oaH2GIC1XGvbUhhEHiIkRx -yM/PRyfPBs+9kPiR5sapU6eWLFmSnp7eqFGj//sRv7SAFQOzBbICNfmdxa0W+PE3v/kNzJlhw4Yt -XLjQVV9w/kJrNcdhbY2BplDX6Dzg7voQ4lskLkIUBzNVxS0thZan8enTp3ft2vXkk08mJSVVrVoV -InKbBRfuISg4AguF1goEhT/+wgLvcbBSpUr8MCSmXbt2s2fP3rp166VLlwqd8WHoima+GkdwJdod -I8oOEhchigOfAnTvNBzQ2+/evXvp0qUdO3YMCAioXLky1eS3v/0tJ8RgleAgJAMH69atC+EIDw/3 -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 -EjOtlBPJWVMyY7jZLXNCVs6v+SdgHj7T3S0oMXN21rjMAd27eQ3p6za8+MIFh0eG81wDbfiJaBwR -lkXabMVWRAXaIsKivUZ4RYR5heNi4iATz+drxR/49au//i/KK9SrxOww/MMn3Hx8LFuLS2+MV3Rk -eGi025AeVzg7n4cQQgghhBBCCCGEqBmcchCyX/bLftkv+2uH/c6y53yR/c5F9jsX2e9caqv954vs -d6z9/z1Pqpv9/zlPZL9j7f/lPKlu9hedJ7Jf9st+2S/7Zb/sl/2yX/bLftkv+2W/7Jf9sl/2y37Z -L/tlv+yX/bJf9st+2S/7Zb/sl/2yX/bLftkv+2W/7Jf9sl/2y37ZL/tlv+yX/bJf9st+2S/7Zb/s -l/2yX/bLftkv+2W/7Jf9sl/2y37ZL/tlv+yX/bJf9st+2S/7Zb/sl/2yX/bLftkv+2W/7Jf9sl/2 -y37ZL/tlv+yX/bJf9st+2S/7Zb/sl/2yX/bLftkv+2W/7Jf9sl/2y37ZL/tlv+yX/bJf9st+2S/7 -Zb/sl/2yX/bLftkv+2W/7Jf9sl/2y37ZL/tlv+yX/bJf9st+2S/7Zb/sl/2yX/bLftkv+2W/7Jf9 -sl/2y37ZL/tlv+yX/bJf9st+2S/7Zb/sl/2yX/bLftkv+2W/7Jf9sl/2y37ZL/tlv+yX/bJf9st+ -2S/7Zb/sl/2yX/bLftkv+2W/7Jf9sl/2y37ZL/tlv+yX/bJf9st+2S/7Zb/sl/2yX/bLftkv+2W/ -7Jf9sl/2y37ZL/tlv+yX/bJf9st+2S/7Zb/sl/2yX/bLftkv+2W/7Jf9sl/2y37ZL/tlv+yX/bJf -9st+2S/7Zb/sl/2yX/bLftkv+2W/7Jf9sl/2y37ZL/tlv+yX/bJf9st+2S/7Zb/sl/2yX/bLftkv -+2W/7Jf9sl/2y37ZL/tlv+yX/bJf9st+2S/7ZX9V2v9LGdQU+/9TBrK/auz/bxnUFPvL+rzsd6z9 -P5VBTSn/P5dBTbG/ptffsnSqppT/sq5zTbG/utlZFjXFzrKo6fYLIYQQQgghhBDVGR+fpJyMxDG5 -Y9yGpLj5xPcIH4X3A8bMzM2c4dbXzWdUUPyM3MSscblZU3PGzJjjFYNdvolhwSGJicHBgZOmZU7w -8wq6Oidr3NSMzIG5M7JyJnj5xmdMHZuZlD02MyMjMyN1TO5EP6+A4iNFhodGREaHRNm8gnrk5J72 -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 - - - oghaFEGLImhRBC2KoEURtCiCFkXQoghaFEGLImhRBC2KoEURtCiCFkXQoghaFEGLImhRBC2KoEUR -tCiCFkXQoghaFEGLImhRBC2KoEURtCiCFkXQoghaFEGLImhRBC2KoEURtCiCFkXQoghaFEGLImhR -BC2KoEURtCiCFkXQoghaFEGLImhRBC2KoEURtCiCFkXQoghaFEGLImhRBC2KoEURtCiCFkXQogha -FEGLImhRBC2KoEURtCiCFkXQoghaFEGLImhRBC2KoEURtCiCFkXQoghaFEGLImhRBC2KoEURtCiC -FkXQoghaFEGLImhRBC2KoEURtCiCFkXQoghaFEGLImhRBC2KoEURtCiCFkXQoghaFEGLImhRBC2K -oEURtCiCFkXQoghaFEGLImhRBC2KoEURtCiCFkXQoghaFEGLImhRBC2KoEURtCiCFkXQoghaFEGL -ImhRBC2KoEURtCiCFkXQoghaFEGLImhRBC2KoEURtCiCFkXQoghaFEGLImhRBC2KoEURtCiCFkXQ -oghaFEGLImhRBC2KoEURtCiCFkXQoghaFEGLImhRBC2KoEURtCiCFkXQoghaFEGLImhRBC2KoEUR -tCiCFkXQoghaFEGLImhRBC2KoEURtCiCFkXQoghaFEGLImhRBC2KoEURtCiCFkXQoghaFEGLImhR -BC2KoEURtCiCFkXQoghaFEGLImhRBC2KoEURtCiCFkXQoghaFEGLImhRBC2KoEURtCiCFkXQogha -FEGLImhRBC2KoEURtCiCFkXQoghaFEGLImhRBC2KoEURtCiCFkXQoghaFEGLImhRBC2KoEURtCiC -FkXQoghaFEGLImhRBC2KoEURtCiCFkXQoghaFEGLImhRBC2KoEURtCiCFkXQoghaFEGLImhRBC2K -oEURtCiCFkXQoghaFEGLImhRBC2KoEURtCiCFkXQoghaFEGLImhRBC2KoEURtCiCFkXQoghaFEGL -ImhRBC2KoEURtCiCFkXQoghaFEGLImhRBC2KoEURtCiCFkXQoghaFEGLImhRBC2KoEURtCiCFkXQ -oghaFEGLImhRBC2KoEURtCiCFkXQoghaFEGLImhRBC2KoEURtCiCFkXQoghaFEGLImhRBC2KoEUR -tCiCFkXQoghaFEGLImhRBC2KoEURtCiCFkXQoghaFEGLImhRBC2KoEURtCiCFkXQoghaFEGLImhR -BC2KoEURtCiCFkXQoghaFEGLImhRBC2KoEURtCiCFkXQoghaFEGLImhRBC2KoEURtCiCFkXQogha -FEGLImhRBC2KoEURtCiCFkXQoghaFEGLImhRBC2KoEURtCiCFkXQoghaFEGLImhRBC2KoEURtCiC -FkXQoghaFEGLImhRBC2KoEURtCiCFkXQoghaFEGLImhRBC2KoEURtCiCFkXQoghaFEGLImhRBC2K -oEURtCiCFkXQoghaFEGLImhRBC2KoEURtCiCFkXQoghaFEGLImhRBC2KoEURtCiCFkXQoghaFEGL -ImhRBC2KoEURtCiCFkXQoghaFEGLImhRBC2KoEURtCiCFkXQoghaFEGLImhRBC2KoEURtCiCFkXQ -oghaFEGLImhRBC2KoEURtCiCFkXQoghaFEGLImhRBC2KoEURtCiCFkXQoghaFEGLImhRBC2KoEUR -tCiCFkXQoghaFEGLImhRBC2KoEURtCiCFkXQoghaFEGLImhRBC2KoEURtCiCFkXQoghaFEGLImhR -BC2KoEURtCiCFkXQoghaFEGLImhRBC2KoEURtCiCFkXQoghaFEGLImhRBC2KoEURtCiCFkXQogha -FEGLImhRBC2KoEURtCiCFkXQoghaFEGLImhRBC2KoEURtCiCFkXQoghaFEGLImhRBC2KoEURtCiC -FkXQoghaFEGLImhRBC2KoEURtCiCFkXQoghaFEGLImhRBC2KoEURtCiCFkXQoghaFEGLImhRBC2K -oEURtCiCFkXQoghaFEGLImhRBK2/r0i86xZdj4k8tg4UiTqKoEURtCiCFkXQoghaFEHr7yvCLqMI -WhRBiyJoUQQtiqBFEbQoghZF0KIIWhRBiyJoUQQtiqBFEbQogtboRRhjjDHGGGOMMcYYY4zhlEyW -j5tevVtPrFcSyeKcuSm+/lQ/77bOEh8Syc1M8azr7TW6eyfH9bMfUlZsSnmGqnmeqsv7p62dcSmz -crzXOGm2PnfP9o53pFSxebLdKh9tt5rNVnOp3t0dlyaCe7JN3VZt03KkzNxx9971KvXj5mHr6poz -e5c7kzLFz6W5Ocf0WsEOgguN6eOUUsh+TNX9/GwyNWOOW5UJoyx/SZ9nq6qx/vZs2219z9asL0rH -d7Ivc+3czqKWL5yvnr7U/f38hXG6753rzamFmid/anfTfrI+5c0X9reM9XTe95pH7rtEMtiwUqyu -Tlvp81z6YLbW8YqlytrBZNHZPt1Jz6xO2+lC6U27OL+2t6m8n2zsaN60rSutJTWrNuamlzJK5XtS -aW3btpruFnKZxarqq7OrL3ylsvm+ls6vNhcSyXR+72I1+Hy3vP26Ucr55e652JVj+y+Pp5aK+8mp -j37Zm9tUMskPx7PZ41Qnc7LUKCkZc25OL+pvikpmKmsHt7X8t6tf/EK+Xiz6L7yDo1fWSsUK7zmR -DO/b6i74C+Xt6rw9c1g41MNthawvd/3phfbhzdUXLj/crImX2VzbmFn+PO3otQ9yyh9bOdKDJVIL -ZxU9N/vty1JZnLNsJpITLypTq7d3YZS7Gxv6xrfOi0J+2pfzE19rB+aLrY1uYfXV10+lvTHL8ctq -W/fay+ft3NaksmFMqZ2z8uvTwkTxU7X2orw1fd4pNV+r87d3KvTv3u2b+eBDWZ1I+dOZxfkxU531 -GltKe3eyote2yic/3eO3Q6ubUueN0z2venOPu2K1SzX30F9eLZ5Wmst+qbl2kEgq75f8rPL+oJBT -PritDf376+qy0h6/6CjW7tSyvln/+GbmwFv7Eu7+dqkVS606+kZz6WXhrJF97XvmV+12f0b5Xbd8 -e2kiGV6eLntj43r9cN71t75v76dPT2adOxD5LyezpT0jVy3ac9uVG4i3/tZi9oPXrr73xAVuqrRr -V069+fnOcjCB1q1FMGPBvku7nc3iibcxUci/q815svxmRzGnKrkZxd5dLxy2jOly46U1cedop9TN -RnFv692Bn3Kt8fLkRNvwyrXSYjq/1hy7HteL/Cu32m0mkrePp58XeJgfrs7lyQ9j1ij28viHXnY/ -+F4e/3D7YI5yL787l6xrDmQw8Io9ewSGtGJP7D5yl3AE4tKPYgT6P5fnjMAwV+zx3Y/K5f439RHq -D3kEnrlifY7A0F0e3P1IH5URj8CT5zKUERhkxXofgWhc7u9+9M/J0Y1Ab+cy6AgMvGI9jUCELtZI -9vK7c4lkBPo4lwFGYDgr9tQIRO0S76vxKEag33N53ggMccV+MwIjcYn31fiQR+BZ59L3CAx7xR4e -gVG6xPlqfHgj8PwV62cEInH5ZQRG/qiM89X4UEZgwBXrcQSicxmL/fVYnK/GBx2BYazY0yMQsctY -7K/H4v3X0WePwNBW7LcjMAqXsdhfj8X7r6PPGYHhrthjIzBCl8F+UDT4isX7r6N9jkAELg+MwKgf -lVGOQC/nEu+/jvY+AlG5/DwCsTwnRzQCPZ9LzD+t7mUEInW5GYH4viMPfwT6O5eYf1r9xAhE7xKM -QMyvx4Y6As84l5h/Wv34CIzMJYo3jfR1LsMageeuWMw/rX5wBEb7qIx2BHo4lyGMwEArFvNPq++P -QAzPyZGNAN892O8I8N2Do9fvZQT47sHoXfjuQb57kO8e5LsHY9N/cAT47sFR6vc+Anz3YIQufPdg -nPqRjADfPdjvCMT902q+e5DvHuS7B2N/PfZ3ePdgNmt0Zr/b469KC52qWvx88ao48WbJ6Bgn/5xK -JDdzUqo4p2rS0mG90WpK64tLUvDbBy7/x/+UIith41Lm+rcJzMwUG42Lo08n3XrwSwgur5gT/yVW -Hv71BJknvk4d1cVd/1FLqZIi/qiSKTuKpthqa1JRLGnSlBVTtw09/LI2fudQumf14/P2ydnR1UFI -qc+rs5vFrrh4+6LbOg929NNFtxtS6tWZScovn9y/SBxD8Nl4uCCKYt45gvBXJnzc3m81uovhWdxZ -juBUlPDP+o9E+FczYUmpcWl9LbGccK8+W7l/kSp5YtPHhCLbpqKJu5At27UcPfxE0TRNfOIqqmVc -33n9ak/a5Z5UzZYd1zEkXTVkzXFU6Sih6pasGJYr6Yq4F0fc60K4TbNUO9zmqOEmzZFVVdPDmxri -ooWE/7CpefUrI4JF/bxbP21Vf5y27py7qglEx7QlcQBiz7p7dRCOq1uS5mqyo5vu1UHYrrhYc3VZ -sYxwm7it7dhqeFvN1twBDsMUu3Q0R9y9OAxd14LDMEyxfpYutpmy4YTnHWyyVDfcpOm2E2wTNxUH -ZopttjjEAY5Bd2XFFvvRVXGKrhUeg27LumJZYu1V2TTdSw9bfKrbl9uuiFxZ10zt8qZmeKzPPQpx -io6456ujuJwKU5y27Zhij6YcnOrlWYspcMNNpqs516vjqEZ4U7FCg6yFpsq2rZo3A3YUbrIMy7xa -e1cPJ0AVk3KzzQqPQtNk8XC4vqn1/IPIiOc7tdr6oyuurUgZ/6zVWjlunogrhF/Vj1pzx83WH+Jr -gSEe6SdnP643aFImuGHxuLtXP9yrnwfPAROJXCJ8BKqPPNb72J/T+/5+2oUy4HOGpoqHoS4eE6oV -TL0SzGiwTdHF8KmmJtjDh6YmpkL8J87VUmVDD54gNDEUhqsHV3PEJkMNt92/u4VE+2Es6wkszVBk -Uzydibu3ZU3Tg7nVzKspCu7ectzwyMRBGraYqOBozeCwxTZDPPLERIvrKcGMhZvu392zj+ztxdVT -tXL1bSv4IxZ2UnVMWRWHJdma7JrBjE+qriKOLtyia+IZQGwwxJE7khU84drhBvEQVMVVLPHcqDiW -VLpzR9fbFn698wc3tYONAs0SUsFG3TbDo7jeJvDCbwwLd7cpwZOOKYVbHEeMoumKmRHfDMQWXSyf -OLbrLcGxBY9M98624L7ESZmmKm4pvvEodnBDV5ylJQkHJ3i2C+/Jdiz1ZktD3MoWz4W2ot65ljhm -cUKSeHpSxDPn7YZg6DRxZMH+LzeJtRG31vRgBW1LNoM1DS5xxdPVr2tQemBdgtV6+8grF3t4zyTu -aJ9JDOWZzyQLMze/dGqh/qN1NjmZSCaX6jut6ll977B1ltg5r/+jJdWPj4PXf61TcYm0c9Y6F/tq -See7J/8ZbBE3ub56Mln+6Cf+H+Fl6P8= - - - diff --git a/docs/_graphics/druid.graffle b/docs/_graphics/druid.graffle deleted file mode 100644 index cc1e8e9774dc..000000000000 Binary files a/docs/_graphics/druid.graffle and /dev/null differ diff --git a/docs/_graphics/indexing_service.dot b/docs/_graphics/indexing_service.dot deleted file mode 100644 index 66e7575a2264..000000000000 --- a/docs/_graphics/indexing_service.dot +++ /dev/null @@ -1,57 +0,0 @@ -// Licensed to the Apache Software Foundation (ASF) under one or more -// contributor license agreements. See the NOTICE file distributed with -// this work for additional information regarding copyright ownership. -// The ASF licenses this file to You 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. - -// dot -Gnewrank -Tpng indexing_service.dot > indexing_service.png - -digraph g { - node [ fontname = "Helvetica Neue" ] - node [ fontname = "Helvetica Neue" ] - edge [ fontname = "Helvetica Neue Light Italic" fontsize = 12] - - new_task[shape="plaintext" fontname="Helvetica Neue Light Italic"] - overlord[shape="box" label="Overlord"] - - new_task -> overlord - overlord -> zk_tasks:mm1:n [label = "new_task"] - zk_tasks:mm1 -> mm1 [label = "new_task"] - - subgraph cluster_0 { - style = "dotted" - label = "ZooKeeper" - fontname = "Helvetica Neue" - - zk_status -> zk_tasks [style="invis"] - - zk_status [fontname="Source Code Pro" shape = record label = " /status | { /new_task }"] - zk_tasks [fontname="Source Code Pro" shape=record label=" /tasks | { /mm1 | /mm2 | /mm3}"] - - { rank = same; zk_status zk_tasks } - } - - subgraph cluster_mm1 { - style="dotted" - mm1 [shape = "box" label = "Middle Manager 1" ] - peon_11[label = "peon"] - peon_12[label = "peon"] - peon_13[label = "peon"] - - mm1 -> {peon_11;peon_12} - mm1 -> peon_13 [label = "new_task"] - mm1 -> peon_13:e [label = "new_task_status" dir=back] - } - - zk_status:new_task:s -> mm1:e [label = "new_task_status" dir = back] - overlord:e -> zk_status:new_task:n [dir=back label="new_task_status"] -} diff --git a/docs/_includes/page_footer.html b/docs/_includes/page_footer.html deleted file mode 100644 index 0e217acb94a2..000000000000 --- a/docs/_includes/page_footer.html +++ /dev/null @@ -1,29 +0,0 @@ - - - -
-
-
-
-
-
- - - diff --git a/docs/_includes/page_header.html b/docs/_includes/page_header.html deleted file mode 100644 index 6c9f32a4038d..000000000000 --- a/docs/_includes/page_header.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - - diff --git a/docs/_includes/site_head.html b/docs/_includes/site_head.html deleted file mode 100644 index 8e27bfe08464..000000000000 --- a/docs/_includes/site_head.html +++ /dev/null @@ -1,51 +0,0 @@ - - - - - - - -Druid | {{page.title}} - - - - - - - - - - - - - - - diff --git a/docs/_layouts/doc_page.html b/docs/_layouts/doc_page.html deleted file mode 100644 index dd54b55e1b2a..000000000000 --- a/docs/_layouts/doc_page.html +++ /dev/null @@ -1,50 +0,0 @@ - - - - - - {% include site_head.html %} - - - {% include page_header.html %} - -
-
-

Documentation

-

-
-
- -
-
-
- {{ content }} -
-
-
-
-
- - {% include page_footer.html %} - - - - - diff --git a/docs/_redirects.json b/docs/_redirects.json deleted file mode 100644 index 88f94ce702d2..000000000000 --- a/docs/_redirects.json +++ /dev/null @@ -1,178 +0,0 @@ -[ - {"source": "About-Experimental-Features.html", "target": "development/experimental.html"}, - {"source": "Aggregations.html", "target": "querying/aggregations.html"}, - {"source": "ApproxHisto.html", "target": "development/extensions-core/approximate-histograms.html"}, - {"source": "Batch-ingestion.html", "target": "ingestion/batch-ingestion.html"}, - {"source": "Booting-a-production-cluster.html", "target": "tutorials/cluster.html"}, - {"source": "Broker-Config.html", "target": "configuration/index.html#broker"}, - {"source": "Broker.html", "target": "design/broker.html"}, - {"source": "Build-from-source.html", "target": "development/build.html"}, - {"source": "Cassandra-Deep-Storage.html", "target": "dependencies/cassandra-deep-storage.html"}, - {"source": "Cluster-setup.html", "target": "tutorials/cluster.html"}, - {"source": "Concepts-and-Terminology.html", "target": "design/index.html"}, - {"source": "Configuration.html", "target": "configuration/index.html"}, - {"source": "Coordinator-Config.html", "target": "configuration/index.html#coordinator"}, - {"source": "Coordinator.html", "target": "design/coordinator.html"}, - {"source": "DataSource.html", "target": "querying/datasource.html"}, - {"source": "DataSourceMetadataQuery.html", "target": "querying/datasourcemetadataquery.html"}, - {"source": "Data_formats.html", "target": "ingestion/data-formats.html"}, - {"source": "Deep-Storage.html", "target": "dependencies/deep-storage.html"}, - {"source": "Design.html", "target": "design/index.html"}, - {"source": "DimensionSpecs.html", "target": "querying/dimensionspecs.html"}, - {"source": "Druid-vs-Cassandra.html", "target": "comparisons/druid-vs-key-value.html"}, - {"source": "Druid-vs-Elasticsearch.html", "target": "comparisons/druid-vs-elasticsearch.html"}, - {"source": "Druid-vs-Hadoop.html", "target": "comparisons/druid-vs-sql-on-hadoop.html"}, - {"source": "Druid-vs-Impala-or-Shark.html", "target": "comparisons/druid-vs-sql-on-hadoop.html"}, - {"source": "Druid-vs-Redshift.html", "target": "comparisons/druid-vs-redshift.html"}, - {"source": "Druid-vs-Spark.html", "target": "comparisons/druid-vs-spark.html"}, - {"source": "Druid-vs-Vertica.html", "target": "comparisons/druid-vs-redshift.html"}, - {"source": "Evaluate.html", "target": "tutorials/cluster.html"}, - {"source": "Examples.html", "target": "tutorials/index.html"}, - {"source": "Filters.html", "target": "querying/filters.html"}, - {"source": "Firehose.html", "target": "ingestion/firehose.html"}, - {"source": "GeographicQueries.html", "target": "development/geo.html"}, - {"source": "Granularities.html", "target": "querying/granularities.html"}, - {"source": "GroupByQuery.html", "target": "querying/groupbyquery.html"}, - {"source": "Hadoop-Configuration.html", "target": "ingestion/hadoop.html"}, - {"source": "Having.html", "target": "querying/having.html"}, - {"source": "Historical-Config.html", "target": "configuration/index.html#historical"}, - {"source": "Historical.html", "target": "design/historical.html"}, - {"source": "Including-Extensions.html", "target": "operations/including-extensions.html"}, - {"source": "Indexing-Service-Config.html", "target": "configuration/index.html#overlord"}, - {"source": "Indexing-Service.html", "target": "design/indexing-service.html"}, - {"source": "Ingestion-FAQ.html", "target": "ingestion/faq.html"}, - {"source": "Ingestion-overview.html", "target": "tutorials/index.html"}, - {"source": "Ingestion.html", "target": "ingestion/index.html"}, - {"source": "Integrating-Druid-With-Other-Technologies.html", "target": "development/integrating-druid-with-other-technologies.html"}, - {"source": "Libraries.html", "target": "/libraries.html"}, - {"source": "LimitSpec.html", "target": "querying/limitspec.html"}, - {"source": "Logging.html", "target": "configuration/logging.html"}, - {"source": "Metadata-storage.html", "target": "dependencies/metadata-storage.html"}, - {"source": "Metrics.html", "target": "operations/metrics.html"}, - {"source": "Middlemanager.html", "target": "design/middlemanager.html"}, - {"source": "Modules.html", "target": "development/modules.html"}, - {"source": "Other-Hadoop.html", "target": "operations/other-hadoop.html"}, - {"source": "Papers-and-talks.html", "target": "misc/papers-and-talks.html"}, - {"source": "Peons.html", "target": "design/peons.html"}, - {"source": "Performance-FAQ.html", "target": "operations/basic-cluster-tuning.html"}, - {"source": "Plumber.html", "target": "design/plumber.html"}, - {"source": "Post-aggregations.html", "target": "querying/post-aggregations.html"}, - {"source": "Query-Context.html", "target": "querying/query-context.html"}, - {"source": "Querying.html", "target": "querying/querying.html"}, - {"source": "Realtime-Config.html", "target": "ingestion/standalone-realtime.html"}, - {"source": "Realtime.html", "target": "ingestion/standalone-realtime.html"}, - {"source": "Realtime-ingestion.html", "target": "ingestion/stream-ingestion.html"}, - {"source": "Recommendations.html", "target": "operations/recommendations.html"}, - {"source": "Rolling-Updates.html", "target": "operations/rolling-updates.html"}, - {"source": "Router.html", "target": "development/router.html"}, - {"source": "Rule-Configuration.html", "target": "operations/rule-configuration.html"}, - {"source": "SearchQuery.html", "target": "querying/searchquery.html"}, - {"source": "SearchQuerySpec.html", "target": "querying/searchqueryspec.html"}, - {"source": "SegmentMetadataQuery.html", "target": "querying/segmentmetadataquery.html"}, - {"source": "Segments.html", "target": "design/segments.html"}, - {"source": "SelectQuery.html", "target": "querying/select-query.html"}, - {"source": "Simple-Cluster-Configuration.html", "target": "tutorials/cluster.html"}, - {"source": "Tasks.html", "target": "ingestion/tasks.html"}, - {"source": "TimeBoundaryQuery.html", "target": "querying/timeboundaryquery.html"}, - {"source": "TimeseriesQuery.html", "target": "querying/timeseriesquery.html"}, - {"source": "TopNMetricSpec.html", "target": "querying/topnmetricspec.html"}, - {"source": "TopNQuery.html", "target": "querying/topnquery.html"}, - {"source": "Tutorial:-A-First-Look-at-Druid.html", "target": "tutorials/index.html"}, - {"source": "Tutorial:-All-About-Queries.html", "target": "tutorials/index.html"}, - {"source": "Tutorial:-Loading-Batch-Data.html", "target": "tutorials/tutorial-batch.html"}, - {"source": "Tutorial:-Loading-Streaming-Data.html", "target": "tutorials/tutorial-kafka.html"}, - {"source": "Tutorial:-The-Druid-Cluster.html", "target": "tutorials/cluster.html"}, - {"source": "Tutorials.html", "target": "tutorials/index.html"}, - {"source": "Versioning.html", "target": "development/versioning.html"}, - {"source": "ZooKeeper.html", "target": "dependencies/zookeeper.html"}, - {"source": "alerts.html", "target": "operations/alerts.html"}, - {"source": "comparisons/druid-vs-cassandra.html", "target": "druid-vs-key-value.html"}, - {"source": "comparisons/druid-vs-hadoop.html", "target": "druid-vs-sql-on-hadoop.html"}, - {"source": "comparisons/druid-vs-impala-or-shark.html", "target": "druid-vs-sql-on-hadoop.html"}, - {"source": "comparisons/druid-vs-vertica.html", "target": "druid-vs-redshift.html"}, - {"source": "configuration/auth.html", "target": "../design/auth.html"}, - {"source": "configuration/broker.html", "target": "../configuration/index.html#broker"}, - {"source": "configuration/caching.html", "target": "../configuration/index.html#cache-configuration"}, - {"source": "configuration/coordinator.html", "target": "../configuration/index.html#coordinator"}, - {"source": "configuration/historical.html", "target": "../configuration/index.html#historical"}, - {"source": "configuration/indexing-service.html", "target": "../configuration/index.html#overlord"}, - {"source": "configuration/simple-cluster.html", "target": "../tutorials/cluster.html"}, - {"source": "design/concepts-and-terminology.html", "target": "index.html"}, - {"source": "design/design.html", "target": "index.html"}, - {"source": "development/approximate-histograms.html", "target": "extensions-core/approximate-histograms.html"}, - {"source": "development/datasketches-aggregators.html", "target": "extensions-core/datasketches-extension.html"}, - {"source": "development/extensions-core/datasketches-aggregators.html", "target": "datasketches-extension.html"}, - {"source": "development/libraries.html", "target": "/libraries.html"}, - {"source": "development/kafka-simple-consumer-firehose.html", "target": "extensions-contrib/kafka-simple.html"}, - {"source": "development/select-query.html", "target": "../querying/select-query.html"}, - {"source": "index.html", "target": "design/index.html"}, - {"source": "ingestion/overview.html", "target": "index.html"}, - {"source": "ingestion/ingestion.html", "target": "index.html"}, - {"source": "ingestion/realtime-ingestion.html", "target": "stream-ingestion.html"}, - {"source": "misc/cluster-setup.html", "target": "../tutorials/cluster.html"}, - {"source": "misc/evaluate.html", "target": "../tutorials/cluster.html"}, - {"source": "misc/tasks.html", "target": "../ingestion/tasks.html"}, - {"source": "operations/multitenancy.html", "target": "../querying/multitenancy.html"}, - {"source": "tutorials/booting-a-production-cluster.html", "target": "cluster.html"}, - {"source": "tutorials/examples.html", "target": "index.html"}, - {"source": "tutorials/firewall.html", "target": "cluster.html"}, - {"source": "tutorials/quickstart.html", "target": "index.html"}, - {"source": "tutorials/tutorial-a-first-look-at-druid.html", "target": "index.html"}, - {"source": "tutorials/tutorial-all-about-queries.html", "target": "index.html"}, - {"source": "tutorials/tutorial-loading-batch-data.html", "target": "tutorial-batch.html"}, - {"source": "tutorials/tutorial-loading-streaming-data.html", "target": "tutorial-kafka.html"}, - {"source": "tutorials/tutorial-the-druid-cluster.html", "target": "cluster.html"}, - {"source": "development/extensions-core/caffeine-cache.html", "target":"../../configuration/index.html#cache-configuration"}, - {"source": "Production-Cluster-Configuration.html", "target": "tutorials/cluster.html"}, - {"source": "development/extensions-contrib/parquet.html", "target":"../../development/extensions-core/parquet.html"}, - {"source": "development/extensions-contrib/scan-query.html", "target":"../../querying/scan-query.html"}, - {"source": "tutorials/ingestion.html", "target": "index.html"}, - {"source": "tutorials/ingestion-streams.html", "target": "index.html"}, - {"source": "ingestion/native-batch.html", "target": "native_tasks.html"}, - {"source": "Compute.html", "target": "design/processes.html"}, - {"source": "Contribute.html", "target": "/community/"}, - {"source": "Download.html", "target": "/downloads.html"}, - {"source": "Druid-Personal-Demo-Cluster.html", "target": "tutorials/index.html"}, - {"source": "Home.html", "target": "design/index.html"}, - {"source": "Loading-Your-Data.html", "target": "ingestion/index.html"}, - {"source": "Master.html", "target": "design/processes.html"}, - {"source": "MySQL.html", "target": "development/extensions-core/mysql.html"}, - {"source": "OrderBy.html", "target": "querying/limitspec.html"}, - {"source": "Querying-your-data.html", "target": "querying/querying.html"}, - {"source": "Spatial-Filters.html", "target": "development/geo.html"}, - {"source": "Spatial-Indexing.html", "target": "development/geo.html"}, - {"source": "Stand-Alone-With-Riak-CS.html", "target": "design/index.html"}, - {"source": "Support.html", "target": "/community/"}, - {"source": "Tutorial:-Webstream.html", "target": "tutorials/index.html"}, - {"source": "Twitter-Tutorial.html", "target": "tutorials/index.html"}, - {"source": "Tutorial:-Loading-Your-Data-Part-1.html", "target": "tutorials/index.html"}, - {"source": "Tutorial:-Loading-Your-Data-Part-2.html", "target": "tutorials/index.html"}, - {"source": "Kafka-Eight.html", "target": "development/extensions-core/kafka-eight-firehose.html"}, - {"source": "Thanks.html", "target": "/community/"}, - {"source": "Tutorial-A-First-Look-at-Druid.html", "target": "tutorials/index.html"}, - {"source": "Tutorial-All-About-Queries.html", "target": "tutorials/index.html"}, - {"source": "Tutorial-Loading-Batch-Data.html", "target": "tutorials/index.html"}, - {"source": "Tutorial-Loading-Streaming-Data.html", "target": "tutorials/index.html"}, - {"source": "Tutorial-The-Druid-Cluster.html", "target": "tutorials/index.html"}, - {"source": "configuration/hadoop.html", "target": "../ingestion/hadoop.html"}, - {"source": "configuration/production-cluster.html", "target": "../tutorials/cluster.html"}, - {"source": "configuration/zookeeper.html", "target": "../dependencies/zookeeper.html"}, - {"source": "querying/optimizations.html", "target": "multi-value-dimensions.html"}, - {"source": "development/community-extensions/azure.html", "target": "../extensions-contrib/azure.html"}, - {"source": "development/community-extensions/cassandra.html", "target": "../extensions-contrib/cassandra.html"}, - {"source": "development/community-extensions/cloudfiles.html", "target": "../extensions-contrib/cloudfiles.html"}, - {"source": "development/community-extensions/graphite.html", "target": "../extensions-contrib/graphite.html"}, - {"source": "development/community-extensions/kafka-simple.html", "target": "../extensions-contrib/kafka-simple.html"}, - {"source": "development/community-extensions/rabbitmq.html", "target": "../extensions-contrib/rabbitmq.html"}, - {"source": "development/extensions-core/namespaced-lookup.html", "target": "lookups-cached-global.html"}, - {"source": "operations/performance-faq.html", "target": "../operations/basic-cluster-tuning.html"}, - {"source": "development/extensions-contrib/orc.html", "target": "../extensions-core/orc.html"}, - {"source": "operations/performance-faq.html", "target": "../operations/basic-cluster-tuning.html"}, - {"source": "configuration/realtime.md", "target": "../ingestion/standalone-realtime.html"}, - {"source": "design/realtime.md", "target": "../ingestion/standalone-realtime.html"}, - {"source": "ingestion/stream-pull.md", "target": "../ingestion/standalone-realtime.html"}, - {"source": "development/extensions-core/kafka-eight-firehose.md", "target": "../../ingestion/standalone-realtime.html"}, - {"source": "development/extensions-contrib/kafka-simple.md", "target": "../../ingestion/standalone-realtime.html"}, - {"source": "development/extensions-contrib/rabbitmq.md", "target": "../../ingestion/standalone-realtime.html"}, - {"source": "development/extensions-contrib/rocketmq.md", "target": "../../ingestion/standalone-realtime.html"}, -] diff --git a/docs/img/druid-architecture.png b/docs/assets/druid-architecture.png similarity index 100% rename from docs/img/druid-architecture.png rename to docs/assets/druid-architecture.png diff --git a/docs/img/druid-column-types.png b/docs/assets/druid-column-types.png similarity index 100% rename from docs/img/druid-column-types.png rename to docs/assets/druid-column-types.png diff --git a/docs/img/druid-dataflow-2x.png b/docs/assets/druid-dataflow-2x.png similarity index 100% rename from docs/img/druid-dataflow-2x.png rename to docs/assets/druid-dataflow-2x.png diff --git a/docs/img/druid-dataflow-3.png b/docs/assets/druid-dataflow-3.png similarity index 100% rename from docs/img/druid-dataflow-3.png rename to docs/assets/druid-dataflow-3.png diff --git a/docs/img/druid-manage-1.png b/docs/assets/druid-manage-1.png similarity index 100% rename from docs/img/druid-manage-1.png rename to docs/assets/druid-manage-1.png diff --git a/docs/img/druid-production.png b/docs/assets/druid-production.png similarity index 100% rename from docs/img/druid-production.png rename to docs/assets/druid-production.png diff --git a/docs/img/druid-timeline.png b/docs/assets/druid-timeline.png similarity index 100% rename from docs/img/druid-timeline.png rename to docs/assets/druid-timeline.png diff --git a/docs/img/indexing_service.png b/docs/assets/indexing_service.png similarity index 100% rename from docs/img/indexing_service.png rename to docs/assets/indexing_service.png diff --git a/docs/img/segmentPropagation.png b/docs/assets/segmentPropagation.png similarity index 100% rename from docs/img/segmentPropagation.png rename to docs/assets/segmentPropagation.png diff --git a/docs/content/tutorials/img/tutorial-batch-data-loader-01.png b/docs/assets/tutorial-batch-data-loader-01.png similarity index 100% rename from docs/content/tutorials/img/tutorial-batch-data-loader-01.png rename to docs/assets/tutorial-batch-data-loader-01.png diff --git a/docs/content/tutorials/img/tutorial-batch-data-loader-02.png b/docs/assets/tutorial-batch-data-loader-02.png similarity index 100% rename from docs/content/tutorials/img/tutorial-batch-data-loader-02.png rename to docs/assets/tutorial-batch-data-loader-02.png diff --git a/docs/content/tutorials/img/tutorial-batch-data-loader-03.png b/docs/assets/tutorial-batch-data-loader-03.png similarity index 100% rename from docs/content/tutorials/img/tutorial-batch-data-loader-03.png rename to docs/assets/tutorial-batch-data-loader-03.png diff --git a/docs/content/tutorials/img/tutorial-batch-data-loader-04.png b/docs/assets/tutorial-batch-data-loader-04.png similarity index 100% rename from docs/content/tutorials/img/tutorial-batch-data-loader-04.png rename to docs/assets/tutorial-batch-data-loader-04.png diff --git a/docs/content/tutorials/img/tutorial-batch-data-loader-05.png b/docs/assets/tutorial-batch-data-loader-05.png similarity index 100% rename from docs/content/tutorials/img/tutorial-batch-data-loader-05.png rename to docs/assets/tutorial-batch-data-loader-05.png diff --git a/docs/content/tutorials/img/tutorial-batch-data-loader-06.png b/docs/assets/tutorial-batch-data-loader-06.png similarity index 100% rename from docs/content/tutorials/img/tutorial-batch-data-loader-06.png rename to docs/assets/tutorial-batch-data-loader-06.png diff --git a/docs/content/tutorials/img/tutorial-batch-data-loader-07.png b/docs/assets/tutorial-batch-data-loader-07.png similarity index 100% rename from docs/content/tutorials/img/tutorial-batch-data-loader-07.png rename to docs/assets/tutorial-batch-data-loader-07.png diff --git a/docs/content/tutorials/img/tutorial-batch-data-loader-08.png b/docs/assets/tutorial-batch-data-loader-08.png similarity index 100% rename from docs/content/tutorials/img/tutorial-batch-data-loader-08.png rename to docs/assets/tutorial-batch-data-loader-08.png diff --git a/docs/content/tutorials/img/tutorial-batch-data-loader-09.png b/docs/assets/tutorial-batch-data-loader-09.png similarity index 100% rename from docs/content/tutorials/img/tutorial-batch-data-loader-09.png rename to docs/assets/tutorial-batch-data-loader-09.png diff --git a/docs/content/tutorials/img/tutorial-batch-data-loader-10.png b/docs/assets/tutorial-batch-data-loader-10.png similarity index 100% rename from docs/content/tutorials/img/tutorial-batch-data-loader-10.png rename to docs/assets/tutorial-batch-data-loader-10.png diff --git a/docs/content/tutorials/img/tutorial-batch-data-loader-11.png b/docs/assets/tutorial-batch-data-loader-11.png similarity index 100% rename from docs/content/tutorials/img/tutorial-batch-data-loader-11.png rename to docs/assets/tutorial-batch-data-loader-11.png diff --git a/docs/content/tutorials/img/tutorial-batch-submit-task-01.png b/docs/assets/tutorial-batch-submit-task-01.png similarity index 100% rename from docs/content/tutorials/img/tutorial-batch-submit-task-01.png rename to docs/assets/tutorial-batch-submit-task-01.png diff --git a/docs/content/tutorials/img/tutorial-batch-submit-task-02.png b/docs/assets/tutorial-batch-submit-task-02.png similarity index 100% rename from docs/content/tutorials/img/tutorial-batch-submit-task-02.png rename to docs/assets/tutorial-batch-submit-task-02.png diff --git a/docs/content/tutorials/img/tutorial-compaction-01.png b/docs/assets/tutorial-compaction-01.png similarity index 100% rename from docs/content/tutorials/img/tutorial-compaction-01.png rename to docs/assets/tutorial-compaction-01.png diff --git a/docs/content/tutorials/img/tutorial-compaction-02.png b/docs/assets/tutorial-compaction-02.png similarity index 100% rename from docs/content/tutorials/img/tutorial-compaction-02.png rename to docs/assets/tutorial-compaction-02.png diff --git a/docs/content/tutorials/img/tutorial-compaction-03.png b/docs/assets/tutorial-compaction-03.png similarity index 100% rename from docs/content/tutorials/img/tutorial-compaction-03.png rename to docs/assets/tutorial-compaction-03.png diff --git a/docs/content/tutorials/img/tutorial-compaction-04.png b/docs/assets/tutorial-compaction-04.png similarity index 100% rename from docs/content/tutorials/img/tutorial-compaction-04.png rename to docs/assets/tutorial-compaction-04.png diff --git a/docs/content/tutorials/img/tutorial-compaction-05.png b/docs/assets/tutorial-compaction-05.png similarity index 100% rename from docs/content/tutorials/img/tutorial-compaction-05.png rename to docs/assets/tutorial-compaction-05.png diff --git a/docs/content/tutorials/img/tutorial-compaction-06.png b/docs/assets/tutorial-compaction-06.png similarity index 100% rename from docs/content/tutorials/img/tutorial-compaction-06.png rename to docs/assets/tutorial-compaction-06.png diff --git a/docs/content/tutorials/img/tutorial-compaction-07.png b/docs/assets/tutorial-compaction-07.png similarity index 100% rename from docs/content/tutorials/img/tutorial-compaction-07.png rename to docs/assets/tutorial-compaction-07.png diff --git a/docs/content/tutorials/img/tutorial-compaction-08.png b/docs/assets/tutorial-compaction-08.png similarity index 100% rename from docs/content/tutorials/img/tutorial-compaction-08.png rename to docs/assets/tutorial-compaction-08.png diff --git a/docs/content/tutorials/img/tutorial-deletion-01.png b/docs/assets/tutorial-deletion-01.png similarity index 100% rename from docs/content/tutorials/img/tutorial-deletion-01.png rename to docs/assets/tutorial-deletion-01.png diff --git a/docs/content/tutorials/img/tutorial-deletion-02.png b/docs/assets/tutorial-deletion-02.png similarity index 100% rename from docs/content/tutorials/img/tutorial-deletion-02.png rename to docs/assets/tutorial-deletion-02.png diff --git a/docs/content/tutorials/img/tutorial-deletion-03.png b/docs/assets/tutorial-deletion-03.png similarity index 100% rename from docs/content/tutorials/img/tutorial-deletion-03.png rename to docs/assets/tutorial-deletion-03.png diff --git a/docs/content/tutorials/img/tutorial-kafka-01.png b/docs/assets/tutorial-kafka-01.png similarity index 100% rename from docs/content/tutorials/img/tutorial-kafka-01.png rename to docs/assets/tutorial-kafka-01.png diff --git a/docs/content/tutorials/img/tutorial-kafka-02.png b/docs/assets/tutorial-kafka-02.png similarity index 100% rename from docs/content/tutorials/img/tutorial-kafka-02.png rename to docs/assets/tutorial-kafka-02.png diff --git a/docs/content/tutorials/img/tutorial-query-01.png b/docs/assets/tutorial-query-01.png similarity index 100% rename from docs/content/tutorials/img/tutorial-query-01.png rename to docs/assets/tutorial-query-01.png diff --git a/docs/content/tutorials/img/tutorial-query-02.png b/docs/assets/tutorial-query-02.png similarity index 100% rename from docs/content/tutorials/img/tutorial-query-02.png rename to docs/assets/tutorial-query-02.png diff --git a/docs/content/tutorials/img/tutorial-query-03.png b/docs/assets/tutorial-query-03.png similarity index 100% rename from docs/content/tutorials/img/tutorial-query-03.png rename to docs/assets/tutorial-query-03.png diff --git a/docs/content/tutorials/img/tutorial-query-04.png b/docs/assets/tutorial-query-04.png similarity index 100% rename from docs/content/tutorials/img/tutorial-query-04.png rename to docs/assets/tutorial-query-04.png diff --git a/docs/content/tutorials/img/tutorial-query-05.png b/docs/assets/tutorial-query-05.png similarity index 100% rename from docs/content/tutorials/img/tutorial-query-05.png rename to docs/assets/tutorial-query-05.png diff --git a/docs/content/tutorials/img/tutorial-query-06.png b/docs/assets/tutorial-query-06.png similarity index 100% rename from docs/content/tutorials/img/tutorial-query-06.png rename to docs/assets/tutorial-query-06.png diff --git a/docs/content/tutorials/img/tutorial-query-07.png b/docs/assets/tutorial-query-07.png similarity index 100% rename from docs/content/tutorials/img/tutorial-query-07.png rename to docs/assets/tutorial-query-07.png diff --git a/docs/content/tutorials/img/tutorial-quickstart-01.png b/docs/assets/tutorial-quickstart-01.png similarity index 100% rename from docs/content/tutorials/img/tutorial-quickstart-01.png rename to docs/assets/tutorial-quickstart-01.png diff --git a/docs/content/tutorials/img/tutorial-retention-00.png b/docs/assets/tutorial-retention-00.png similarity index 100% rename from docs/content/tutorials/img/tutorial-retention-00.png rename to docs/assets/tutorial-retention-00.png diff --git a/docs/content/tutorials/img/tutorial-retention-01.png b/docs/assets/tutorial-retention-01.png similarity index 100% rename from docs/content/tutorials/img/tutorial-retention-01.png rename to docs/assets/tutorial-retention-01.png diff --git a/docs/content/tutorials/img/tutorial-retention-02.png b/docs/assets/tutorial-retention-02.png similarity index 100% rename from docs/content/tutorials/img/tutorial-retention-02.png rename to docs/assets/tutorial-retention-02.png diff --git a/docs/content/tutorials/img/tutorial-retention-03.png b/docs/assets/tutorial-retention-03.png similarity index 100% rename from docs/content/tutorials/img/tutorial-retention-03.png rename to docs/assets/tutorial-retention-03.png diff --git a/docs/content/tutorials/img/tutorial-retention-04.png b/docs/assets/tutorial-retention-04.png similarity index 100% rename from docs/content/tutorials/img/tutorial-retention-04.png rename to docs/assets/tutorial-retention-04.png diff --git a/docs/content/tutorials/img/tutorial-retention-05.png b/docs/assets/tutorial-retention-05.png similarity index 100% rename from docs/content/tutorials/img/tutorial-retention-05.png rename to docs/assets/tutorial-retention-05.png diff --git a/docs/content/tutorials/img/tutorial-retention-06.png b/docs/assets/tutorial-retention-06.png similarity index 100% rename from docs/content/tutorials/img/tutorial-retention-06.png rename to docs/assets/tutorial-retention-06.png diff --git a/docs/content/operations/img/01-home-view.png b/docs/assets/web-console-01-home-view.png similarity index 100% rename from docs/content/operations/img/01-home-view.png rename to docs/assets/web-console-01-home-view.png diff --git a/docs/content/operations/img/02-data-loader-1.png b/docs/assets/web-console-02-data-loader-1.png similarity index 100% rename from docs/content/operations/img/02-data-loader-1.png rename to docs/assets/web-console-02-data-loader-1.png diff --git a/docs/content/operations/img/03-data-loader-2.png b/docs/assets/web-console-03-data-loader-2.png similarity index 100% rename from docs/content/operations/img/03-data-loader-2.png rename to docs/assets/web-console-03-data-loader-2.png diff --git a/docs/content/operations/img/04-datasources.png b/docs/assets/web-console-04-datasources.png similarity index 100% rename from docs/content/operations/img/04-datasources.png rename to docs/assets/web-console-04-datasources.png diff --git a/docs/content/operations/img/05-retention.png b/docs/assets/web-console-05-retention.png similarity index 100% rename from docs/content/operations/img/05-retention.png rename to docs/assets/web-console-05-retention.png diff --git a/docs/content/operations/img/06-segments.png b/docs/assets/web-console-06-segments.png similarity index 100% rename from docs/content/operations/img/06-segments.png rename to docs/assets/web-console-06-segments.png diff --git a/docs/content/operations/img/07-supervisors.png b/docs/assets/web-console-07-supervisors.png similarity index 100% rename from docs/content/operations/img/07-supervisors.png rename to docs/assets/web-console-07-supervisors.png diff --git a/docs/content/operations/img/08-tasks.png b/docs/assets/web-console-08-tasks.png similarity index 100% rename from docs/content/operations/img/08-tasks.png rename to docs/assets/web-console-08-tasks.png diff --git a/docs/content/operations/img/09-task-status.png b/docs/assets/web-console-09-task-status.png similarity index 100% rename from docs/content/operations/img/09-task-status.png rename to docs/assets/web-console-09-task-status.png diff --git a/docs/content/operations/img/10-servers.png b/docs/assets/web-console-10-servers.png similarity index 100% rename from docs/content/operations/img/10-servers.png rename to docs/assets/web-console-10-servers.png diff --git a/docs/content/operations/img/11-query-sql.png b/docs/assets/web-console-11-query-sql.png similarity index 100% rename from docs/content/operations/img/11-query-sql.png rename to docs/assets/web-console-11-query-sql.png diff --git a/docs/content/operations/img/12-query-rune.png b/docs/assets/web-console-12-query-rune.png similarity index 100% rename from docs/content/operations/img/12-query-rune.png rename to docs/assets/web-console-12-query-rune.png diff --git a/docs/content/operations/img/13-lookups.png b/docs/assets/web-console-13-lookups.png similarity index 100% rename from docs/content/operations/img/13-lookups.png rename to docs/assets/web-console-13-lookups.png diff --git a/docs/content/comparisons/druid-vs-elasticsearch.md b/docs/comparisons/druid-vs-elasticsearch.md similarity index 81% rename from docs/content/comparisons/druid-vs-elasticsearch.md rename to docs/comparisons/druid-vs-elasticsearch.md index ada48f3eb255..82752aa7addb 100644 --- a/docs/content/comparisons/druid-vs-elasticsearch.md +++ b/docs/comparisons/druid-vs-elasticsearch.md @@ -1,6 +1,6 @@ --- -layout: doc_page -title: "Apache Druid (incubating) vs Elasticsearch" +id: druid-vs-elasticsearch +title: "Apache Druid vs Elasticsearch" --- -# Apache Druid (incubating) vs Elasticsearch We are not experts on search systems, if anything is incorrect about our portrayal, please let us know on the mailing list or via some other means. -Elasticsearch is a search systems based on Apache Lucene. It provides full text search for schema-free documents -and provides access to raw event level data. Elasticsearch is increasingly adding more support for analytics and aggregations. -[Some members of the community](https://groups.google.com/forum/#!msg/druid-development/nlpwTHNclj8/sOuWlKOzPpYJ) have pointed out +Elasticsearch is a search system based on Apache Lucene. It provides full text search for schema-free documents +and provides access to raw event level data. Elasticsearch is increasingly adding more support for analytics and aggregations. +[Some members of the community](https://groups.google.com/forum/#!msg/druid-development/nlpwTHNclj8/sOuWlKOzPpYJ) have pointed out the resource requirements for data ingestion and aggregation in Elasticsearch is much higher than those of Druid. -Elasticsearch also does not support data summarization/roll-up at ingestion time, which can compact the data that needs to be +Elasticsearch also does not support data summarization/roll-up at ingestion time, which can compact the data that needs to be stored up to 100x with real-world data sets. This leads to Elasticsearch having greater storage requirements. -Druid focuses on OLAP work flows. Druid is optimized for high performance (fast aggregation and ingestion) at low cost, -and supports a wide range of analytic operations. Druid has some basic search support for structured event data, but does not support -full text search. Druid also does not support completely unstructured data. Measures must be defined in a Druid schema such that +Druid focuses on OLAP work flows. Druid is optimized for high performance (fast aggregation and ingestion) at low cost, +and supports a wide range of analytic operations. Druid has some basic search support for structured event data, but does not support +full text search. Druid also does not support completely unstructured data. Measures must be defined in a Druid schema such that summarization/roll-up can be done. diff --git a/docs/content/comparisons/druid-vs-key-value.md b/docs/comparisons/druid-vs-key-value.md similarity index 78% rename from docs/content/comparisons/druid-vs-key-value.md rename to docs/comparisons/druid-vs-key-value.md index 1e655be5bc92..57f3dec66da0 100644 --- a/docs/content/comparisons/druid-vs-key-value.md +++ b/docs/comparisons/druid-vs-key-value.md @@ -1,6 +1,6 @@ --- -layout: doc_page -title: "Apache Druid (incubating) vs. Key/Value Stores (HBase/Cassandra/OpenTSDB)" +id: druid-vs-key-value +title: "Apache Druid vs. Key/Value Stores (HBase/Cassandra/OpenTSDB)" --- -# Apache Druid (incubating) vs. Key/Value Stores (HBase/Cassandra/OpenTSDB) -Druid is highly optimized for scans and aggregations, it supports arbitrarily deep drill downs into data sets. This same functionality +Druid is highly optimized for scans and aggregations, it supports arbitrarily deep drill downs into data sets. This same functionality is supported in key/value stores in 2 ways: 1. Pre-compute all permutations of possible user queries 2. Range scans on event data -When pre-computing results, the key is the exact parameters of the query, and the value is the result of the query. -The queries return extremely quickly, but at the cost of flexibility, as ad-hoc exploratory queries are not possible with -pre-computing every possible query permutation. Pre-computing all permutations of all ad-hoc queries leads to result sets -that grow exponentially with the number of columns of a data set, and pre-computing queries for complex real-world data sets +When pre-computing results, the key is the exact parameters of the query, and the value is the result of the query. +The queries return extremely quickly, but at the cost of flexibility, as ad-hoc exploratory queries are not possible with +pre-computing every possible query permutation. Pre-computing all permutations of all ad-hoc queries leads to result sets +that grow exponentially with the number of columns of a data set, and pre-computing queries for complex real-world data sets can require hours of pre-processing time. -The other approach to using key/value stores for aggregations to use the dimensions of an event as the key and the event measures as the value. -Aggregations are done by issuing range scans on this data. Timeseries specific databases such as OpenTSDB use this approach. -One of the limitations here is that the key/value storage model does not have indexes for any kind of filtering other than prefix ranges, -which can be used to filter a query down to a metric and time range, but cannot resolve complex predicates to narrow the exact data to scan. -When the number of rows to scan gets large, this limitation can greatly reduce performance. It is also harder to achieve good +The other approach to using key/value stores for aggregations to use the dimensions of an event as the key and the event measures as the value. +Aggregations are done by issuing range scans on this data. Timeseries specific databases such as OpenTSDB use this approach. +One of the limitations here is that the key/value storage model does not have indexes for any kind of filtering other than prefix ranges, +which can be used to filter a query down to a metric and time range, but cannot resolve complex predicates to narrow the exact data to scan. +When the number of rows to scan gets large, this limitation can greatly reduce performance. It is also harder to achieve good locality with key/value stores because most don’t support pushing down aggregates to the storage layer. -For arbitrary exploration of data (flexible data filtering), Druid's custom column format enables ad-hoc queries without pre-computation. The format +For arbitrary exploration of data (flexible data filtering), Druid's custom column format enables ad-hoc queries without pre-computation. The format also enables fast scans on columns, which is important for good aggregation performance. diff --git a/docs/content/comparisons/druid-vs-kudu.md b/docs/comparisons/druid-vs-kudu.md similarity index 76% rename from docs/content/comparisons/druid-vs-kudu.md rename to docs/comparisons/druid-vs-kudu.md index 3b27d5bbe8d1..b0ff9324a2cf 100644 --- a/docs/content/comparisons/druid-vs-kudu.md +++ b/docs/comparisons/druid-vs-kudu.md @@ -1,6 +1,6 @@ --- -layout: doc_page -title: "Apache Druid (incubating) vs Kudu" +id: druid-vs-kudu +title: "Apache Druid vs Kudu" --- -# Apache Druid (incubating) vs Apache Kudu -Kudu's storage format enables single row updates, whereas updates to existing Druid segments requires recreating the segment, so theoretically -the process for updating old values should be higher latency in Druid. However, the requirements in Kudu for maintaining extra head space to store -updates as well as organizing data by id instead of time has the potential to introduce some extra latency and accessing -of data that is not need to answer a query at query time. +Kudu's storage format enables single row updates, whereas updates to existing Druid segments requires recreating the segment, so theoretically +the process for updating old values should be higher latency in Druid. However, the requirements in Kudu for maintaining extra head space to store +updates as well as organizing data by id instead of time has the potential to introduce some extra latency and accessing +of data that is not need to answer a query at query time. -Druid summarizes/rollups up data at ingestion time, which in practice reduces the raw data that needs to be -stored significantly (up to 40 times on average), and increases performance of scanning raw data significantly. -Druid segments also contain bitmap indexes for fast filtering, which Kudu does not currently support. -Druid's segment architecture is heavily geared towards fast aggregates and filters, and for OLAP workflows. Appends are very -fast in Druid, whereas updates of older data is higher latency. This is by design as the data Druid is good for is typically event data, -and does not need to be updated too frequently. Kudu supports arbitrary primary keys with uniqueness constraints, and -efficient lookup by ranges of those keys. Kudu chooses not to include the execution engine, but supports sufficient -operations so as to allow node-local processing from the execution engines. This means that Kudu can support multiple frameworks on the same data (eg MR, Spark, and SQL). +Druid summarizes/rollups up data at ingestion time, which in practice reduces the raw data that needs to be +stored significantly (up to 40 times on average), and increases performance of scanning raw data significantly. +Druid segments also contain bitmap indexes for fast filtering, which Kudu does not currently support. +Druid's segment architecture is heavily geared towards fast aggregates and filters, and for OLAP workflows. Appends are very +fast in Druid, whereas updates of older data is higher latency. This is by design as the data Druid is good for is typically event data, +and does not need to be updated too frequently. Kudu supports arbitrary primary keys with uniqueness constraints, and +efficient lookup by ranges of those keys. Kudu chooses not to include the execution engine, but supports sufficient +operations so as to allow node-local processing from the execution engines. This means that Kudu can support multiple frameworks on the same data (eg MR, Spark, and SQL). Druid includes its own query layer that allows it to push down aggregations and computations directly to data processes for faster query processing. diff --git a/docs/content/comparisons/druid-vs-redshift.md b/docs/comparisons/druid-vs-redshift.md similarity index 97% rename from docs/content/comparisons/druid-vs-redshift.md rename to docs/comparisons/druid-vs-redshift.md index ce741af74317..3e2c7b9ead7c 100644 --- a/docs/content/comparisons/druid-vs-redshift.md +++ b/docs/comparisons/druid-vs-redshift.md @@ -1,6 +1,6 @@ --- -layout: doc_page -title: "Apache Druid (incubating) vs Redshift" +id: druid-vs-redshift +title: "Apache Druid vs Redshift" --- -# Apache Druid (incubating) vs Redshift ### How does Druid compare to Redshift? diff --git a/docs/content/comparisons/druid-vs-spark.md b/docs/comparisons/druid-vs-spark.md similarity index 87% rename from docs/content/comparisons/druid-vs-spark.md rename to docs/comparisons/druid-vs-spark.md index 82fe78c5938a..5fd600916360 100644 --- a/docs/content/comparisons/druid-vs-spark.md +++ b/docs/comparisons/druid-vs-spark.md @@ -1,6 +1,6 @@ --- -layout: doc_page -title: "Apache Druid (incubating) vs Spark" +id: druid-vs-spark +title: "Apache Druid vs Spark" --- -# Apache Druid (incubating) vs Apache Spark Druid and Spark are complementary solutions as Druid can be used to accelerate OLAP queries in Spark. -Spark is a general cluster computing framework initially designed around the concept of Resilient Distributed Datasets (RDDs). -RDDs enable data reuse by persisting intermediate results +Spark is a general cluster computing framework initially designed around the concept of Resilient Distributed Datasets (RDDs). +RDDs enable data reuse by persisting intermediate results in memory and enable Spark to provide fast computations for iterative algorithms. This is especially beneficial for certain work flows such as machine learning, where the same operation may be applied over and over -again until some result is converged upon. The generality of Spark makes it very suitable as an engine to process (clean or transform) data. +again until some result is converged upon. The generality of Spark makes it very suitable as an engine to process (clean or transform) data. Although Spark provides the ability to query data through Spark SQL, much like Hadoop, the query latencies are not specifically targeted to be interactive (sub-second). -Druid's focus is on extremely low latency queries, and is ideal for powering applications used by thousands of users, and where each query must -return fast enough such that users can interactively explore through data. Druid fully indexes all data, and can act as a middle layer between Spark and your application. +Druid's focus is on extremely low latency queries, and is ideal for powering applications used by thousands of users, and where each query must +return fast enough such that users can interactively explore through data. Druid fully indexes all data, and can act as a middle layer between Spark and your application. One typical setup seen in production is to process data in Spark, and load the processed data into Druid for faster access. For more information about using Druid and Spark together, including benchmarks of the two systems, please see: diff --git a/docs/content/comparisons/druid-vs-sql-on-hadoop.md b/docs/comparisons/druid-vs-sql-on-hadoop.md similarity index 96% rename from docs/content/comparisons/druid-vs-sql-on-hadoop.md rename to docs/comparisons/druid-vs-sql-on-hadoop.md index c386bb54b4c8..76665075e943 100644 --- a/docs/content/comparisons/druid-vs-sql-on-hadoop.md +++ b/docs/comparisons/druid-vs-sql-on-hadoop.md @@ -1,6 +1,6 @@ --- -layout: doc_page -title: "Apache Druid (incubating) vs SQL-on-Hadoop" +id: druid-vs-sql-on-hadoop +title: "Apache Druid vs SQL-on-Hadoop" --- -# Apache Druid (incubating) vs SQL-on-Hadoop (Impala/Drill/Spark SQL/Presto) SQL-on-Hadoop engines provide an execution engine for various data formats and data stores, and diff --git a/docs/content/configuration/index.md b/docs/configuration/index.md similarity index 92% rename from docs/content/configuration/index.md rename to docs/configuration/index.md index 4812d6692cb0..520a83b1d53c 100644 --- a/docs/content/configuration/index.md +++ b/docs/configuration/index.md @@ -1,6 +1,6 @@ --- -layout: doc_page -title: "Apache Druid (incubating) Configuration Reference" +id: index +title: "Configuration reference" --- -# Apache Druid (incubating) Configuration Reference This page documents all of the configuration properties for each Druid service type. -## Table of Contents - * [Recommended Configuration File Organization](#recommended-configuration-file-organization) - * [Common configurations](#common-configurations) - * [JVM Configuration Best Practices](#jvm-configuration-best-practices) - * [Extensions](#extensions) - * [Modules](#modules) - * [Zookeeper](#zookeeper) - * [Exhibitor](#exhibitor) - * [TLS](#tls) - * [Authentication & Authorization](#authentication-and-authorization) - * [Startup Logging](#startup-logging) - * [Request Logging](#request-logging) - * [Enabling Metrics](#enabling-metrics) - * [Emitting Metrics](#emitting-metrics) - * [Metadata Storage](#metadata-storage) - * [Deep Storage](#deep-storage) - * [Task Logging](#task-logging) - * [Overlord Discovery](#overlord-discovery) - * [Coordinator Discovery](#coordinator-discovery) - * [Announcing Segments](#announcing-segments) - * [JavaScript](#javascript) - * [Double Column Storage](#double-column-storage) - * [Master Server](#master-server) - * [Coordinator](#coordinator) - * [Static Configuration](#static-configuration) - * [Process Config](#coordinator-process-config) - * [Coordinator Operation](#coordinator-operation) - * [Segment Management](#segment-management) - * [Metadata Retrieval](#metadata-retrieval) - * [Dynamic Configuration](#dynamic-configuration) - * [Lookups](#lookups-dynamic-configuration) - * [Compaction](#compaction-dynamic-configuration) - * [Overlord](#overlord) - * [Static Configuration](#overlord-static-configuration) - * [Process Config](#overlord-process-config) - * [Overlord Operations](#overlord-operations) - * [Dynamic Configuration](#overlord-dynamic-configuration) - * [Worker Select Strategy](#worker-select-strategy) - * [Autoscaler](#autoscaler) - * [Data Server](#data-server) - * [MiddleManager & Peons](#middlemanager-and-peons) - * [Process Config](#middlemanager-process-config) - * [MiddleManager Configuration](#middlemanager-configuration) - * [Peon Processing](#peon-processing) - * [Peon Query Configuration](#peon-query-configuration) - * [Caching](#peon-caching) - * [Additional Peon Configuration](#additional-peon-configuration) - * [Historical](#historical) - * [Process Configuration](#historical-process-config) - * [General Configuration](#historical-general-configuration) - * [Query Configs](#historical-query-configs) - * [Caching](#historical-caching) - * [Query Server](#query-server) - * [Broker](#broker) - * [Process Config](#broker-process-configs) - * [Query Configuration](#broker-query-configuration) - * [SQL](#sql) - * [Caching](#broker-caching) - * [Segment Discovery](#segment-discovery) - * [Caching](#cache-configuration) - * [General Query Configuration](#general-query-configuration) - ## Recommended Configuration File Organization A recommended way of organizing Druid configuration files can be seen in the `conf` directory in the Druid package root, shown below: @@ -168,7 +105,7 @@ We recommend just setting the base ZK path and the ZK service host, but all ZK p |`druid.zk.paths.base`|Base Zookeeper path.|`/druid`| |`druid.zk.service.host`|The ZooKeeper hosts to connect to. This is a REQUIRED property and therefore a host address must be supplied.|none| |`druid.zk.service.user`|The username to authenticate with ZooKeeper. This is an optional property.|none| -|`druid.zk.service.pwd`|The [Password Provider](../operations/password-provider.html) or the string password to authenticate with ZooKeeper. This is an optional property.|none| +|`druid.zk.service.pwd`|The [Password Provider](../operations/password-provider.md) or the string password to authenticate with ZooKeeper. This is an optional property.|none| |`druid.zk.service.authScheme`|digest is the only authentication scheme supported. |digest| |`druid.zk.service.terminateDruidProcessOnConnectFail`|If set to 'true' and the connection to ZooKeeper fails (after exhausting all potential backoff retires), Druid process terminates itself with exit code 1.|false| @@ -254,14 +191,14 @@ values for the below mentioned configs among others provided by Java implementat |`druid.server.https.keyStorePath`|The file path or URL of the TLS/SSL Key store.|none|yes| |`druid.server.https.keyStoreType`|The type of the key store.|none|yes| |`druid.server.https.certAlias`|Alias of TLS/SSL certificate for the connector.|none|yes| -|`druid.server.https.keyStorePassword`|The [Password Provider](../operations/password-provider.html) or String password for the Key Store.|none|yes| +|`druid.server.https.keyStorePassword`|The [Password Provider](../operations/password-provider.md) or String password for the Key Store.|none|yes| Following table contains non-mandatory advanced configuration options, use caution. |Property|Description|Default|Required| |--------|-----------|-------|--------| |`druid.server.https.keyManagerFactoryAlgorithm`|Algorithm to use for creating KeyManager, more details [here](https://docs.oracle.com/javase/7/docs/technotes/guides/security/jsse/JSSERefGuide.html#KeyManager).|`javax.net.ssl.KeyManagerFactory.getDefaultAlgorithm()`|no| -|`druid.server.https.keyManagerPassword`|The [Password Provider](../operations/password-provider.html) or String password for the Key Manager.|none|no| +|`druid.server.https.keyManagerPassword`|The [Password Provider](../operations/password-provider.md) or String password for the Key Manager.|none|no| |`druid.server.https.includeCipherSuites`|List of cipher suite names to include. You can either use the exact cipher suite name or a regular expression.|Jetty's default include cipher list|no| |`druid.server.https.excludeCipherSuites`|List of cipher suite names to exclude. You can either use the exact cipher suite name or a regular expression.|Jetty's default exclude cipher list|no| |`druid.server.https.includeProtocols`|List of exact protocols names to include.|Jetty's default include protocol list|no| @@ -278,7 +215,7 @@ These properties apply to the SSLContext that will be provided to the internal H |`druid.client.https.trustStoreType`|The type of the key store where trusted root certificates are stored.|`java.security.KeyStore.getDefaultType()`|no| |`druid.client.https.trustStorePath`|The file path or URL of the TLS/SSL Key store where trusted root certificates are stored.|none|yes| |`druid.client.https.trustStoreAlgorithm`|Algorithm to be used by TrustManager to validate certificate chains|`javax.net.ssl.TrustManagerFactory.getDefaultAlgorithm()`|no| -|`druid.client.https.trustStorePassword`|The [Password Provider](../operations/password-provider.html) or String password for the Trust Store.|none|yes| +|`druid.client.https.trustStorePassword`|The [Password Provider](../operations/password-provider.md) or String password for the Trust Store.|none|yes| This [document](http://docs.oracle.com/javase/8/docs/technotes/guides/security/StandardNames.html) lists all the possible values for the above mentioned configs among others provided by Java implementation. @@ -293,7 +230,7 @@ values for the above mentioned configs among others provided by Java implementat |`druid.auth.unsecuredPaths`| List of Strings|List of paths for which security checks will not be performed. All requests to these paths will be allowed.|[]|no| |`druid.auth.allowUnauthenticatedHttpOptions`|Boolean|If true, skip authentication checks for HTTP OPTIONS requests. This is needed for certain use cases, such as supporting CORS pre-flight requests. Note that disabling authentication checks for OPTIONS requests will allow unauthenticated users to determine what Druid endpoints are valid (by checking if the OPTIONS request returns a 200 instead of 404), so enabling this option may reveal information about server configuration, including information about what extensions are loaded (if those extensions add endpoints).|false|no| -For more information, please see [Authentication and Authorization](../design/auth.html). +For more information, please see [Authentication and Authorization](../design/auth.md). For configuration options for specific auth extensions, please refer to the extension documentation. @@ -316,7 +253,7 @@ All processes that can serve queries can also log the query requests they see. B |--------|-----------|-------| |`druid.request.logging.type`|Choices: noop, file, emitter, slf4j, filtered, composing, switching. How to log every query request.|[required to configure request logging]| -Note that, you can enable sending all the HTTP requests to log by setting "org.apache.druid.jetty.RequestLog" to DEBUG level. See [Logging](../configuration/logging.html) +Note that, you can enable sending all the HTTP requests to log by setting "org.apache.druid.jetty.RequestLog" to DEBUG level. See [Logging](../configuration/logging.md) #### File Request Logging @@ -424,7 +361,7 @@ The following monitors are available: ### Emitting Metrics -The Druid servers [emit various metrics](../operations/metrics.html) and alerts via something we call an Emitter. There are three emitter implementations included with the code, a "noop" emitter (the default if none is specified), one that just logs to log4j ("logging"), and one that does POSTs of JSON events to a server ("http"). The properties for using the logging emitter are described below. +The Druid servers [emit various metrics](../operations/metrics.md) and alerts via something we call an Emitter. There are three emitter implementations included with the code, a "noop" emitter (the default if none is specified), one that just logs to log4j ("logging"), and one that does POSTs of JSON events to a server ("http"). The properties for using the logging emitter are described below. |Property|Description|Default| |--------|-----------|-------| @@ -453,7 +390,9 @@ The Druid servers [emit various metrics](../operations/metrics.html) and alerts #### Http Emitter Module TLS Overrides -When emitting events to a TLS-enabled receiver, the Http Emitter will by default use an SSLContext obtained via the process described at [Druid's internal communication over TLS](../operations/tls-support.html#druids-internal-communication-over-tls), i.e., the same SSLContext that would be used for internal communications between Druid processes. +When emitting events to a TLS-enabled receiver, the Http Emitter will by default use an SSLContext obtained via the +process described at [Druid's internal communication over TLS](../operations/tls-support.html), i.e., the same +SSLContext that would be used for internal communications between Druid processes. In some use cases it may be desirable to have the Http Emitter use its own separate truststore configuration. For example, there may be organizational policies that prevent the TLS-enabled metrics receiver's certificate from being added to the same truststore used by Druid's internal HTTP client. @@ -465,7 +404,7 @@ The following properties allow the Http Emitter to use its own truststore config |`druid.emitter.http.ssl.trustStorePath`|The file path or URL of the TLS/SSL Key store where trusted root certificates are stored. If this is unspecified, the Http Emitter will use the same SSLContext as Druid's internal HTTP client, as described in the beginning of this section, and all other properties below are ignored.|null| |`druid.emitter.http.ssl.trustStoreType`|The type of the key store where trusted root certificates are stored.|`java.security.KeyStore.getDefaultType()`| |`druid.emitter.http.ssl.trustStoreAlgorithm`|Algorithm to be used by TrustManager to validate certificate chains|`javax.net.ssl.TrustManagerFactory.getDefaultAlgorithm()`| -|`druid.emitter.http.ssl.trustStorePassword`|The [Password Provider](../operations/password-provider.html) or String password for the Trust Store.|none| +|`druid.emitter.http.ssl.trustStorePassword`|The [Password Provider](../operations/password-provider.md) or String password for the Trust Store.|none| |`druid.emitter.http.ssl.protocol`|TLS protocol to use.|"TLSv1.2"| #### Parametrized Http Emitter Module @@ -488,22 +427,22 @@ The additional configs are: #### Graphite Emitter -To use graphite as emitter set `druid.emitter=graphite`. For configuration details please follow this [link](../development/extensions-contrib/graphite.html). +To use graphite as emitter set `druid.emitter=graphite`. For configuration details please follow this [link](../development/extensions-contrib/graphite.md). -### Metadata Storage +### Metadata storage -These properties specify the jdbc connection and other configuration around the metadata storage. The only processes that connect to the metadata storage with these properties are the [Coordinator](../design/coordinator.html) and [Overlord](../design/overlord.html). +These properties specify the jdbc connection and other configuration around the metadata storage. The only processes that connect to the metadata storage with these properties are the [Coordinator](../design/coordinator.md) and [Overlord](../design/overlord.md). |Property|Description|Default| |--------|-----------|-------| |`druid.metadata.storage.type`|The type of metadata storage to use. Choose from "mysql", "postgresql", or "derby".|derby| |`druid.metadata.storage.connector.connectURI`|The jdbc uri for the database to connect to|none| |`druid.metadata.storage.connector.user`|The username to connect with.|none| -|`druid.metadata.storage.connector.password`|The [Password Provider](../operations/password-provider.html) or String password used to connect with.|none| +|`druid.metadata.storage.connector.password`|The [Password Provider](../operations/password-provider.md) or String password used to connect with.|none| |`druid.metadata.storage.connector.createTables`|If Druid requires a table and it doesn't exist, create it?|true| |`druid.metadata.storage.tables.base`|The base name for tables.|druid| -|`druid.metadata.storage.tables.dataSource`|The table to use to look for dataSources which created by [Kafka Indexing Service](../development/extensions-core/kafka-ingestion.html).|druid_dataSource| +|`druid.metadata.storage.tables.dataSource`|The table to use to look for dataSources which created by [Kafka Indexing Service](../development/extensions-core/kafka-ingestion.md).|druid_dataSource| |`druid.metadata.storage.tables.pendingSegments`|The table to use to look for pending segments.|druid_pendingSegments| |`druid.metadata.storage.tables.segments`|The table to use to look for segments.|druid_segments| |`druid.metadata.storage.tables.rules`|The table to use to look for segment load/drop rules.|druid_rules| @@ -514,9 +453,9 @@ These properties specify the jdbc connection and other configuration around the |`druid.metadata.storage.tables.supervisors`|Used by the indexing service to store supervisor configurations.|druid_supervisors| |`druid.metadata.storage.tables.audit`|The table to use for audit history of configuration changes e.g. Coordinator rules.|druid_audit| -### Deep Storage +### Deep storage -The configurations concern how to push and pull [Segments](../design/segments.html) from deep storage. +The configurations concern how to push and pull [Segments](../design/segments.md) from deep storage. |Property|Description|Default| |--------|-----------|-------| @@ -537,7 +476,7 @@ This deep storage doesn't do anything. There are no configs. #### S3 Deep Storage This deep storage is used to interface with Amazon's S3. Note that the `druid-s3-extensions` extension must be loaded. -The below table shows some important configurations for S3. See [S3 Deep Storage](../development/extensions-core/s3.html) for full configurations. +The below table shows some important configurations for S3. See [S3 Deep Storage](../development/extensions-core/s3.md) for full configurations. |Property|Description|Default| |--------|-----------|-------| @@ -635,7 +574,7 @@ Store task logs in HDFS. Note that the `druid-hdfs-storage` extension must be lo ### Overlord Discovery -This config is used to find the [Overlord](../design/overlord.html) using Curator service discovery. Only required if you are actually running an Overlord. +This config is used to find the [Overlord](../design/overlord.md) using Curator service discovery. Only required if you are actually running an Overlord. |Property|Description|Default| |--------|-----------|-------| @@ -644,7 +583,7 @@ This config is used to find the [Overlord](../design/overlord.html) using Curato ### Coordinator Discovery -This config is used to find the [Coordinator](../design/coordinator.html) using Curator service discovery. This config is used by the realtime indexing processes to get information about the segments loaded in the cluster. +This config is used to find the [Coordinator](../design/coordinator.md) using Curator service discovery. This config is used by the realtime indexing processes to get information about the segments loaded in the cluster. |Property|Description|Default| |--------|-----------|-------| @@ -675,13 +614,11 @@ the following properties. |--------|-----------|-------| |`druid.javascript.enabled`|Set to "true" to enable JavaScript functionality. This affects the JavaScript parser, filter, extractionFn, aggregator, post-aggregator, router strategy, and worker selection strategy.|false| -
-JavaScript-based functionality is disabled by default. Please refer to the Druid JavaScript programming guide for guidelines about using Druid's JavaScript functionality, including instructions on how to enable it. -
+> JavaScript-based functionality is disabled by default. Please refer to the Druid [JavaScript programming guide](../development/javascript.md) for guidelines about using Druid's JavaScript functionality, including instructions on how to enable it. ### Double Column storage -Prior to version 0.13.0 Druid's storage layer used a 32-bit float representation to store columns created by the +Prior to version 0.13.0 Druid's storage layer used a 32-bit float representation to store columns created by the doubleSum, doubleMin, and doubleMax aggregators at indexing time. Starting from version 0.13.0 the default will be 64-bit floats for Double columns. Using 64-bit representation for double column will lead to avoid precesion loss at the cost of doubling the storage size of such columns. @@ -699,7 +636,7 @@ This section contains the configuration options for the processes that reside on ### Coordinator -For general Coordinator Process information, see [here](../design/coordinator.html). +For general Coordinator Process information, see [here](../design/coordinator.md). #### Static Configuration @@ -712,7 +649,7 @@ These Coordinator static configurations can be defined in the `coordinator/runti |`druid.host`|The host for the current process. This is used to advertise the current processes location as reachable from another process and should generally be specified such that `http://${druid.host}/` could actually talk to this process|InetAddress.getLocalHost().getCanonicalHostName()| |`druid.bindOnHost`|Indicating whether the process's internal jetty server bind on `druid.host`. Default is false, which means binding to all interfaces.|false| |`druid.plaintextPort`|This is the port to actually listen on; unless port mapping is used, this will be the same port as is on `druid.host`|8081| -|`druid.tlsPort`|TLS port for HTTPS connector, if [druid.enableTlsPort](../operations/tls-support.html) is set then this config will be used. If `druid.host` contains port then that port will be ignored. This should be a non-negative Integer.|8281| +|`druid.tlsPort`|TLS port for HTTPS connector, if [druid.enableTlsPort](../operations/tls-support.md) is set then this config will be used. If `druid.host` contains port then that port will be ignored. This should be a non-negative Integer.|8281| |`druid.service`|The name of the service. This is used as a dimension when emitting metrics and alerts to differentiate between the various services|druid/coordinator| ##### Coordinator Operation @@ -758,7 +695,7 @@ These Coordinator static configurations can be defined in the `coordinator/runti #### Dynamic Configuration -The Coordinator has dynamic configuration to change certain behaviour on the fly. The Coordinator uses a JSON spec object from the Druid [metadata storage](../dependencies/metadata-storage.html) config table. This object is detailed below: +The Coordinator has dynamic configuration to change certain behaviour on the fly. The Coordinator uses a JSON spec object from the Druid [metadata storage](../dependencies/metadata-storage.md) config table. This object is detailed below: It is recommended that you use the Coordinator Console to configure these parameters. However, if you need to do it via HTTP, the JSON object can be submitted to the Coordinator via a POST request at: @@ -796,7 +733,7 @@ Issuing a GET request at the same URL will return the spec that is currently in |--------|-----------|-------| |`millisToWaitBeforeDeleting`|How long does the Coordinator need to be active before it can start removing (marking unused) segments in metadata storage.|900000 (15 mins)| |`mergeBytesLimit`|The maximum total uncompressed size in bytes of segments to merge.|524288000L| -|`mergeSegmentsLimit`|The maximum number of segments that can be in a single [append task](../ingestion/tasks.html).|100| +|`mergeSegmentsLimit`|The maximum number of segments that can be in a single [append task](../ingestion/tasks.md).|100| |`maxSegmentsToMove`|The maximum number of segments that can be moved at any given time.|5| |`replicantLifetime`|The maximum number of Coordinator runs for a segment to be replicated before we start alerting.|15| |`replicationThrottleLimit`|The maximum number of segments that can be replicated at one time.|10| @@ -823,8 +760,8 @@ To view last entries of the audit history of Coordinator dynamic config issu http://:/druid/coordinator/v1/config/history?count= ``` -##### Lookups Dynamic Configuration (EXPERIMENTAL) -These configuration options control the behavior of the Lookup dynamic configuration described in the [lookups page](../querying/lookups.html) +##### Lookups Dynamic Configuration +These configuration options control the behavior of the Lookup dynamic configuration described in the [lookups page](../querying/lookups.md) |Property|Description|Default| |--------|-----------|-------| @@ -840,21 +777,21 @@ These configuration options control the behavior of the Lookup dynamic configura Compaction configurations can also be set or updated dynamically using [Coordinator's API](../operations/api-reference.html#compaction-configuration) without restarting Coordinators. -For details about segment compaction, please check [Segment Size Optimization](../operations/segment-optimization.html). +For details about segment compaction, please check [Segment Size Optimization](../operations/segment-optimization.md). A description of the compaction config is: |Property|Description|Required| |--------|-----------|--------| |`dataSource`|dataSource name to be compacted.|yes| -|`taskPriority`|[Priority](../ingestion/tasks.html#task-priorities) of compaction task.|no (default = 25)| +|`taskPriority`|[Priority](../ingestion/tasks.html#priority) of compaction task.|no (default = 25)| |`inputSegmentSizeBytes`|Maximum number of total segment bytes processed per compaction task. Since a time chunk must be processed in its entirety, if the segments for a particular time chunk have a total size in bytes greater than this parameter, compaction will not run for that time chunk. Because each compaction task runs with a single thread, setting this value too far above 1–2GB will result in compaction tasks taking an excessive amount of time.|no (default = 419430400)| |`targetCompactionSizeBytes`|The target segment size, for each segment, after compaction. The actual sizes of compacted segments might be slightly larger or smaller than this value. Each compaction task may generate more than one output segment, and it will try to keep each output segment close to this configured size. This configuration cannot be used together with `maxRowsPerSegment`.|no (default = 419430400)| |`maxRowsPerSegment`|Max number of rows per segment after compaction. This configuration cannot be used together with `targetCompactionSizeBytes`.|no| |`maxNumSegmentsToCompact`|Maximum number of segments to compact together per compaction task. Since a time chunk must be processed in its entirety, if a time chunk has a total number of segments greater than this parameter, compaction will not run for that time chunk.|no (default = 150)| |`skipOffsetFromLatest`|The offset for searching segments to be compacted. Strongly recommended to set for realtime dataSources. |no (default = "P1D")| -|`tuningConfig`|Tuning config for compaction tasks. See below [Compaction Task TuningConfig](#compact-task-tuningconfig).|no| -|`taskContext`|[Task context](../ingestion/tasks.html#task-context) for compaction tasks.|no| +|`tuningConfig`|Tuning config for compaction tasks. See below [Compaction Task TuningConfig](#compaction-tuningconfig).|no| +|`taskContext`|[Task context](../ingestion/tasks.html#context) for compaction tasks.|no| An example of compaction config is: @@ -875,16 +812,16 @@ If you see this problem, it's recommended to set `skipOffsetFromLatest` to some |Property|Description|Required| |--------|-----------|--------| -|`maxRowsInMemory`|See [tuningConfig for indexTask](../ingestion/native_tasks.html#tuningconfig)|no (default = 1000000)| -|`maxBytesInMemory`|See [tuningConfig for indexTask](../ingestion/native_tasks.html#tuningconfig)|no (1/6 of max JVM memory)| -|`maxTotalRows`|See [tuningConfig for indexTask](../ingestion/native_tasks.html#tuningconfig)|no (default = 20000000)| -|`indexSpec`|See [IndexSpec](../ingestion/native_tasks.html#indexspec)|no| -|`maxPendingPersists`|See [tuningConfig for indexTask](../ingestion/native_tasks.html#tuningconfig)|no (default = 0 (meaning one persist can be running concurrently with ingestion, and none can be queued up))| -|`pushTimeout`|See [tuningConfig for indexTask](../ingestion/native_tasks.html#tuningconfig)|no (default = 0)| +|`maxRowsInMemory`|See [tuningConfig for indexTask](../ingestion/native-batch.md#tuningconfig)|no (default = 1000000)| +|`maxBytesInMemory`|See [tuningConfig for indexTask](../ingestion/native-batch.md#tuningconfig)|no (1/6 of max JVM memory)| +|`maxTotalRows`|See [tuningConfig for indexTask](../ingestion/native-batch.md#tuningconfig)|no (default = 20000000)| +|`indexSpec`|See [IndexSpec](../ingestion/index.md#indexspec)|no| +|`maxPendingPersists`|See [tuningConfig for indexTask](../ingestion/native-batch.md#tuningconfig)|no (default = 0 (meaning one persist can be running concurrently with ingestion, and none can be queued up))| +|`pushTimeout`|See [tuningConfig for indexTask](../ingestion/native-batch.md#tuningconfig)|no (default = 0)| ### Overlord -For general Overlord Process information, see [here](../design/overlord.html). +For general Overlord Process information, see [here](../design/overlord.md). #### Overlord Static Configuration @@ -897,7 +834,7 @@ These Overlord static configurations can be defined in the `overlord/runtime.pro |`druid.host`|The host for the current process. This is used to advertise the current processes location as reachable from another process and should generally be specified such that `http://${druid.host}/` could actually talk to this process|InetAddress.getLocalHost().getCanonicalHostName()| |`druid.bindOnHost`|Indicating whether the process's internal jetty server bind on `druid.host`. Default is false, which means binding to all interfaces.|false| |`druid.plaintextPort`|This is the port to actually listen on; unless port mapping is used, this will be the same port as is on `druid.host`|8090| -|`druid.tlsPort`|TLS port for HTTPS connector, if [druid.enableTlsPort](../operations/tls-support.html) is set then this config will be used. If `druid.host` contains port then that port will be ignored. This should be a non-negative Integer.|8290| +|`druid.tlsPort`|TLS port for HTTPS connector, if [druid.enableTlsPort](../operations/tls-support.md) is set then this config will be used. If `druid.host` contains port then that port will be ignored. This should be a non-negative Integer.|8290| |`druid.service`|The name of the service. This is used as a dimension when emitting metrics and alerts to differentiate between the various services|druid/overlord| ##### Overlord Operations @@ -907,7 +844,7 @@ These Overlord static configurations can be defined in the `overlord/runtime.pro |`druid.indexer.runner.type`|Choices "local" or "remote". Indicates whether tasks should be run locally or in a distributed environment. Experimental task runner "httpRemote" is also available which is same as "remote" but uses HTTP to interact with Middle Manaters instead of Zookeeper.|local| |`druid.indexer.storage.type`|Choices are "local" or "metadata". Indicates whether incoming tasks should be stored locally (in heap) or in metadata storage. Storing incoming tasks in metadata storage allows for tasks to be resumed if the Overlord should fail.|local| |`druid.indexer.storage.recentlyFinishedThreshold`|A duration of time to store task results.|PT24H| -|`druid.indexer.tasklock.forceTimeChunkLock`|_**Setting this to false is still experimental**_
If set, all tasks are enforced to use time chunk lock. If not set, each task automatically chooses a lock type to use. This configuration can be overwritten by setting `forceTimeChunkLock` in the [task context](../ingestion/locking-and-priority.html#task-context). See [Task Locking & Priority](../ingestion/locking-and-priority.html) for more details about locking in tasks.|true| +|`druid.indexer.tasklock.forceTimeChunkLock`|_**Setting this to false is still experimental**_
If set, all tasks are enforced to use time chunk lock. If not set, each task automatically chooses a lock type to use. This configuration can be overwritten by setting `forceTimeChunkLock` in the [task context](../ingestion/tasks.md#context). See [Task Locking & Priority](../ingestion/tasks.md#context) for more details about locking in tasks.|true| |`druid.indexer.queue.maxSize`|Maximum number of active tasks at one time.|Integer.MAX_VALUE| |`druid.indexer.queue.startDelay`|Sleep this long before starting Overlord queue management. This can be useful to give a cluster time to re-orient itself after e.g. a widespread network issue.|PT1M| |`druid.indexer.queue.restartDelay`|Sleep this long when Overlord queue management throws an exception before trying again.|PT30S| @@ -1060,7 +997,9 @@ middleManagers up to capacity simultaneously, rather than a single middleManager |`type`|`fillCapacity`.|required; must be `fillCapacity`| |`affinityConfig`|[Affinity config](#affinity) object|null (no affinity)| -###### Javascript + + +###### Javascript Allows defining arbitrary logic for selecting workers to run task using a JavaScript function. The function is passed remoteTaskRunnerConfig, map of workerId to available workers and task to be executed and returns the workerId on which the task should be run or null if the task cannot be run. @@ -1082,9 +1021,7 @@ Example: a function that sends batch_index_task to workers 10.0.0.1 and 10.0.0.2 } ``` -
-JavaScript-based functionality is disabled by default. Please refer to the Druid JavaScript programming guide for guidelines about using Druid's JavaScript functionality, including instructions on how to enable it. -
+> JavaScript-based functionality is disabled by default. Please refer to the Druid [JavaScript programming guide](../development/javascript.md) for guidelines about using Druid's JavaScript functionality, including instructions on how to enable it. ###### Affinity @@ -1123,7 +1060,7 @@ These MiddleManager and Peon configurations can be defined in the `middleManager |`druid.host`|The host for the current process. This is used to advertise the current processes location as reachable from another process and should generally be specified such that `http://${druid.host}/` could actually talk to this process|InetAddress.getLocalHost().getCanonicalHostName()| |`druid.bindOnHost`|Indicating whether the process's internal jetty server bind on `druid.host`. Default is false, which means binding to all interfaces.|false| |`druid.plaintextPort`|This is the port to actually listen on; unless port mapping is used, this will be the same port as is on `druid.host`|8091| -|`druid.tlsPort`|TLS port for HTTPS connector, if [druid.enableTlsPort](../operations/tls-support.html) is set then this config will be used. If `druid.host` contains port then that port will be ignored. This should be a non-negative Integer.|8291| +|`druid.tlsPort`|TLS port for HTTPS connector, if [druid.enableTlsPort](../operations/tls-support.md) is set then this config will be used. If `druid.host` contains port then that port will be ignored. This should be a non-negative Integer.|8291| |`druid.service`|The name of the service. This is used as a dimension when emitting metrics and alerts to differentiate between the various services|druid/middlemanager| #### MiddleManager Configuration @@ -1166,7 +1103,7 @@ The amount of direct memory needed by Druid is at least ensure at least this amount of direct memory is available by providing `-XX:MaxDirectMemorySize=` in `druid.indexer.runner.javaOptsArray` as documented above. -#### Peon Query Configuration +#### Peon query configuration See [general query configuration](#general-query-configuration). @@ -1228,7 +1165,7 @@ This type of medium is preferred, but it may require to allow the JVM to have mo to the size of the segments being created. But definitely it doesn't make sense to add more extra off-heap memory, than the configured maximum *heap* size (`-Xmx`) for the same JVM. -For most types of tasks SegmentWriteOutMediumFactory could be configured per-task (see [Tasks](../ingestion/tasks.html) +For most types of tasks SegmentWriteOutMediumFactory could be configured per-task (see [Tasks](../ingestion/tasks.md) page, "TuningConfig" section), but if it's not specified for a task, or it's not supported for a particular task type, then the value from the configuration below is used: @@ -1238,7 +1175,7 @@ then the value from the configuration below is used: ### Historical -For general Historical Process information, see [here](../design/historical.html). +For general Historical Process information, see [here](../design/historical.md). These Historical configurations can be defined in the `historical/runtime.properties` file. @@ -1248,7 +1185,7 @@ These Historical configurations can be defined in the `historical/runtime.proper |`druid.host`|The host for the current process. This is used to advertise the current processes location as reachable from another process and should generally be specified such that `http://${druid.host}/` could actually talk to this process|InetAddress.getLocalHost().getCanonicalHostName()| |`druid.bindOnHost`|Indicating whether the process's internal jetty server bind on `druid.host`. Default is false, which means binding to all interfaces.|false| |`druid.plaintextPort`|This is the port to actually listen on; unless port mapping is used, this will be the same port as is on `druid.host`|8083| -|`druid.tlsPort`|TLS port for HTTPS connector, if [druid.enableTlsPort](../operations/tls-support.html) is set then this config will be used. If `druid.host` contains port then that port will be ignored. This should be a non-negative Integer.|8283| +|`druid.tlsPort`|TLS port for HTTPS connector, if [druid.enableTlsPort](../operations/tls-support.md) is set then this config will be used. If `druid.host` contains port then that port will be ignored. This should be a non-negative Integer.|8283| |`druid.service`|The name of the service. This is used as a dimension when emitting metrics and alerts to differentiate between the various services|druid/historical| @@ -1257,7 +1194,7 @@ These Historical configurations can be defined in the `historical/runtime.proper |Property|Description|Default| |--------|-----------|-------| |`druid.server.maxSize`|The maximum number of bytes-worth of segments that the process wants assigned to it. This is not a limit that Historical processes actually enforces, just a value published to the Coordinator process so it can plan accordingly.|0| -|`druid.server.tier`| A string to name the distribution tier that the storage process belongs to. Many of the [rules Coordinator processes use](../operations/rule-configuration.html) to manage segments can be keyed on tiers. | `_default_tier` | +|`druid.server.tier`| A string to name the distribution tier that the storage process belongs to. Many of the [rules Coordinator processes use](../operations/rule-configuration.md) to manage segments can be keyed on tiers. | `_default_tier` | |`druid.server.priority`|In a tiered architecture, the priority of the tier, thus allowing control over which processes are queried. Higher numbers mean higher priority. The default (no priority) works for architecture with no cross replication (tiers that have no data-storage overlap). Data centers typically have equal priority. | 0 | #### Storing Segments @@ -1274,7 +1211,7 @@ These Historical configurations can be defined in the `historical/runtime.proper In `druid.segmentCache.locations`, *freeSpacePercent* was added because *maxSize* setting is only a theoretical limit and assumes that much space will always be available for storing segments. In case of any druid bug leading to unaccounted segment files left alone on disk or some other process writing stuff to disk, This check can start failing segment loading early before filling up the disk completely and leaving the host usable otherwise. -#### Historical Query Configs +#### Historical query configs ##### Concurrent Requests @@ -1289,7 +1226,7 @@ Druid uses Jetty to serve HTTP requests. |`druid.server.http.defaultQueryTimeout`|Query timeout in millis, beyond which unfinished queries will be cancelled|300000| |`druid.server.http.gracefulShutdownTimeout`|The maximum amount of time Jetty waits after receiving shutdown signal. After this timeout the threads will be forcefully shutdown. This allows any queries that are executing to complete.|`PT0S` (do not wait)| |`druid.server.http.unannouncePropagationDelay`|How long to wait for zookeeper unannouncements to propagate before shutting down Jetty. This is a minimum and `druid.server.http.gracefulShutdownTimeout` does not start counting down until after this period elapses.|`PT0S` (do not wait)| -|`druid.server.http.maxQueryTimeout`|Maximum allowed value (in milliseconds) for `timeout` parameter. See [query-context](../querying/query-context.html) to know more about `timeout`. Query is rejected if the query context `timeout` is greater than this value. |Long.MAX_VALUE| +|`druid.server.http.maxQueryTimeout`|Maximum allowed value (in milliseconds) for `timeout` parameter. See [query-context](../querying/query-context.md) to know more about `timeout`. Query is rejected if the query context `timeout` is greater than this value. |Long.MAX_VALUE| |`druid.server.http.maxRequestHeaderSize`|Maximum size of a request header in bytes. Larger headers consume more memory and can make a server more vulnerable to denial of service attacks.|8 * 1024| ##### Processing @@ -1310,7 +1247,7 @@ The amount of direct memory needed by Druid is at least ensure at least this amount of direct memory is available by providing `-XX:MaxDirectMemorySize=` at the command line. -##### Historical Query Configuration +##### Historical query configuration See [general query configuration](#general-query-configuration). @@ -1333,7 +1270,7 @@ This section contains the configuration options for the processes that reside on ### Broker -For general Broker process information, see [here](../design/broker.html). +For general Broker process information, see [here](../design/broker.md). These Broker configurations can be defined in the `broker/runtime.properties` file. @@ -1344,12 +1281,12 @@ These Broker configurations can be defined in the `broker/runtime.properties` fi |`druid.host`|The host for the current process. This is used to advertise the current processes location as reachable from another process and should generally be specified such that `http://${druid.host}/` could actually talk to this process|InetAddress.getLocalHost().getCanonicalHostName()| |`druid.bindOnHost`|Indicating whether the process's internal jetty server bind on `druid.host`. Default is false, which means binding to all interfaces.|false| |`druid.plaintextPort`|This is the port to actually listen on; unless port mapping is used, this will be the same port as is on `druid.host`|8082| -|`druid.tlsPort`|TLS port for HTTPS connector, if [druid.enableTlsPort](../operations/tls-support.html) is set then this config will be used. If `druid.host` contains port then that port will be ignored. This should be a non-negative Integer.|8282| +|`druid.tlsPort`|TLS port for HTTPS connector, if [druid.enableTlsPort](../operations/tls-support.md) is set then this config will be used. If `druid.host` contains port then that port will be ignored. This should be a non-negative Integer.|8282| |`druid.service`|The name of the service. This is used as a dimension when emitting metrics and alerts to differentiate between the various services|druid/broker| -#### Query Configuration +#### Query configuration -##### Query Prioritization +##### Query prioritization |Property|Possible Values|Description|Default| |--------|---------------|-----------|-------| @@ -1371,7 +1308,7 @@ Druid uses Jetty to serve HTTP requests. |`druid.server.http.maxScatterGatherBytes`|Maximum number of bytes gathered from data processes such as Historicals and realtime processes to execute a query. Queries that exceed this limit will fail. This is an advance configuration that allows to protect in case Broker is under heavy load and not utilizing the data gathered in memory fast enough and leading to OOMs. This limit can be further reduced at query time using `maxScatterGatherBytes` in the context. Note that having large limit is not necessarily bad if broker is never under heavy concurrent load in which case data gathered is processed quickly and freeing up the memory used.|Long.MAX_VALUE| |`druid.server.http.gracefulShutdownTimeout`|The maximum amount of time Jetty waits after receiving shutdown signal. After this timeout the threads will be forcefully shutdown. This allows any queries that are executing to complete.|`PT0S` (do not wait)| |`druid.server.http.unannouncePropagationDelay`|How long to wait for zookeeper unannouncements to propagate before shutting down Jetty. This is a minimum and `druid.server.http.gracefulShutdownTimeout` does not start counting down until after this period elapses.|`PT0S` (do not wait)| -|`druid.server.http.maxQueryTimeout`|Maximum allowed value (in milliseconds) for `timeout` parameter. See [query-context](../querying/query-context.html) to know more about `timeout`. Query is rejected if the query context `timeout` is greater than this value. |Long.MAX_VALUE| +|`druid.server.http.maxQueryTimeout`|Maximum allowed value (in milliseconds) for `timeout` parameter. See [query-context](../querying/query-context.md) to know more about `timeout`. Query is rejected if the query context `timeout` is greater than this value. |Long.MAX_VALUE| |`druid.server.http.maxRequestHeaderSize`|Maximum size of a request header in bytes. Larger headers consume more memory and can make a server more vulnerable to denial of service attacks. |8 * 1024| ##### Client Configuration @@ -1385,7 +1322,7 @@ client has the following configuration options. |`druid.broker.http.compressionCodec`|Compression codec the Broker uses to communicate with Historical and real-time processes. May be "gzip" or "identity".|gzip| |`druid.broker.http.readTimeout`|The timeout for data reads from Historical servers and real-time tasks.|PT15M| |`druid.broker.http.unusedConnectionTimeout`|The timeout for idle connections in connection pool. This timeout should be less than `druid.broker.http.readTimeout`. Set this timeout = ~90% of `druid.broker.http.readTimeout`|`PT4M`| -|`druid.broker.http.maxQueuedBytes`|Maximum number of bytes queued per query before exerting backpressure on the channel to the data server. Similar to `druid.server.http.maxScatterGatherBytes`, except unlike that configuration, this one will trigger backpressure rather than query failure. Zero means disabled. Can be overridden by the ["maxQueuedBytes" query context parameter](../querying/query-context.html).|0 (disabled)| +|`druid.broker.http.maxQueuedBytes`|Maximum number of bytes queued per query before exerting backpressure on the channel to the data server. Similar to `druid.server.http.maxScatterGatherBytes`, except unlike that configuration, this one will trigger backpressure rather than query failure. Zero means disabled. Can be overridden by the ["maxQueuedBytes" query context parameter](../querying/query-context.md).|0 (disabled)| ##### Retry Policy @@ -1397,7 +1334,7 @@ Druid broker can optionally retry queries internally for transient errors. ##### Processing -The broker uses processing configs for nested groupBy queries. And, if you use groupBy v1, long-interval queries (of any type) can be broken into shorter interval queries and processed in parallel inside this thread pool. For more details, see "chunkPeriod" in [Query Context](../querying/query-context.html) doc. +The broker uses processing configs for nested groupBy queries. And, if you use groupBy v1, long-interval queries (of any type) can be broken into shorter interval queries and processed in parallel inside this thread pool. For more details, see "chunkPeriod" in the [query context](../querying/query-context.md) doc. |Property|Description|Default| |--------|-----------|-------| @@ -1415,7 +1352,7 @@ The amount of direct memory needed by Druid is at least ensure at least this amount of direct memory is available by providing `-XX:MaxDirectMemorySize=` at the command line. -##### Broker Query Configuration +##### Broker query configuration See [general query configuration](#general-query-configuration). @@ -1435,11 +1372,11 @@ The Druid SQL server is configured through the following properties on the Broke |`druid.sql.planner.awaitInitializationOnStart`|Boolean|Whether the the Broker will wait for its SQL metadata view to fully initialize before starting up. If set to 'true', the Broker's HTTP server will not start up, and the Broker will not announce itself as available, until the server view is initialized. See also `druid.broker.segment.awaitInitializationOnStart`, a related setting.|true| |`druid.sql.planner.maxQueryCount`|Maximum number of queries to issue, including nested queries. Set to 1 to disable sub-queries, or set to 0 for unlimited.|8| |`druid.sql.planner.maxSemiJoinRowsInMemory`|Maximum number of rows to keep in memory for executing two-stage semi-join queries like `SELECT * FROM Employee WHERE DeptName IN (SELECT DeptName FROM Dept)`.|100000| -|`druid.sql.planner.maxTopNLimit`|Maximum threshold for a [TopN query](../querying/topnquery.html). Higher limits will be planned as [GroupBy queries](../querying/groupbyquery.html) instead.|100000| +|`druid.sql.planner.maxTopNLimit`|Maximum threshold for a [TopN query](../querying/topnquery.md). Higher limits will be planned as [GroupBy queries](../querying/groupbyquery.md) instead.|100000| |`druid.sql.planner.metadataRefreshPeriod`|Throttle for metadata refreshes.|PT1M| -|`druid.sql.planner.selectThreshold`|Page size threshold for [Select queries](../querying/select-query.html). Select queries for larger resultsets will be issued back-to-back using pagination.|1000| +|`druid.sql.planner.selectThreshold`|Page size threshold for [Select queries](../querying/select-query.md). Select queries for larger resultsets will be issued back-to-back using pagination.|1000| |`druid.sql.planner.useApproximateCountDistinct`|Whether to use an approximate cardinalty algorithm for `COUNT(DISTINCT foo)`.|true| -|`druid.sql.planner.useApproximateTopN`|Whether to use approximate [TopN queries](../querying/topnquery.html) when a SQL query could be expressed as such. If false, exact [GroupBy queries](../querying/groupbyquery.html) will be used instead.|true| +|`druid.sql.planner.useApproximateTopN`|Whether to use approximate [TopN queries](../querying/topnquery.md) when a SQL query could be expressed as such. If false, exact [GroupBy queries](../querying/groupbyquery.md) will be used instead.|true| |`druid.sql.planner.requireTimeCondition`|Whether to require SQL to have filter conditions on __time column so that all generated native queries will have user specified intervals. If true, all queries wihout filter condition on __time column will fail|false| |`druid.sql.planner.sqlTimeZone`|Sets the default time zone for the server, which will affect how time functions and timestamp literals behave. Should be a time zone name like "America/Los_Angeles" or offset like "-08:00".|UTC| |`druid.sql.planner.serializeComplexValues`|Whether to serialize "complex" output values, false will return the class name instead of the serialized value.|true| @@ -1472,9 +1409,9 @@ See [cache configuration](#cache-configuration) for how to configure cache setti ## Cache Configuration This section describes caching configuration that is common to Broker, Historical, and MiddleManager/Peon processes. - + Caching can optionally be enabled on the Broker, Historical, and MiddleManager/Peon processses. See [Broker](#broker-caching), -[Historical](#Historical-caching), and [Peon](#peon-caching) configuration options for how to enable it for different processes. +[Historical](#historical-caching), and [Peon](#peon-caching) configuration options for how to enable it for different processes. Druid uses a local in-memory cache by default, unless a diffrent type of cache is specified. Use the `druid.cache.type` configuration to set a different kind of cache. @@ -1491,9 +1428,7 @@ for both Broker and Historical processes, when defined in the common properties #### Local Cache -
-DEPRECATED: Use caffeine (default as of v0.12.0) instead -
+> DEPRECATED: Use caffeine (default as of v0.12.0) instead The local cache is deprecated in favor of the Caffeine cache, and may be removed in a future version of Druid. The Caffeine cache affords significantly better performance and control over eviction behavior compared to `local` cache, and is recommended in any situation where you are using JRE 8u60 or higher. @@ -1572,34 +1507,34 @@ If there is an L1 miss and L2 hit, it will also populate L1. |`druid.cache.useL2`|A boolean indicating whether to query L2 cache, if it's a miss in L1. It makes sense to configure this to `false` on Historical processes, if L2 is a remote cache like `memcached`, and this cache also used on brokers, because in this case if a query reached Historical it means that a broker didn't find corresponding results in the same remote cache, so a query to the remote cache from Historical is guaranteed to be a miss.|`true`| |`druid.cache.populateL2`|A boolean indicating whether to put results into L2 cache.|`true`| -## General Query Configuration +## General query configuration This section describes configurations that control behavior of Druid's query types, applicable to Broker, Historical, and MiddleManager processes. -### TopN Query config +### TopN query config |Property|Description|Default| |--------|-----------|-------| |`druid.query.topN.minTopNThreshold`|See [TopN Aliasing](../querying/topnquery.html#aliasing) for details.|1000| -### Search Query Config +### Search query config |Property|Description|Default| |--------|-----------|-------| |`druid.query.search.maxSearchLimit`|Maximum number of search results to return.|1000| |`druid.query.search.searchStrategy`|Default search query strategy.|useIndexes| -### Segment Metadata Query Config +### SegmentMetadata query config |Property|Description|Default| |--------|-----------|-------| |`druid.query.segmentMetadata.defaultHistory`|When no interval is specified in the query, use a default interval of defaultHistory before the end time of the most recent segment, specified in ISO8601 format. This property also controls the duration of the default interval used by GET /druid/v2/datasources/{dataSourceName} interactions for retrieving datasource dimensions/metrics.|P1W| |`druid.query.segmentMetadata.defaultAnalysisTypes`|This can be used to set the Default Analysis Types for all segment metadata queries, this can be overridden when making the query|["cardinality", "interval", "minmax"]| -### GroupBy Query Config +### GroupBy query config + +This section describes the configurations for groupBy queries. You can set the runtime properties in the `runtime.properties` file on Broker, Historical, and MiddleManager processes. You can set the query context parameters through the [query context](../querying/query-context.md). -This section describes the configurations for groupBy queries. You can set the runtime properties in the `runtime.properties` file on Broker, Historical, and MiddleManager processes. You can set the query context parameters through the [query context](../querying/query-context.html). - #### Configurations for groupBy v2 Supported runtime properties: @@ -1677,4 +1612,3 @@ Supported query contexts: |`maxIntermediateRows`|Can be used to lower the value of `druid.query.groupBy.maxIntermediateRows` for this query.|None| |`maxResults`|Can be used to lower the value of `druid.query.groupBy.maxResults` for this query.|None| |`useOffheap`|Set to true to store aggregations off-heap when merging results.|false| - diff --git a/docs/content/configuration/logging.md b/docs/configuration/logging.md similarity index 99% rename from docs/content/configuration/logging.md rename to docs/configuration/logging.md index 28c90528fb0a..b0dd42b551ac 100644 --- a/docs/content/configuration/logging.md +++ b/docs/configuration/logging.md @@ -1,5 +1,5 @@ --- -layout: doc_page +id: logging title: "Logging" --- @@ -22,7 +22,6 @@ title: "Logging" ~ under the License. --> -# Logging Apache Druid (incubating) processes will emit logs that are useful for debugging to the console. Druid processes also emit periodic metrics about their state. For more about metrics, see [Configuration](../configuration/index.html#enabling-metrics). Metric logs are printed to the console by default, and can be disabled with `-Ddruid.emitter.logging.logLevel=debug`. diff --git a/docs/content/dependencies/cassandra-deep-storage.md b/docs/content/dependencies/cassandra-deep-storage.md deleted file mode 100644 index 6cb42d22b8cd..000000000000 --- a/docs/content/dependencies/cassandra-deep-storage.md +++ /dev/null @@ -1,62 +0,0 @@ ---- -layout: doc_page -title: "Cassandra Deep Storage" ---- - - - -# Cassandra Deep Storage - -## Introduction - -Apache Druid (incubating) can use Apache Cassandra as a deep storage mechanism. Segments and their metadata are stored in Cassandra in two tables: -`index_storage` and `descriptor_storage`. Underneath the hood, the Cassandra integration leverages Astyanax. The -index storage table is a [Chunked Object](https://github.com/Netflix/astyanax/wiki/Chunked-Object-Store) repository. It contains -compressed segments for distribution to Historical processes. Since segments can be large, the Chunked Object storage allows the integration to multi-thread -the write to Cassandra, and spreads the data across all the processes in a cluster. The descriptor storage table is a normal C* table that -stores the segment metadatak. - -## Schema -Below are the create statements for each: - -```sql -CREATE TABLE index_storage(key text, - chunk text, - value blob, - PRIMARY KEY (key, chunk)) WITH COMPACT STORAGE; - -CREATE TABLE descriptor_storage(key varchar, - lastModified timestamp, - descriptor varchar, - PRIMARY KEY (key)) WITH COMPACT STORAGE; -``` - -## Getting Started -First create the schema above. I use a new keyspace called `druid` for this purpose, which can be created using the -[Cassandra CQL `CREATE KEYSPACE`](http://www.datastax.com/documentation/cql/3.1/cql/cql_reference/create_keyspace_r.html) command. - -Then, add the following to your Historical and realtime runtime properties files to enable a Cassandra backend. - -```properties -druid.extensions.loadList=["druid-cassandra-storage"] -druid.storage.type=c* -druid.storage.host=localhost:9160 -druid.storage.keyspace=druid -``` diff --git a/docs/content/design/index.md b/docs/content/design/index.md deleted file mode 100644 index 191a7d62349f..000000000000 --- a/docs/content/design/index.md +++ /dev/null @@ -1,212 +0,0 @@ ---- -layout: doc_page -title: "Apache Druid (incubating) Design" ---- - - - -# What is Druid? - -Apache Druid (incubating) is a real-time analytics database designed for fast slice-and-dice analytics -("[OLAP](http://en.wikipedia.org/wiki/Online_analytical_processing)" queries) on large data sets. Druid is most often -used as a database for powering use cases where real-time ingest, fast query performance, and high uptime are important. -As such, Druid is commonly used for powering GUIs of analytical applications, or as a backend for highly-concurrent APIs -that need fast aggregations. Druid works best with event-oriented data. - -Common application areas for Druid include: - -- Clickstream analytics (web and mobile analytics) -- Network telemetry analytics (network performance monitoring) -- Server metrics storage -- Supply chain analytics (manufacturing metrics) -- Application performance metrics -- Digital marketing/advertising analytics -- Business intelligence / OLAP - -Druid's core architecture combines ideas from data warehouses, timeseries databases, and logsearch systems. Some of -Druid's key features are: - -1. **Columnar storage format.** Druid uses column-oriented storage, meaning it only needs to load the exact columns -needed for a particular query. This gives a huge speed boost to queries that only hit a few columns. In addition, each -column is stored optimized for its particular data type, which supports fast scans and aggregations. -2. **Scalable distributed system.** Druid is typically deployed in clusters of tens to hundreds of servers, and can -offer ingest rates of millions of records/sec, retention of trillions of records, and query latencies of sub-second to a -few seconds. -3. **Massively parallel processing.** Druid can process a query in parallel across the entire cluster. -4. **Realtime or batch ingestion.** Druid can ingest data either real-time (ingested data is immediately available for -querying) or in batches. -5. **Self-healing, self-balancing, easy to operate.** As an operator, to scale the cluster out or in, simply add or -remove servers and the cluster will rebalance itself automatically, in the background, without any downtime. If any -Druid servers fail, the system will automatically route around the damage until those servers can be replaced. Druid -is designed to run 24/7 with no need for planned downtimes for any reason, including configuration changes and software -updates. -6. **Cloud-native, fault-tolerant architecture that won't lose data.** Once Druid has ingested your data, a copy is -stored safely in [deep storage](#deep-storage) (typically cloud storage, HDFS, or a shared filesystem). Your data can be -recovered from deep storage even if every single Druid server fails. For more limited failures affecting just a few -Druid servers, replication ensures that queries are still possible while the system recovers. -7. **Indexes for quick filtering.** Druid uses [CONCISE](https://arxiv.org/pdf/1004.0403) or -[Roaring](https://roaringbitmap.org/) compressed bitmap indexes to create indexes that power fast filtering and -searching across multiple columns. -8. **Time-based partitioning.** Druid first partitions data by time, and can additionally partition based on other fields. -This means time-based queries will only access the partitions that match the time range of the query. This leads to -significant performance improvements for time-based data. -9. **Approximate algorithms.** Druid includes algorithms for approximate count-distinct, approximate ranking, and -computation of approximate histograms and quantiles. These algorithms offer bounded memory usage and are often -substantially faster than exact computations. For situations where accuracy is more important than speed, Druid also -offers exact count-distinct and exact ranking. -10. **Automatic summarization at ingest time.** Druid optionally supports data summarization at ingestion time. This -summarization partially pre-aggregates your data, and can lead to big costs savings and performance boosts. - -# When should I use Druid? - -Druid is likely a good choice if your use case fits a few of the following descriptors: - -- Insert rates are very high, but updates are less common. -- Most of your queries are aggregation and reporting queries ("group by" queries). You may also have searching and -scanning queries. -- You are targeting query latencies of 100ms to a few seconds. -- Your data has a time component (Druid includes optimizations and design choices specifically related to time). -- You may have more than one table, but each query hits just one big distributed table. Queries may potentially hit more -than one smaller "lookup" table. -- You have high cardinality data columns (e.g. URLs, user IDs) and need fast counting and ranking over them. -- You want to load data from Kafka, HDFS, flat files, or object storage like Amazon S3. - -Situations where you would likely _not_ want to use Druid include: - -- You need low-latency updates of _existing_ records using a primary key. Druid supports streaming inserts, but not streaming updates (updates are done using -background batch jobs). -- You are building an offline reporting system where query latency is not very important. -- You want to do "big" joins (joining one big fact table to another big fact table) and you are okay with these queries -taking up to hours to complete. - -# Architecture - -Druid has a multi-process, distributed architecture that is designed to be cloud-friendly and easy to operate. Each -Druid process type can be configured and scaled independently, giving you maximum flexibility over your cluster. This -design also provides enhanced fault tolerance: an outage of one component will not immediately affect other components. - -## Processes and Servers - -Druid has several process types, briefly described below: - -* [**Coordinator**](../design/coordinator.html) processes manage data availability on the cluster. -* [**Overlord**](../design/overlord.html) processes control the assignment of data ingestion workloads. -* [**Broker**](../design/broker.html) processes handle queries from external clients. -* [**Router**](../development/router.html) processes are optional processes that can route requests to Brokers, Coordinators, and Overlords. -* [**Historical**](../design/historical.html) processes store queryable data. -* [**MiddleManager**](../design/middlemanager.html) processes are responsible for ingesting data. - -Druid processes can be deployed any way you like, but for ease of deployment we suggest organizing them into three server types: Master, Query, and Data. - -* **Master**: Runs Coordinator and Overlord processes, manages data availability and ingestion. -* **Query**: Runs Broker and optional Router processes, handles queries from external clients. -* **Data**: Runs Historical and MiddleManager processes, executes ingestion workloads and stores all queryable data. - -For more details on process and server organization, please see [Druid Processses and Servers](../design/processes.html). - -### External dependencies - -In addition to its built-in process types, Druid also has three external dependencies. These are intended to be able to -leverage existing infrastructure, where present. - -#### Deep storage -Shared file storage accessible by every Druid server. This is typically going to -be a distributed object store like S3 or HDFS, or a network mounted filesystem. Druid uses this to store any data that -has been ingested into the system. - -Druid uses deep storage only as a backup of your data and as a way to transfer data in the background between -Druid processes. To respond to queries, Historical processes do not read from deep storage, but instead read pre-fetched -segments from their local disks before any queries are served. This means that Druid never needs to access deep storage -during a query, helping it offer the best query latencies possible. It also means that you must have enough disk space -both in deep storage and across your Historical processes for the data you plan to load. - -For more details, please see [Deep storage dependency](../dependencies/deep-storage.html). - -#### Metadata storage -The metadata storage holds various shared system metadata such as segment availability information and task information. This is typically going to be a traditional RDBMS -like PostgreSQL or MySQL. - -For more details, please see [Metadata storage dependency](../dependencies/metadata-storage.html) - -#### Zookeeper -Used for internal service discovery, coordination, and leader election. - -For more details, please see [Zookeeper dependency](../dependencies/zookeeper.html). - -The idea behind this architecture is to make a Druid cluster simple to operate in production at scale. For example, the -separation of deep storage and the metadata store from the rest of the cluster means that Druid processes are radically -fault tolerant: even if every single Druid server fails, you can still relaunch your cluster from data stored in deep -storage and the metadata store. - -### Architecture diagram - -The following diagram shows how queries and data flow through this architecture, using the suggested Master/Query/Data server organization: - - - -# Datasources and segments - -Druid data is stored in "datasources", which are similar to tables in a traditional RDBMS. Each datasource is -partitioned by time and, optionally, further partitioned by other attributes. Each time range is called a "chunk" (for -example, a single day, if your datasource is partitioned by day). Within a chunk, data is partitioned into one or more -["segments"](../design/segments.html). Each segment is a single file, typically comprising up to a few million rows of data. Since segments are -organized into time chunks, it's sometimes helpful to think of segments as living on a timeline like the following: - - - -A datasource may have anywhere from just a few segments, up to hundreds of thousands and even millions of segments. Each -segment starts life off being created on a MiddleManager, and at that point, is mutable and uncommitted. The segment -building process includes the following steps, designed to produce a data file that is compact and supports fast -queries: - -- Conversion to columnar format -- Indexing with bitmap indexes -- Compression using various algorithms - - Dictionary encoding with id storage minimization for String columns - - Bitmap compression for bitmap indexes - - Type-aware compression for all columns - -Periodically, segments are committed and published. At this point, they are written to [deep storage](#deep-storage), -become immutable, and move from MiddleManagers to the Historical processes (see [Architecture](#architecture) above -for details). An entry about the segment is also written to the [metadata store](#metadata-storage). This entry is a -self-describing bit of metadata about the segment, including things like the schema of the segment, its size, and its -location on deep storage. These entries are what the Coordinator uses to know what data *should* be available on the -cluster. - -# Query processing - -Queries first enter the [Broker](../design/broker.html), where the Broker will identify which segments have data that may pertain to that query. -The list of segments is always pruned by time, and may also be pruned by other attributes depending on how your -datasource is partitioned. The Broker will then identify which [Historicals](../design/historical.html) and -[MiddleManagers](../design/middlemanager.html) are serving those segments and send a rewritten subquery to each of those processes. The Historical/MiddleManager processes will take in the -queries, process them and return results. The Broker receives results and merges them together to get the final answer, -which it returns to the original caller. - -Broker pruning is an important way that Druid limits the amount of data that must be scanned for each query, but it is -not the only way. For filters at a more granular level than what the Broker can use for pruning, indexing structures -inside each segment allow Druid to figure out which (if any) rows match the filter set before looking at any row of -data. Once Druid knows which rows match a particular query, it only accesses the specific columns it needs for that -query. Within those columns, Druid can skip from row to row, avoiding reading data that doesn't match the query filter. - -So Druid uses three different techniques to maximize query performance: - -- Pruning which segments are accessed for each query. -- Within each segment, using indexes to identify which rows must be accessed. -- Within each segment, only reading the specific rows and columns that are relevant to a particular query. diff --git a/docs/content/design/indexing-service.md b/docs/content/design/indexing-service.md deleted file mode 100644 index 3c66bc1ae7f1..000000000000 --- a/docs/content/design/indexing-service.md +++ /dev/null @@ -1,65 +0,0 @@ ---- -layout: doc_page -title: "Indexing Service" ---- - - - -# Indexing Service - -The Apache Druid (incubating) indexing service is a highly-available, distributed service that runs indexing related tasks. - -Indexing [tasks](../ingestion/tasks.html) create (and sometimes destroy) Druid [segments](../design/segments.html). The indexing service has a master/slave like architecture. - -The indexing service is composed of three main components: a [Peon](../design/peons.html) component that can run a single task, a [Middle Manager](../design/middlemanager.html) component that manages Peons, and an [Overlord](../design/overlord.html) component that manages task distribution to MiddleManagers. -Overlords and MiddleManagers may run on the same process or across multiple processes while MiddleManagers and Peons always run on the same process. - -Tasks are managed using API endpoints on the Overlord service. Please see [Overlord Task API](../operations/api-reference.html#overlord-tasks) for more information. - -![Indexing Service](../../img/indexing_service.png "Indexing Service") - - - -Overlord --------------- - -See [Overlord](../design/overlord.html). - -Middle Managers ---------------- - -See [Middle Manager](../design/middlemanager.html). - -Peons ------ - -See [Peon](../design/peons.html). - -Tasks ------ - -See [Tasks](../ingestion/tasks.html). diff --git a/docs/content/design/plumber.md b/docs/content/design/plumber.md deleted file mode 100644 index 944ec780d09b..000000000000 --- a/docs/content/design/plumber.md +++ /dev/null @@ -1,38 +0,0 @@ ---- -layout: doc_page -title: "Apache Druid (incubating) Plumbers" ---- - - - -# Apache Druid (incubating) Plumbers - -The plumber handles generated segments both while they are being generated and when they are "done". This is also technically a pluggable interface and there are multiple implementations. However, plumbers handle numerous complex details, and therefore an advanced understanding of Druid is recommended before implementing your own. - -Available Plumbers ------------------- - -#### YeOldePlumber - -This plumber creates single historical segments. - -#### RealtimePlumber - -This plumber creates real-time/mutable segments. diff --git a/docs/content/ingestion/batch-ingestion.md b/docs/content/ingestion/batch-ingestion.md deleted file mode 100644 index 27c57d8a9a9e..000000000000 --- a/docs/content/ingestion/batch-ingestion.md +++ /dev/null @@ -1,39 +0,0 @@ ---- -layout: doc_page -title: "Batch Data Ingestion" ---- - - - -# Batch Data Ingestion - -Apache Druid (incubating) can load data from static files through a variety of methods described here. - -## Native Batch Ingestion - -Druid has built-in batch ingestion functionality. See [here](../ingestion/native_tasks.html) for more info. - -## Hadoop Batch Ingestion - -Hadoop can be used for batch ingestion. The Hadoop-based batch ingestion will be faster and more scalable than the native batch ingestion. See [here](../ingestion/hadoop.html) for more details. - -Having Problems? ----------------- -Getting data into Druid can definitely be difficult for first time users. Please don't hesitate to ask questions in our IRC channel or on our [google groups page](https://groups.google.com/forum/#!forum/druid-user). diff --git a/docs/content/ingestion/command-line-hadoop-indexer.md b/docs/content/ingestion/command-line-hadoop-indexer.md deleted file mode 100644 index 231852ec5375..000000000000 --- a/docs/content/ingestion/command-line-hadoop-indexer.md +++ /dev/null @@ -1,95 +0,0 @@ ---- -layout: doc_page -title: "Command Line Hadoop Indexer" ---- - - - -# Command Line Hadoop Indexer - -To run: - -``` -java -Xmx256m -Duser.timezone=UTC -Dfile.encoding=UTF-8 -classpath lib/*: org.apache.druid.cli.Main index hadoop -``` - -## Options - -- "--coordinate" - provide a version of Apache Hadoop to use. This property will override the default Hadoop coordinates. Once specified, Apache Druid (incubating) will look for those Hadoop dependencies from the location specified by `druid.extensions.hadoopDependenciesDir`. -- "--no-default-hadoop" - don't pull down the default hadoop version - -## Spec file - -The spec file needs to contain a JSON object where the contents are the same as the "spec" field in the Hadoop index task. See [Hadoop Batch Ingestion](../ingestion/hadoop.html) for details on the spec format. - -In addition, a `metadataUpdateSpec` and `segmentOutputPath` field needs to be added to the ioConfig: - -``` - "ioConfig" : { - ... - "metadataUpdateSpec" : { - "type":"mysql", - "connectURI" : "jdbc:mysql://localhost:3306/druid", - "password" : "diurd", - "segmentTable" : "druid_segments", - "user" : "druid" - }, - "segmentOutputPath" : "/MyDirectory/data/index/output" - }, -``` - -and a `workingPath` field needs to be added to the tuningConfig: - -``` - "tuningConfig" : { - ... - "workingPath": "/tmp", - ... - } -``` - -#### Metadata Update Job Spec - -This is a specification of the properties that tell the job how to update metadata such that the Druid cluster will see the output segments and load them. - -|Field|Type|Description|Required| -|-----|----|-----------|--------| -|type|String|"metadata" is the only value available.|yes| -|connectURI|String|A valid JDBC url to metadata storage.|yes| -|user|String|Username for db.|yes| -|password|String|password for db.|yes| -|segmentTable|String|Table to use in DB.|yes| - -These properties should parrot what you have configured for your [Coordinator](../design/coordinator.html). - -#### segmentOutputPath Config - -|Field|Type|Description|Required| -|-----|----|-----------|--------| -|segmentOutputPath|String|the path to dump segments into.|yes| - -#### workingPath Config - -|Field|Type|Description|Required| -|-----|----|-----------|--------| -|workingPath|String|the working path to use for intermediate results (results between Hadoop jobs).|no (default == '/tmp/druid-indexing')| - -Please note that the command line Hadoop indexer doesn't have the locking capabilities of the indexing service, so if you choose to use it, -you have to take caution to not override segments created by real-time processing (if you that a real-time pipeline set up). diff --git a/docs/content/ingestion/compaction.md b/docs/content/ingestion/compaction.md deleted file mode 100644 index 759cd219c77f..000000000000 --- a/docs/content/ingestion/compaction.md +++ /dev/null @@ -1,90 +0,0 @@ ---- -layout: doc_page -title: "Compaction Task" ---- - - - -# Compaction Task - -Compaction tasks merge all segments of the given interval. The syntax is: - -```json -{ - "type": "compact", - "id": , - "dataSource": , - "interval": , - "dimensions" , - "segmentGranularity": , - "targetCompactionSizeBytes": - "tuningConfig" , - "context": -} -``` - -|Field|Description|Required| -|-----|-----------|--------| -|`type`|Task type. Should be `compact`|Yes| -|`id`|Task id|No| -|`dataSource`|DataSource name to be compacted|Yes| -|`interval`|Interval of segments to be compacted|Yes| -|`dimensionsSpec`|Custom dimensionsSpec. Compaction task will use this dimensionsSpec if exist instead of generating one. See below for more details.|No| -|`metricsSpec`|Custom metricsSpec. Compaction task will use this metricsSpec if specified rather than generating one.|No| -|`segmentGranularity`|If this is set, compactionTask will change the segment granularity for the given interval. See [segmentGranularity of Uniform Granularity Spec](./ingestion-spec.html#uniform-granularity-spec) for more details. See the below table for the behavior.|No| -|`targetCompactionSizeBytes`|Target segment size after comapction. Cannot be used with `maxRowsPerSegment`, `maxTotalRows`, and `numShards` in tuningConfig.|No| -|`tuningConfig`|[Index task tuningConfig](../ingestion/native_tasks.html#tuningconfig)|No| -|`context`|[Task context](../ingestion/locking-and-priority.html#task-context)|No| - - -An example of compaction task is - -```json -{ - "type" : "compact", - "dataSource" : "wikipedia", - "interval" : "2017-01-01/2018-01-01" -} -``` - -This compaction task reads _all segments_ of the interval `2017-01-01/2018-01-01` and results in new segments. -Since `segmentGranularity` is null, the original segment granularity will be remained and not changed after compaction. -To control the number of result segments per time chunk, you can set [maxRowsPerSegment](../configuration/index.html#compaction-dynamic-configuration) or [numShards](../ingestion/native_tasks.html#tuningconfig). -Please note that you can run multiple compactionTasks at the same time. For example, you can run 12 compactionTasks per month instead of running a single task for the entire year. - -A compaction task internally generates an `index` task spec for performing compaction work with some fixed parameters. -For example, its `firehose` is always the [ingestSegmentFirehose](./firehose.html#ingestsegmentfirehose), and `dimensionsSpec` and `metricsSpec` -include all dimensions and metrics of the input segments by default. - -Compaction tasks will exit with a failure status code, without doing anything, if the interval you specify has no -data segments loaded in it (or if the interval you specify is empty). - -The output segment can have different metadata from the input segments unless all input segments have the same metadata. - -- Dimensions: since Apache Druid (incubating) supports schema change, the dimensions can be different across segments even if they are a part of the same dataSource. -If the input segments have different dimensions, the output segment basically includes all dimensions of the input segments. -However, even if the input segments have the same set of dimensions, the dimension order or the data type of dimensions can be different. For example, the data type of some dimensions can be -changed from `string` to primitive types, or the order of dimensions can be changed for better locality. -In this case, the dimensions of recent segments precede that of old segments in terms of data types and the ordering. -This is because more recent segments are more likely to have the new desired order and data types. If you want to use -your own ordering and types, you can specify a custom `dimensionsSpec` in the compaction task spec. -- Roll-up: the output segment is rolled up only when `rollup` is set for all input segments. -See [Roll-up](../ingestion/index.html#rollup) for more details. -You can check that your segments are rolled up or not by using [Segment Metadata Queries](../querying/segmentmetadataquery.html#analysistypes). diff --git a/docs/content/ingestion/delete-data.md b/docs/content/ingestion/delete-data.md deleted file mode 100644 index 181fddb0ec63..000000000000 --- a/docs/content/ingestion/delete-data.md +++ /dev/null @@ -1,51 +0,0 @@ ---- -layout: doc_page -title: "Deleting Data" ---- - - - -# Deleting Data - -Permanent deletion of a segment in Apache Druid (incubating) has two steps: - -1. The segment must first be marked as "unused". This occurs when a segment is dropped by retention rules, and when a user manually disables a segment through the Coordinator API. -2. After segments have been marked as "unused", a Kill Task will delete any "unused" segments from Druid's metadata store as well as deep storage. - -For documentation on retention rules, please see [Data Retention](../operations/rule-configuration.html). - -For documentation on disabling segments using the Coordinator API, please see [Coordinator Delete API](../operations/api-reference.html#coordinator-delete) - -A data deletion tutorial is available at [Tutorial: Deleting data](../tutorials/tutorial-delete-data.html) - -## Kill Task - -Kill tasks delete all information about a segment and removes it from deep storage. Segments to kill must be unused -(used==0) in the Druid segment table. The available grammar is: - -```json -{ - "type": "kill", - "id": , - "dataSource": , - "interval" : , - "context": -} -``` diff --git a/docs/content/ingestion/firehose.md b/docs/content/ingestion/firehose.md deleted file mode 100644 index c691d2ab90a1..000000000000 --- a/docs/content/ingestion/firehose.md +++ /dev/null @@ -1,279 +0,0 @@ ---- -layout: doc_page -title: "Apache Druid (incubating) Firehoses" ---- - - - -# Apache Druid (incubating) Firehoses - -Firehoses are used in [native batch ingestion tasks](../ingestion/native_tasks.html) and stream push tasks automatically created by [Tranquility](../ingestion/stream-push.html). - -They are pluggable, and thus the configuration schema can and will vary based on the `type` of the Firehose. - -| Field | Type | Description | Required | -|-------|------|-------------|----------| -| type | String | Specifies the type of Firehose. Each value will have its own configuration schema. Firehoses packaged with Druid are described below. | yes | - -## Additional Firehoses - -There are several Firehoses readily available in Druid. Some are meant for examples, and others can be used directly in a production environment. - -For additional Firehoses, please see our [extensions list](../development/extensions.html). - -### LocalFirehose - -This Firehose can be used to read the data from files on local disk, and is mainly intended for proof-of-concept testing, and works with `string` typed parsers. -This Firehose is _splittable_ and can be used by [native parallel index tasks](./native_tasks.html#parallel-index-task). -Since each split represents a file in this Firehose, each worker task of `index_parallel` will read a file. -A sample local Firehose spec is shown below: - -```json -{ - "type": "local", - "filter" : "*.csv", - "baseDir": "/data/directory" -} -``` - -|property|description|required?| -|--------|-----------|---------| -|type|This should be "local".|yes| -|filter|A wildcard filter for files. See [here](http://commons.apache.org/proper/commons-io/apidocs/org/apache/commons/io/filefilter/WildcardFileFilter.html) for more information.|yes| -|baseDir|directory to search recursively for files to be ingested. |yes| - -### HttpFirehose - -This Firehose can be used to read the data from remote sites via HTTP, and works with `string` typed parsers. -This Firehose is _splittable_ and can be used by [native parallel index tasks](./native_tasks.html#parallel-index-task). -Since each split represents a file in this Firehose, each worker task of `index_parallel` will read a file. -A sample HTTP Firehose spec is shown below: - -```json -{ - "type": "http", - "uris": ["http://example.com/uri1", "http://example2.com/uri2"] -} -``` - -The below configurations can be optionally used if the URIs specified in the spec require a Basic Authentication Header. -Omitting these fields from your spec will result in HTTP requests with no Basic Authentication Header. - -|property|description|default| -|--------|-----------|-------| -|httpAuthenticationUsername|Username to use for authentication with specified URIs|None| -|httpAuthenticationPassword|PasswordProvider to use with specified URIs|None| - -Example with authentication fields using the DefaultPassword provider (this requires the password to be in the ingestion spec): - -```json -{ - "type": "http", - "uris": ["http://example.com/uri1", "http://example2.com/uri2"], - "httpAuthenticationUsername": "username", - "httpAuthenticationPassword": "password123" -} -``` - -You can also use the other existing Druid PasswordProviders. Here is an example using the EnvironmentVariablePasswordProvider: - -```json -{ - "type": "http", - "uris": ["http://example.com/uri1", "http://example2.com/uri2"], - "httpAuthenticationUsername": "username", - "httpAuthenticationPassword": { - "type": "environment", - "variable": "HTTP_FIREHOSE_PW" - } -} -``` - -The below configurations can optionally be used for tuning the Firehose performance. - -|property|description|default| -|--------|-----------|-------| -|maxCacheCapacityBytes|Maximum size of the cache space in bytes. 0 means disabling cache. Cached files are not removed until the ingestion task completes.|1073741824| -|maxFetchCapacityBytes|Maximum size of the fetch space in bytes. 0 means disabling prefetch. Prefetched files are removed immediately once they are read.|1073741824| -|prefetchTriggerBytes|Threshold to trigger prefetching HTTP objects.|maxFetchCapacityBytes / 2| -|fetchTimeout|Timeout for fetching an HTTP object.|60000| -|maxFetchRetry|Maximum retries for fetching an HTTP object.|3| - -### IngestSegmentFirehose - -This Firehose can be used to read the data from existing druid segments, potentially using a new schema and changing the name, dimensions, metrics, rollup, etc. of the segment. -This Firehose is _splittable_ and can be used by [native parallel index tasks](./native_tasks.html#parallel-index-task). -This firehose will accept any type of parser, but will only utilize the list of dimensions and the timestamp specification. - A sample ingest Firehose spec is shown below: - -```json -{ - "type": "ingestSegment", - "dataSource": "wikipedia", - "interval": "2013-01-01/2013-01-02" -} -``` - -|property|description|required?| -|--------|-----------|---------| -|type|This should be "ingestSegment".|yes| -|dataSource|A String defining the data source to fetch rows from, very similar to a table in a relational database|yes| -|interval|A String representing the ISO-8601 interval. This defines the time range to fetch the data over.|yes| -|dimensions|The list of dimensions to select. If left empty, no dimensions are returned. If left null or not defined, all dimensions are returned. |no| -|metrics|The list of metrics to select. If left empty, no metrics are returned. If left null or not defined, all metrics are selected.|no| -|filter| See [Filters](../querying/filters.html)|no| -|maxInputSegmentBytesPerTask|When used with the native parallel index task, the maximum number of bytes of input segments to process in a single task. If a single segment is larger than this number, it will be processed by itself in a single task (input segments are never split across tasks). Defaults to 150MB.|no| - -### SqlFirehose - -This Firehose can be used to ingest events residing in an RDBMS. The database connection information is provided as part of the ingestion spec. -For each query, the results are fetched locally and indexed. -If there are multiple queries from which data needs to be indexed, queries are prefetched in the background, up to `maxFetchCapacityBytes` bytes. -This firehose will accept any type of parser, but will only utilize the list of dimensions and the timestamp specification. See the extension documentation for more detailed ingestion examples. - -Requires one of the following extensions: - * [MySQL Metadata Store](../development/extensions-core/mysql.html). - * [PostgreSQL Metadata Store](../development/extensions-core/postgresql.html). - - -```json -{ - "type": "sql", - "database": { - "type": "mysql", - "connectorConfig": { - "connectURI": "jdbc:mysql://host:port/schema", - "user": "user", - "password": "password" - } - }, - "sqls": ["SELECT * FROM table1", "SELECT * FROM table2"] -} -``` - -|property|description|default|required?| -|--------|-----------|-------|---------| -|type|This should be "sql".||Yes| -|database|Specifies the database connection details.||Yes| -|maxCacheCapacityBytes|Maximum size of the cache space in bytes. 0 means disabling cache. Cached files are not removed until the ingestion task completes.|1073741824|No| -|maxFetchCapacityBytes|Maximum size of the fetch space in bytes. 0 means disabling prefetch. Prefetched files are removed immediately once they are read.|1073741824|No| -|prefetchTriggerBytes|Threshold to trigger prefetching SQL result objects.|maxFetchCapacityBytes / 2|No| -|fetchTimeout|Timeout for fetching the result set.|60000|No| -|foldCase|Toggle case folding of database column names. This may be enabled in cases where the database returns case insensitive column names in query results.|false|No| -|sqls|List of SQL queries where each SQL query would retrieve the data to be indexed.||Yes| - -#### Database - -|property|description|default|required?| -|--------|-----------|-------|---------| -|type|The type of database to query. Valid values are `mysql` and `postgresql`_||Yes| -|connectorConfig|Specify the database connection properties via `connectURI`, `user` and `password`||Yes| - - -### InlineFirehose - -This Firehose can be used to read the data inlined in its own spec. -It can be used for demos or for quickly testing out parsing and schema, and works with `string` typed parsers. -A sample inline Firehose spec is shown below: - -```json -{ - "type": "inline", - "data": "0,values,formatted\n1,as,CSV" -} -``` - -|property|description|required?| -|--------|-----------|---------| -|type|This should be "inline".|yes| -|data|Inlined data to ingest.|yes| - -### CombiningFirehose - -This Firehose can be used to combine and merge data from a list of different Firehoses. - -```json -{ - "type": "combining", - "delegates": [ { firehose1 }, { firehose2 }, ... ] -} -``` - -|property|description|required?| -|--------|-----------|---------| -|type|This should be "combining"|yes| -|delegates|List of Firehoses to combine data from|yes| - - -### Streaming Firehoses - -The EventReceiverFirehose is used in tasks automatically generated by -[Tranquility stream push](../ingestion/stream-push.html). These Firehoses are not suitable for batch ingestion. - -#### EventReceiverFirehose - -This Firehose can be used to ingest events using an HTTP endpoint, and works with `string` typed parsers. - -```json -{ - "type": "receiver", - "serviceName": "eventReceiverServiceName", - "bufferSize": 10000 -} -``` -When using this Firehose, events can be sent by submitting a POST request to the HTTP endpoint: - -`http://:/druid/worker/v1/chat//push-events/` - -|property|description|required?| -|--------|-----------|---------| -|type|This should be "receiver"|yes| -|serviceName|Name used to announce the event receiver service endpoint|yes| -|maxIdleTime|A Firehose is automatically shut down after not receiving any events for this period of time, in milliseconds. If not specified, a Firehose is never shut down due to being idle. Zero and negative values have the same effect.|no| -|bufferSize|Size of buffer used by Firehose to store events|no, default is 100000| - -Shut down time for EventReceiverFirehose can be specified by submitting a POST request to - -`http://:/druid/worker/v1/chat//shutdown?shutoffTime=` - -If shutOffTime is not specified, the Firehose shuts off immediately. - -#### TimedShutoffFirehose - -This can be used to start a Firehose that will shut down at a specified time. -An example is shown below: - -```json -{ - "type": "timed", - "shutoffTime": "2015-08-25T01:26:05.119Z", - "delegate": { - "type": "receiver", - "serviceName": "eventReceiverServiceName", - "bufferSize": 100000 - } -} -``` - -|property|description|required?| -|--------|-----------|---------| -|type|This should be "timed"|yes| -|shutoffTime|Time at which the Firehose should shut down, in ISO8601 format|yes| -|delegate|Firehose to use|yes| diff --git a/docs/content/ingestion/flatten-json.md b/docs/content/ingestion/flatten-json.md deleted file mode 100644 index 2eb36f12d886..000000000000 --- a/docs/content/ingestion/flatten-json.md +++ /dev/null @@ -1,180 +0,0 @@ ---- -layout: doc_page -title: "JSON Flatten Spec" ---- - - - -# JSON Flatten Spec - -| Field | Type | Description | Required | -|-------|------|-------------|----------| -| useFieldDiscovery | Boolean | If true, interpret all fields with singular values (not a map or list) and flat lists (lists of singular values) at the root level as columns. | no (default == true) | -| fields | JSON Object array | Specifies the fields of interest and how they are accessed | no (default == []) | - -Defining the JSON Flatten Spec allows nested JSON fields to be flattened during ingestion time. Only parseSpecs of types "json" or ["avro"](../development/extensions-core/avro.html) support flattening. - -'fields' is a list of JSON Objects, describing the field names and how the fields are accessed: - -## JSON Field Spec - -| Field | Type | Description | Required | -|-------|------|-------------|----------| -| type | String | Type of the field, "root", "path" or "jq". | yes | -| name | String | This string will be used as the column name when the data has been ingested. | yes | -| expr | String | Defines an expression for accessing the field within the JSON object, using [JsonPath](https://github.com/jayway/JsonPath) notation for type "path", and [jackson-jq](https://github.com/eiiches/jackson-jq) for type "jq". This field is only used for type "path" and "jq", otherwise ignored. | only for type "path" or "jq" | - -Suppose the event JSON has the following form: - -```json -{ - "timestamp": "2015-09-12T12:10:53.155Z", - "dim1": "qwerty", - "dim2": "asdf", - "dim3": "zxcv", - "ignore_me": "ignore this", - "metrica": 9999, - "foo": {"bar": "abc"}, - "foo.bar": "def", - "nestmet": {"val": 42}, - "hello": [1.0, 2.0, 3.0, 4.0, 5.0], - "mixarray": [1.0, 2.0, 3.0, 4.0, {"last": 5}], - "world": [{"hey": "there"}, {"tree": "apple"}], - "thing": {"food": ["sandwich", "pizza"]} -} -``` - -The column "metrica" is a Long metric column, "hello" is an array of Double metrics, and "nestmet.val" is a nested Long metric. All other columns are dimensions. - -To flatten this JSON, the parseSpec could be defined as follows: - -```json -"parseSpec": { - "format": "json", - "flattenSpec": { - "useFieldDiscovery": true, - "fields": [ - { - "type": "root", - "name": "dim1" - }, - "dim2", - { - "type": "path", - "name": "foo.bar", - "expr": "$.foo.bar" - }, - { - "type": "root", - "name": "foo.bar" - }, - { - "type": "path", - "name": "path-metric", - "expr": "$.nestmet.val" - }, - { - "type": "path", - "name": "hello-0", - "expr": "$.hello[0]" - }, - { - "type": "path", - "name": "hello-4", - "expr": "$.hello[4]" - }, - { - "type": "path", - "name": "world-hey", - "expr": "$.world[0].hey" - }, - { - "type": "path", - "name": "worldtree", - "expr": "$.world[1].tree" - }, - { - "type": "path", - "name": "first-food", - "expr": "$.thing.food[0]" - }, - { - "type": "path", - "name": "second-food", - "expr": "$.thing.food[1]" - }, - { - "type": "jq", - "name": "first-food-by-jq", - "expr": ".thing.food[1]" - }, - { - "type": "jq", - "name": "hello-total", - "expr": ".hello | sum" - } - ] - }, - "dimensionsSpec" : { - "dimensions" : [], - "dimensionsExclusions": ["ignore_me"] - }, - "timestampSpec" : { - "format" : "auto", - "column" : "timestamp" - } -} -``` - -Fields "dim3", "ignore_me", and "metrica" will be automatically discovered because 'useFieldDiscovery' is true, so they have been omitted from the field spec list. - -"ignore_me" will be automatically discovered but excluded as specified by dimensionsExclusions. - -Aggregators should use the metric column names as defined in the flattenSpec. Using the example above: - -```json -"metricsSpec" : [ -{ - "type" : "longSum", - "name" : "path-metric-sum", - "fieldName" : "path-metric" -}, -{ - "type" : "doubleSum", - "name" : "hello-0-sum", - "fieldName" : "hello-0" -}, -{ - "type" : "longSum", - "name" : "metrica-sum", - "fieldName" : "metrica" -} -] -``` - -Note that: - -* For convenience, when defining a root-level field, it is possible to define only the field name, as a string, shown with "dim2" above. -* Enabling 'useFieldDiscovery' will only autodetect fields at the root level with a single value (not a map or list), as well as fields referring to a list of single values. In the example above, "dim1", "dim2", "dim3", "ignore_me", "metrica", and "foo.bar" (at the root) would be automatically detected as columns. The "hello" field is a list of Doubles and will be autodiscovered, but note that the example ingests the individual list members as separate fields. The "world" field must be explicitly defined because its value is a map. The "mixarray" field, while similar to "hello", must also be explicitly defined because its last value is a map. -* Duplicate field definitions are not allowed, an exception will be thrown. -* If auto field discovery is enabled, any discovered field with the same name as one already defined in the field specs will be skipped and not added twice. -* The JSON input must be a JSON object at the root, not an array. e.g., {"valid": "true"} and {"valid":[1,2,3]} are supported but [{"invalid": "true"}] and [1,2,3] are not. -* [http://jsonpath.herokuapp.com/](http://jsonpath.herokuapp.com/) is useful for testing the path expressions. -* jackson-jq supports subset of [./jq](https://stedolan.github.io/jq/) syntax. Please refer jackson-jq document. diff --git a/docs/content/ingestion/hadoop-vs-native-batch.md b/docs/content/ingestion/hadoop-vs-native-batch.md deleted file mode 100644 index 968a9b756539..000000000000 --- a/docs/content/ingestion/hadoop-vs-native-batch.md +++ /dev/null @@ -1,43 +0,0 @@ ---- -layout: doc_page -title: "Hadoop-based Batch Ingestion VS Native Batch Ingestion" ---- - - - -# Comparison of Batch Ingestion Methods - -Apache Druid (incubating) basically supports three types of batch ingestion: Apache Hadoop-based -batch ingestion, native parallel batch ingestion, and native local batch -ingestion. The below table shows what features are supported by each -ingestion method. - - -| |Hadoop-based ingestion|Native parallel ingestion|Native local ingestion| -|---|----------------------|-------------------------|----------------------| -| Parallel indexing | Always parallel | Parallel if firehose is splittable
& maxNumConcurrentSubTasks > 1 in tuningConfig | Always sequential | -| Supported indexing modes | Overwriting mode | Both appending and overwriting modes | Both appending and overwriting modes | -| External dependency | Hadoop (it internally submits Hadoop jobs) | No dependency | No dependency | -| Supported [rollup modes](./index.html#roll-up-modes) | Perfect rollup | Both perfect and best-effort rollup | Both perfect and best-effort rollup | -| Supported partitioning methods | [Both Hash-based and range partitioning](./hadoop.html#partitioning-specification) | Hash-based partitioning (when `forceGuaranteedRollup` = true) | Hash-based partitioning (when `forceGuaranteedRollup` = true) | -| Supported input locations | All locations accessible via HDFS client or Druid dataSource | All implemented [firehoses](./firehose.html) | All implemented [firehoses](./firehose.html) | -| Supported file formats | All implemented Hadoop InputFormats | Currently text file formats (CSV, TSV, JSON) by default. Additional formats can be added though a [custom extension](../development/modules.html) implementing [`FiniteFirehoseFactory`](https://github.com/apache/incubator-druid/blob/master/core/src/main/java/org/apache/druid/data/input/FiniteFirehoseFactory.java) | Currently text file formats (CSV, TSV, JSON) by default. Additional formats can be added though a [custom extension](../development/modules.html) implementing [`FiniteFirehoseFactory`](https://github.com/apache/incubator-druid/blob/master/core/src/main/java/org/apache/druid/data/input/FiniteFirehoseFactory.java) | -| Saving parse exceptions in ingestion report | Currently not supported | Currently not supported | Supported | -| Custom segment version | Supported, but this is NOT recommended | N/A | N/A | diff --git a/docs/content/ingestion/index.md b/docs/content/ingestion/index.md deleted file mode 100644 index e9909a1445f9..000000000000 --- a/docs/content/ingestion/index.md +++ /dev/null @@ -1,306 +0,0 @@ ---- -layout: doc_page -title: "Ingestion" ---- - - - -# Ingestion - -## Overview - - - -### Datasources and segments - -Apache Druid (incubating) data is stored in "datasources", which are similar to tables in a traditional RDBMS. Each datasource is -partitioned by time and, optionally, further partitioned by other attributes. Each time range is called a "chunk" (for -example, a single day, if your datasource is partitioned by day). Within a chunk, data is partitioned into one or more -["segments"](../design/segments.html). Each segment is a single file, typically comprising up to a few million rows of data. Since segments are -organized into time chunks, it's sometimes helpful to think of segments as living on a timeline like the following: - - - -A datasource may have anywhere from just a few segments, up to hundreds of thousands and even millions of segments. Each -segment starts life off being created on a MiddleManager, and at that point, is mutable and uncommitted. The segment -building process includes the following steps, designed to produce a data file that is compact and supports fast -queries: - -- Conversion to columnar format -- Indexing with bitmap indexes -- Compression using various algorithms - - Dictionary encoding with id storage minimization for String columns - - Bitmap compression for bitmap indexes - - Type-aware compression for all columns - -Periodically, segments are published (committed). At this point, they are written to deep storage, become immutable, and -move from MiddleManagers to the Historical processes. An entry about the segment is also written to the metadata store. -This entry is a self-describing bit of metadata about the segment, including things like the schema of the segment, its -size, and its location on deep storage. These entries are what the Coordinator uses to know what data *should* be -available on the cluster. - -For details on the segment file format, please see [segment files](../design/segments.html). - -For details on modeling your data in Druid, see [schema design](schema-design.html). - -#### Segment identifiers - -Segments all have a four-part identifier with the following components: - -- Datasource name. -- Time interval (for the time chunk containing the segment; this corresponds to the `segmentGranularity` specified -at ingestion time). -- Version number (generally an ISO8601 timestamp corresponding to when the segment set was first started). -- Partition number (an integer, unique within a datasource+interval+version; may not necessarily be contiguous). - -For example, this is the identifier for a segment in datasource `clarity-cloud0`, time chunk -`2018-05-21T16:00:00.000Z/2018-05-21T17:00:00.000Z`, version `2018-05-21T15:56:09.909Z`, and partition number 1: - -``` -clarity-cloud0_2018-05-21T16:00:00.000Z_2018-05-21T17:00:00.000Z_2018-05-21T15:56:09.909Z_1 -``` - -Segments with partition number 0 (the first partition in a chunk) omit the partition number, like the following -example, which is a segment in the same time chunk as the previous one, but with partition number 0 instead of 1: - -``` -clarity-cloud0_2018-05-21T16:00:00.000Z_2018-05-21T17:00:00.000Z_2018-05-21T15:56:09.909Z -``` - -#### Segment versioning - -You may be wondering what the "version number" described in the previous section is for. Or, you might not be, in which -case good for you and you can skip this section! - -It's there to support batch-mode overwriting. In Druid, if all you ever do is append data, then there will be just a -single version for each time chunk. But when you overwrite data, what happens behind the scenes is that a new set of -segments is created with the same datasource, same time interval, but a higher version number. This is a signal to the -rest of the Druid system that the older version should be removed from the cluster, and the new version should replace -it. - -The switch appears to happen instantaneously to a user, because Druid handles this by first loading the new data (but -not allowing it to be queried), and then, as soon as the new data is all loaded, switching all new queries to use those -new segments. Then it drops the old segments a few minutes later. - - -#### Segment states - -Segments can be either _available_ or _unavailable_, which refers to whether or not they are currently served by some -Druid server process. They can also be _published_ or _unpublished_, which refers to whether or not they have been -written to deep storage and the metadata store. And published segments can be either _used_ or _unused_, which refers to -whether or not Druid considers them active segments that should be served. - -Putting these together, there are five basic states that a segment can be in: - -- **Published, available, and used:** These segments are published in deep storage and the metadata store, and they are -served by Historical processes. They are the majority of active data in a Druid cluster (they include everything except -in-flight realtime data). -- **Published, available, and unused:** These segments are being served by Historicals, but won't be for very long. They -may be segments that have recently been overwritten (see [Segment versioning](#segment-versioning)) or dropped for -other reasons (like drop rules, or being dropped manually). -- **Published, unavailable, and used:** These segments are published in deep storage and the metadata store, and -_should_ be served, but are not actually being served. If segments stay in this state for more than a few minutes, it's -usually because something is wrong. Some of the more common causes include: failure of a large number of Historicals, -Historicals being out of capacity to download more segments, and some issue with coordination that prevents the -Coordinator from telling Historicals to load new segments. -- **Published, unavailable, and unused:** These segments are published in deep storage and the metadata store, but -are inactive (because they have been overwritten or dropped). They lie dormant, and can potentially be resurrected -by manual action if needed (in particular: setting the "used" flag to true). -- **Unpublished and available:** This is the state that segments are in while they are being built by Druid ingestion -tasks. This includes all "realtime" data that has not been handed off to Historicals yet. Segments in this state may or -may not be replicated. If all replicas are lost, then the segment must be rebuilt from scratch. This may or may not be -possible. (It is possible with Kafka, and happens automatically; it is possible with S3/HDFS by restarting the job; and -it is _not_ possible with Tranquility, so in that case, data will be lost.) - -The sixth state in this matrix, "unpublished and unavailable," isn't possible. If a segment isn't published and isn't -being served then does it really exist? - - -#### Indexing and handoff - -_Indexing_ is the mechanism by which new segments are created, and _handoff_ is the mechanism by which they are published -and begin being served by Historical processes. The mechanism works like this on the indexing side: - -1. An _indexing task_ starts running and building a new segment. It must determine the identifier of the segment before -it starts building it. For a task that is appending (like a Kafka task, or an index task in append mode) this will be -done by calling an "allocate" API on the Overlord to potentially add a new partition to an existing set of segments. For -a task that is overwriting (like a Hadoop task, or an index task _not_ in append mode) this is done by locking an -interval and creating a new version number and new set of segments. -2. If the indexing task is a realtime task (like a Kafka task) then the segment is immediately queryable at this point. -It's available, but unpublished. -3. When the indexing task has finished reading data for the segment, it pushes it to deep storage and then publishes it -by writing a record into the metadata store. -4. If the indexing task is a realtime task, at this point it waits for a Historical process to load the segment. If the -indexing task is not a realtime task, it exits immediately. - -And like this on the Coordinator / Historical side: - -1. The Coordinator polls the metadata store periodically (by default, every 1 minute) for newly published segments. -2. When the Coordinator finds a segment that is published and used, but unavailable, it chooses a Historical process -to load that segment and instructs that Historical to do so. -3. The Historical loads the segment and begins serving it. -4. At this point, if the indexing task was waiting for handoff, it will exit. - - -## Ingestion methods - -In most ingestion methods, this work is done by Druid -MiddleManager processes. One exception is Hadoop-based ingestion, where this work is instead done using a Hadoop MapReduce -job on YARN (although MiddleManager processes are still involved in starting and monitoring the Hadoop jobs). - -Once segments have been generated and stored in [deep storage](../dependencies/deep-storage.html), they will be loaded by Druid Historical processes. Some Druid -ingestion methods additionally support _real-time queries_, meaning you can query in-flight data on MiddleManager processes -before it is finished being converted and written to deep storage. In general, a small amount of data will be in-flight -on MiddleManager processes relative to the larger amount of historical data being served from Historical processes. - -See the [Design](../design/index.html) page for more details on how Druid stores and manages your data. - -The table below lists Druid's most common data ingestion methods, along with comparisons to help you choose -the best one for your situation. - -|Method|How it works|Can append and overwrite?|Can handle late data?|Exactly-once ingestion?|Real-time queries?| -|------|------------|-------------------------|---------------------|-----------------------|------------------| -|[Native batch](native_tasks.html)|Druid loads data directly from S3, HTTP, NFS, or other networked storage.|Append or overwrite|Yes|Yes|No| -|[Hadoop](hadoop.html)|Druid launches Hadoop Map/Reduce jobs to load data files.|Overwrite|Yes|Yes|No| -|[Kafka indexing service](../development/extensions-core/kafka-ingestion.html)|Druid reads directly from Kafka.|Append only|Yes|Yes|Yes| -|[Tranquility](stream-push.html)|You use Tranquility, a client side library, to push individual records into Druid.|Append only|No - late data is dropped|No - may drop or duplicate data|Yes| - -## Partitioning - -Druid is a distributed data store, and it partitions your data in order to process it in parallel. Druid -[datasources](../design/index.html) are always partitioned first by time based on the -[segmentGranularity](../ingestion/index.html#granularityspec) parameter of your ingestion spec. Each of these time partitions is called -a _time chunk_, and each time chunk contains one or more [segments](../design/segments.html). The segments within a -particular time chunk may be partitioned further using options that vary based on the ingestion method you have chosen. - - * With [Hadoop](hadoop.html) you can do hash- or range-based partitioning on one or more columns. - * With [Native batch](native_tasks.html) you can partition on a hash of dimension columns. This is useful when - rollup is enabled, since it maximizes your space savings. - * With [Kafka indexing](../development/extensions-core/kafka-ingestion.html), partitioning is based on Kafka - partitions, and is not configurable through Druid. You can configure it on the Kafka side by using the partitioning - functionality of the Kafka producer. - * With [Tranquility](stream-push.html), partitioning is done by default on a hash of all dimension columns in order - to maximize rollup. You can also provide a custom Partitioner class; see the - [Tranquility documentation](https://github.com/druid-io/tranquility/blob/master/docs/overview.md#partitioning-and-replication) - for details. - -All Druid datasources are partitioned by time. Each data ingestion method must acquire a write lock on a particular -time range when loading data, so no two methods can operate on the same time range of the same datasource at the same -time. However, two data ingestion methods _can_ operate on different time ranges of the same datasource at the same -time. For example, you can do a batch backfill from Hadoop while also doing a real-time load from Kafka, so long as -the backfill data and the real-time data do not need to be written to the same time partitions. (If they do, the -real-time load will take priority.) - -For tips on how partitioning can affect performance and storage footprint, see the -[schema design](schema-design.html#partitioning) page. - -## Rollup - -Druid is able to summarize raw data at ingestion time using a process we refer to as "roll-up". -Roll-up is a first-level aggregation operation over a selected set of "dimensions", where a set of "metrics" are aggregated. - -Suppose we have the following raw data, representing total packet/byte counts in particular seconds for traffic between a source and destination. The `srcIP` and `dstIP` fields are dimensions, while `packets` and `bytes` are metrics. - -``` -timestamp srcIP dstIP packets bytes -2018-01-01T01:01:35Z 1.1.1.1 2.2.2.2 100 1000 -2018-01-01T01:01:51Z 1.1.1.1 2.2.2.2 200 2000 -2018-01-01T01:01:59Z 1.1.1.1 2.2.2.2 300 3000 -2018-01-01T01:02:14Z 1.1.1.1 2.2.2.2 400 4000 -2018-01-01T01:02:29Z 1.1.1.1 2.2.2.2 500 5000 -2018-01-01T01:03:29Z 1.1.1.1 2.2.2.2 600 6000 -2018-01-02T21:33:14Z 7.7.7.7 8.8.8.8 100 1000 -2018-01-02T21:33:45Z 7.7.7.7 8.8.8.8 200 2000 -2018-01-02T21:35:45Z 7.7.7.7 8.8.8.8 300 3000 -``` - -If we ingest this data into Druid with a `queryGranularity` of `minute` (which will floor timestamps to minutes), the roll-up operation is equivalent to the following pseudocode: - -``` -GROUP BY TRUNCATE(timestamp, MINUTE), srcIP, dstIP :: SUM(packets), SUM(bytes) -``` - -After the data above is aggregated during roll-up, the following rows will be ingested: - -``` -timestamp srcIP dstIP packets bytes -2018-01-01T01:01:00Z 1.1.1.1 2.2.2.2 600 6000 -2018-01-01T01:02:00Z 1.1.1.1 2.2.2.2 900 9000 -2018-01-01T01:03:00Z 1.1.1.1 2.2.2.2 600 6000 -2018-01-02T21:33:00Z 7.7.7.7 8.8.8.8 300 3000 -2018-01-02T21:35:00Z 7.7.7.7 8.8.8.8 300 3000 -``` - -The rollup granularity is the minimum granularity you will be able to explore data at and events are floored to this granularity. -Hence, Druid ingestion specs define this granularity as the `queryGranularity` of the data. The lowest supported `queryGranularity` is millisecond. - -The following links may be helpful in further understanding dimensions and metrics: - -* [https://en.wikipedia.org/wiki/Dimension_(data_warehouse)](https://en.wikipedia.org/wiki/Dimension_(data_warehouse)) - -* [https://en.wikipedia.org/wiki/Measure_(data_warehouse)](https://en.wikipedia.org/wiki/Measure_(data_warehouse)) - -For tips on how to use rollup in your Druid schema designs, see the [schema design](schema-design.html#rollup) page. - -### Roll-up modes - -Druid supports two roll-up modes, i.e., _perfect roll-up_ and _best-effort roll-up_. In the perfect roll-up mode, Druid guarantees that input data are perfectly aggregated at ingestion time. Meanwhile, in the best-effort roll-up, input data might not be perfectly aggregated and thus there can be multiple segments holding the rows which should belong to the same segment with the perfect roll-up since they have the same dimension value and their timestamps fall into the same interval. - -The perfect roll-up mode encompasses an additional preprocessing step to determine intervals and shardSpecs before actual data ingestion if they are not specified in the ingestionSpec. This preprocessing step usually scans the entire input data which might increase the ingestion time. The [Hadoop indexing task](../ingestion/hadoop.html) always runs with this perfect roll-up mode. - -On the contrary, the best-effort roll-up mode doesn't require any preprocessing step, but the size of ingested data might be larger than that of the perfect roll-up. All types of [streaming indexing (e.g., kafka indexing service)](../ingestion/stream-ingestion.html) run with this mode. - -Finally, the [native index task](../ingestion/native_tasks.html) supports both modes and you can choose either one which fits to your application. - -## Data maintenance - -### Inserts and overwrites - -Druid can insert new data to an existing datasource by appending new segments to existing segment sets. It can also add new data by merging an existing set of segments with new data and overwriting the original set. - -Druid does not support single-record updates by primary key. - -Updates are described further at [update existing data](../ingestion/update-existing-data.html). - -### Compaction - -Compaction is a type of overwrite operation, which reads an existing set of segments, combines them into a new set with larger but fewer segments, and overwrites the original set with the new compacted set, without changing the data that is stored. - -For performance reasons, it is sometimes beneficial to compact a set of segments into a set of larger but fewer segments, as there is some per-segment processing and memory overhead in both the ingestion and querying paths. - -For compaction documentation, please see [tasks](../ingestion/tasks.html). - -### Retention and Tiering - -Druid supports retention rules, which are used to define intervals of time where data should be preserved, and intervals where data should be discarded. - -Druid also supports separating Historical processes into tiers, and the retention rules can be configured to assign data for specific intervals to specific tiers. - -These features are useful for performance/cost management; a common use case is separating Historical processes into a "hot" tier and a "cold" tier. - -For more information, please see [Load rules](../operations/rule-configuration.html). - -### Deletes - -Druid supports permanent deletion of segments that are in an "unused" state (see the [Segment states](#segment-states) section above). - -The Kill Task deletes unused segments within a specified interval from metadata storage and deep storage. - -For more information, please see [Kill Task](../ingestion/tasks.html#kill-task). diff --git a/docs/content/ingestion/ingestion-spec.md b/docs/content/ingestion/ingestion-spec.md deleted file mode 100644 index 25a9f5a35345..000000000000 --- a/docs/content/ingestion/ingestion-spec.md +++ /dev/null @@ -1,330 +0,0 @@ ---- -layout: doc_page -title: "Ingestion Spec" ---- - - - -# Ingestion Spec - -An Apache Druid (incubating) ingestion spec consists of 3 components: - -```json -{ - "dataSchema" : {...}, - "ioConfig" : {...}, - "tuningConfig" : {...} -} -``` - -| Field | Type | Description | Required | -|-------|------|-------------|----------| -| dataSchema | JSON Object | Specifies the the schema of the incoming data. All ingestion specs can share the same dataSchema. | yes | -| ioConfig | JSON Object | Specifies where the data is coming from and where the data is going. This object will vary with the ingestion method. | yes | -| tuningConfig | JSON Object | Specifies how to tune various ingestion parameters. This object will vary with the ingestion method. | no | - -# DataSchema - -An example dataSchema is shown below: - -```json -"dataSchema" : { - "dataSource" : "wikipedia", - "parser" : { - "type" : "string", - "parseSpec" : { - "format" : "json", - "timestampSpec" : { - "column" : "timestamp", - "format" : "auto" - }, - "dimensionsSpec" : { - "dimensions": [ - "page", - "language", - "user", - "unpatrolled", - "newPage", - "robot", - "anonymous", - "namespace", - "continent", - "country", - "region", - "city", - { - "type": "long", - "name": "countryNum" - }, - { - "type": "float", - "name": "userLatitude" - }, - { - "type": "float", - "name": "userLongitude" - } - ], - "dimensionExclusions" : [], - "spatialDimensions" : [] - } - } - }, - "metricsSpec" : [{ - "type" : "count", - "name" : "count" - }, { - "type" : "doubleSum", - "name" : "added", - "fieldName" : "added" - }, { - "type" : "doubleSum", - "name" : "deleted", - "fieldName" : "deleted" - }, { - "type" : "doubleSum", - "name" : "delta", - "fieldName" : "delta" - }], - "granularitySpec" : { - "segmentGranularity" : "DAY", - "queryGranularity" : "NONE", - "intervals" : [ "2013-08-31/2013-09-01" ] - }, - "transformSpec" : null -} -``` - -| Field | Type | Description | Required | -|-------|------|-------------|----------| -| dataSource | String | The name of the ingested datasource. Datasources can be thought of as tables. | yes | -| parser | JSON Object | Specifies how ingested data can be parsed. | yes | -| metricsSpec | JSON Object array | A list of [aggregators](../querying/aggregations.html). | yes | -| granularitySpec | JSON Object | Specifies how to create segments and roll up data. | yes | -| transformSpec | JSON Object | Specifes how to filter and transform input data. See [transform specs](../ingestion/transform-spec.html).| no | - -## Parser - -The default parser type is `string`, though a handful of extensions provide additional parser types. `string` typed parsers operate on text based inputs that can be split into individual records by newlines. For additional data formats, please see our [extensions list](../development/extensions.html). - -### String Parser - -| Field | Type | Description | Required | -|-------|------|-------------|----------| -| type | String | This should say `string` in general, or `hadoopyString` when used in a Hadoop indexing job. | no | -| parseSpec | JSON Object | Specifies the format, timestamp, and dimensions of the data. | yes | - -### ParseSpec - -ParseSpecs serve two purposes: - -- The String Parser use them to determine the format (i.e. JSON, CSV, TSV) of incoming rows. -- All Parsers use them to determine the timestamp and dimensions of incoming rows. - -If `format` is not included, the parseSpec defaults to `tsv`. - -#### JSON ParseSpec - -Use this with the String Parser to load JSON. - -| Field | Type | Description | Required | -|-------|------|-------------|----------| -| format | String | This should say `json`. | no | -| timestampSpec | JSON Object | Specifies the column and format of the timestamp. | yes | -| dimensionsSpec | JSON Object | Specifies the dimensions of the data. | yes | -| flattenSpec | JSON Object | Specifies flattening configuration for nested JSON data. See [Flattening JSON](./flatten-json.html) for more info. | no | - -#### JSON Lowercase ParseSpec - -
-The _jsonLowercase_ parser is deprecated and may be removed in a future version of Druid. -
- -This is a special variation of the JSON ParseSpec that lower cases all the column names in the incoming JSON data. This parseSpec is required if you are updating to Druid 0.7.x from Druid 0.6.x, are directly ingesting JSON with mixed case column names, do not have any ETL in place to lower case those column names, and would like to make queries that include the data you created using 0.6.x and 0.7.x. - -| Field | Type | Description | Required | -|-------|------|-------------|----------| -| format | String | This should say `jsonLowercase`. | yes | -| timestampSpec | JSON Object | Specifies the column and format of the timestamp. | yes | -| dimensionsSpec | JSON Object | Specifies the dimensions of the data. | yes | - -#### CSV ParseSpec - -Use this with the String Parser to load CSV. Strings are parsed using the com.opencsv library. - -| Field | Type | Description | Required | -|-------|------|-------------|----------| -| format | String | This should say `csv`. | yes | -| timestampSpec | JSON Object | Specifies the column and format of the timestamp. | yes | -| dimensionsSpec | JSON Object | Specifies the dimensions of the data. | yes | -| listDelimiter | String | A custom delimiter for multi-value dimensions. | no (default == ctrl+A) | -| columns | JSON array | Specifies the columns of the data. | yes | - -#### TSV / Delimited ParseSpec - -Use this with the String Parser to load any delimited text that does not require special escaping. By default, -the delimiter is a tab, so this will load TSV. - -| Field | Type | Description | Required | -|-------|------|-------------|----------| -| format | String | This should say `tsv`. | yes | -| timestampSpec | JSON Object | Specifies the column and format of the timestamp. | yes | -| dimensionsSpec | JSON Object | Specifies the dimensions of the data. | yes | -| delimiter | String | A custom delimiter for data values. | no (default == \t) | -| listDelimiter | String | A custom delimiter for multi-value dimensions. | no (default == ctrl+A) | -| columns | JSON String array | Specifies the columns of the data. | yes | - -#### TimeAndDims ParseSpec - -Use this with non-String Parsers to provide them with timestamp and dimensions information. Non-String Parsers -handle all formatting decisions on their own, without using the ParseSpec. - -| Field | Type | Description | Required | -|-------|------|-------------|----------| -| format | String | This should say `timeAndDims`. | yes | -| timestampSpec | JSON Object | Specifies the column and format of the timestamp. | yes | -| dimensionsSpec | JSON Object | Specifies the dimensions of the data. | yes | - -### TimestampSpec - -| Field | Type | Description | Required | -|-------|------|-------------|----------| -| column | String | The column of the timestamp. | yes | -| format | String | iso, posix, millis, micro, nano, auto or any [Joda time](http://joda-time.sourceforge.net/apidocs/org/joda/time/format/DateTimeFormat.html) format. | no (default == 'auto') | - -
- -### DimensionsSpec - -| Field | Type | Description | Required | -|-------|------|-------------|----------| -| dimensions | JSON array | A list of [dimension schema](#dimension-schema) objects or dimension names. Providing a name is equivalent to providing a String-typed dimension schema with the given name. If this is an empty array, Druid will treat all non-timestamp, non-metric columns that do not appear in "dimensionExclusions" as String-typed dimension columns. | yes | -| dimensionExclusions | JSON String array | The names of dimensions to exclude from ingestion. | no (default == []) | -| spatialDimensions | JSON Object array | An array of [spatial dimensions](../development/geo.html) | no (default == []) | - -#### Dimension Schema -A dimension schema specifies the type and name of a dimension to be ingested. - -For string columns, the dimension schema can also be used to enable or disable bitmap indexing by setting the -`createBitmapIndex` boolean. By default, bitmap indexes are enabled for all string columns. Only string columns can have -bitmap indexes; they are not supported for numeric columns. - -For example, the following `dimensionsSpec` section from a `dataSchema` ingests one column as Long (`countryNum`), two -columns as Float (`userLatitude`, `userLongitude`), and the other columns as Strings, with bitmap indexes disabled -for the `comment` column. - -```json -"dimensionsSpec" : { - "dimensions": [ - "page", - "language", - "user", - "unpatrolled", - "newPage", - "robot", - "anonymous", - "namespace", - "continent", - "country", - "region", - "city", - { - "type": "string", - "name": "comment", - "createBitmapIndex": false - }, - { - "type": "long", - "name": "countryNum" - }, - { - "type": "float", - "name": "userLatitude" - }, - { - "type": "float", - "name": "userLongitude" - } - ], - "dimensionExclusions" : [], - "spatialDimensions" : [] -} -``` - -## metricsSpec - The `metricsSpec` is a list of [aggregators](../querying/aggregations.html). If `rollup` is false in the granularity spec, the metrics spec should be an empty list and all columns should be defined in the `dimensionsSpec` instead (without rollup, there isn't a real distinction between dimensions and metrics at ingestion time). This is optional, however. - -## GranularitySpec - -GranularitySpec is to define how to partition a dataSource into [time chunks](../design/index.html#datasources-and-segments). -The default granularitySpec is `uniform`, and can be changed by setting the `type` field. -Currently, `uniform` and `arbitrary` types are supported. - -### Uniform Granularity Spec - -This spec is used to generated segments with uniform intervals. - -| Field | Type | Description | Required | -|-------|------|-------------|----------| -| segmentGranularity | string | The granularity to create time chunks at. Multiple segments can be created per time chunk. For example, with 'DAY' `segmentGranularity`, the events of the same day fall into the same time chunk which can be optionally further partitioned into multiple segments based on other configurations and input size. See [Granularity](../querying/granularities.html) for supported granularities.| no (default == 'DAY') | -| queryGranularity | string | The minimum granularity to be able to query results at and the granularity of the data inside the segment. E.g. a value of "minute" will mean that data is aggregated at minutely granularity. That is, if there are collisions in the tuple (minute(timestamp), dimensions), then it will aggregate values together using the aggregators instead of storing individual rows. A granularity of 'NONE' means millisecond granularity. See [Granularity](../querying/granularities.html) for supported granularities.| no (default == 'NONE') | -| rollup | boolean | rollup or not | no (default == true) | -| intervals | JSON string array | A list of intervals for the raw data being ingested. Ignored for real-time ingestion. | no. If specified, Hadoop and native non-parallel batch ingestion tasks may skip determining partitions phase which results in faster ingestion; native parallel ingestion tasks can request all their locks up-front instead of one by one. Batch ingestion will thrown away any data not in the specified intervals. | - -### Arbitrary Granularity Spec - -This spec is used to generate segments with arbitrary intervals (it tries to create evenly sized segments). This spec is not supported for real-time processing. - -| Field | Type | Description | Required | -|-------|------|-------------|----------| -| queryGranularity | string | The minimum granularity to be able to query results at and the granularity of the data inside the segment. E.g. a value of "minute" will mean that data is aggregated at minutely granularity. That is, if there are collisions in the tuple (minute(timestamp), dimensions), then it will aggregate values together using the aggregators instead of storing individual rows. A granularity of 'NONE' means millisecond granularity. See [Granularity](../querying/granularities.html) for supported granularities.| no (default == 'NONE') | -| rollup | boolean | rollup or not | no (default == true) | -| intervals | JSON string array | A list of intervals for the raw data being ingested. Ignored for real-time ingestion. | no. If specified, Hadoop and native non-parallel batch ingestion tasks may skip determining partitions phase which results in faster ingestion; native parallel ingestion tasks can request all their locks up-front instead of one by one. Batch ingestion will thrown away any data not in the specified intervals. | - -# Transform Spec - -Transform specs allow Druid to transform and filter input data during ingestion. See [Transform specs](../ingestion/transform-spec.html) - -# IO Config - -The IOConfig spec differs based on the ingestion task type. - -* Native Batch ingestion: See [Native Batch IOConfig](../ingestion/native_tasks.html#ioconfig) -* Hadoop Batch ingestion: See [Hadoop Batch IOConfig](../ingestion/hadoop.html#ioconfig) -* Kafka Indexing Service: See [Kafka Supervisor IOConfig](../development/extensions-core/kafka-ingestion.html#KafkaSupervisorIOConfig) -* Stream Push Ingestion: Stream push ingestion with Tranquility does not require an IO Config. - -# Tuning Config - -The TuningConfig spec differs based on the ingestion task type. - -* Native Batch ingestion: See [Native Batch TuningConfig](../ingestion/native_tasks.html#tuningconfig) -* Hadoop Batch ingestion: See [Hadoop Batch TuningConfig](../ingestion/hadoop.html#tuningconfig) -* Kafka Indexing Service: See [Kafka Supervisor TuningConfig](../development/extensions-core/kafka-ingestion.html#KafkaSupervisorTuningConfig) -* Stream Push Ingestion (Tranquility): See [Tranquility TuningConfig](http://static.druid.io/tranquility/api/latest/#com.metamx.tranquility.druid.DruidTuning). - -# Evaluating Timestamp, Dimensions and Metrics - -Druid will interpret dimensions, dimension exclusions, and metrics in the following order: - -* Any column listed in the list of dimensions is treated as a dimension. -* Any column listed in the list of dimension exclusions is excluded as a dimension. -* The timestamp column and columns/fieldNames required by metrics are excluded by default. -* If a metric is also listed as a dimension, the metric must have a different name than the dimension name. diff --git a/docs/content/ingestion/locking-and-priority.md b/docs/content/ingestion/locking-and-priority.md deleted file mode 100644 index eaeab9903d6b..000000000000 --- a/docs/content/ingestion/locking-and-priority.md +++ /dev/null @@ -1,139 +0,0 @@ ---- -layout: doc_page -title: "Task Locking & Priority" ---- - - - -# Task Locking & Priority - -This document explains the task locking system in Druid. Druid's locking system -and versioning system are tighly coupled with each other to guarantee the correctness of ingested data. - -## Overshadow Relation between Segments - -You can run a task to overwrite existing data. The segments created by an overwriting task _overshadows_ existing segments. -Note that the overshadow relation holds only for the same time chunk and the same data source. -These overshadowed segments are not considered in query processing to filter out stale data. - -Each segment has a _major_ version and a _minor_ version. The major version is -represented as a timestamp in the format of [`"yyyy-MM-dd'T'hh:mm:ss"`](https://www.joda.org/joda-time/apidocs/org/joda/time/format/DateTimeFormat.html) -while the minor version is an integer number. These major and minor versions -are used to determine the overshadow relation between segments as seen below. - -A segment `s1` overshadows another `s2` if - -- `s1` has a higher major version than `s2`, or -- `s1` has the same major version and a higher minor version than `s2`. - -Here are some examples. - -- A segment of the major version of `2019-01-01T00:00:00.000Z` and the minor version of `0` overshadows - another of the major version of `2018-01-01T00:00:00.000Z` and the minor version of `1`. -- A segment of the major version of `2019-01-01T00:00:00.000Z` and the minor version of `1` overshadows - another of the major version of `2019-01-01T00:00:00.000Z` and the minor version of `0`. - -## Locking - -If you are running two or more [druid tasks](./tasks.html) which generate segments for the same data source and the same time chunk, -the generated segments could potentially overshadow each other, which could lead to incorrect query results. - -To avoid this problem, tasks will attempt to get locks prior to creating any segment in Druid. -There are two types of locks, i.e., _time chunk lock_ and _segment lock_. - -When the time chunk lock is used, a task locks the entire time chunk of a data source where generated segments will be written. -For example, suppose we have a task ingesting data into the time chunk of `2019-01-01T00:00:00.000Z/2019-01-02T00:00:00.000Z` of the `wikipedia` data source. -With the time chunk locking, this task will lock the entire time chunk of `2019-01-01T00:00:00.000Z/2019-01-02T00:00:00.000Z` of the `wikipedia` data source -before it creates any segments. As long as it holds the lock, any other tasks will be unable to create segments for the same time chunk of the same data source. -The segments created with the time chunk locking have a _higher_ major version than existing segments. Their minor version is always `0`. - -When the segment lock is used, a task locks individual segments instead of the entire time chunk. -As a result, two or more tasks can create segments for the same time chunk of the same data source simultaneously -if they are reading different segments. -For example, a Kafka indexing task and a compaction task can always write segments into the same time chunk of the same data source simultaneously. -The reason for this is because a Kafka indexing task always appends new segments, while a compaction task always overwrites existing segments. -The segments created with the segment locking have the _same_ major version and a _higher_ minor version. - -
-The segment locking is still experimental. It could have unknown bugs which potentially lead to incorrect query results. -
- -To enable segment locking, you may need to set `forceTimeChunkLock` to `false` in the [task context](#task-context). -Once `forceTimeChunkLock` is unset, the task will choose a proper lock type to use automatically. -Please note that segment lock is not always available. The most common use case where time chunk lock is enforced is -when an overwriting task changes the segment granularity. -Also, the segment locking is supported by only native indexing tasks and Kafka/Kinesis indexing tasks. -The Hadoop indexing tasks and realtime indexing tasks (with [Tranquility](./stream-push.html)) don't support it yet. - -`forceTimeChunkLock` in the task context is only applied to individual tasks. -If you want to unset it for all tasks, you would want to set `druid.indexer.tasklock.forceTimeChunkLock` to false in the [overlord configuration](../configuration/index.html#overlord-operations). - -Lock requests can conflict with each other if two or more tasks try to get locks for the overlapped time chunks of the same data source. -Note that the lock conflict can happen between different locks types. - -The behavior on lock conflicts depends on the [task priority](#task-lock-priority). -If all tasks of conflicting lock requests have the same priority, then the task who requested first will get the lock. -Other tasks will wait for the task to release the lock. - -If a task of a lower priority asks a lock later than another of a higher priority, -this task will also wait for the task of a higher priority to release the lock. -If a task of a higher priority asks a lock later than another of a lower priority, -then this task will _preempt_ the other task of a lower priority. The lock -of the lower-prioritized task will be revoked and the higher-prioritized task will acquire a new lock. - -This lock preemption can happen at any time while a task is running except -when it is _publishing segments_ in a critical section. Its locks become preemptable again once publishing segments is finished. - -Note that locks are shared by the tasks of the same groupId. -For example, Kafka indexing tasks of the same supervisor have the same groupId and share all locks with each other. - -## Task Lock Priority - -Each task type has a different default lock priority. The below table shows the default priorities of different task types. Higher the number, higher the priority. - -|task type|default priority| -|---------|----------------| -|Realtime index task|75| -|Batch index task|50| -|Merge/Append/Compaction task|25| -|Other tasks|0| - -You can override the task priority by setting your priority in the task context as below. - -```json -"context" : { - "priority" : 100 -} -``` - -## Task Context - -The task context is used for various individual task configuration. The following parameters apply to all task types. - -|property|default|description| -|--------|-------|-----------| -|taskLockTimeout|300000|task lock timeout in millisecond. For more details, see [Locking](#locking).| -|forceTimeChunkLock|true|_**Setting this to false is still experimental**_
Force to always use time chunk lock. If not set, each task automatically chooses a lock type to use. If this is set, it will overwrite the `druid.indexer.tasklock.forceTimeChunkLock` [configuration for the overlord](../configuration/index.html#overlord-operations). See [Locking](#locking) for more details.| -|priority|Different based on task types. See [Priority](#priority).|Task priority| - -
-When a task acquires a lock, it sends a request via HTTP and awaits until it receives a response containing the lock acquisition result. -As a result, an HTTP timeout error can occur if `taskLockTimeout` is greater than `druid.server.http.maxIdleTime` of Overlords. -
diff --git a/docs/content/ingestion/misc-tasks.md b/docs/content/ingestion/misc-tasks.md deleted file mode 100644 index 48c4a5b1fd8d..000000000000 --- a/docs/content/ingestion/misc-tasks.md +++ /dev/null @@ -1,94 +0,0 @@ ---- -layout: doc_page -title: "Miscellaneous Tasks" ---- - - - -# Miscellaneous Tasks - -## Noop Task - -These tasks start, sleep for a time and are used only for testing. The available grammar is: - -```json -{ - "type": "noop", - "id": , - "interval" : , - "runTime" : , - "firehose": -} -``` - - -## Segment Merging Tasks (Deprecated) - -### Append Task - -Append tasks append a list of segments together into a single segment (one after the other). The grammar is: - -```json -{ - "type": "append", - "id": , - "dataSource": , - "segments": , - "aggregations": , - "context": -} -``` - -### Merge Task - -Merge tasks merge a list of segments together. Any common timestamps are merged. -If rollup is disabled as part of ingestion, common timestamps are not merged and rows are reordered by their timestamp. - -The grammar is: - -```json -{ - "type": "merge", - "id": , - "dataSource": , - "aggregations": , - "rollup": , - "segments": , - "context": -} -``` - -### Same Interval Merge Task - -Same Interval Merge task is a shortcut of merge task, all segments in the interval are going to be merged. - -The grammar is: - -```json -{ - "type": "same_interval_merge", - "id": , - "dataSource": , - "aggregations": , - "rollup": , - "interval": , - "context": -} -``` diff --git a/docs/content/ingestion/reports.md b/docs/content/ingestion/reports.md deleted file mode 100644 index 922fa77ed2c2..000000000000 --- a/docs/content/ingestion/reports.md +++ /dev/null @@ -1,152 +0,0 @@ ---- -layout: doc_page -title: "Ingestion Reports" ---- - - - -# Ingestion Reports - -## Completion Report - -After a task completes, a report containing information about the number of rows ingested and any parse exceptions that occurred is available at: - -``` -http://:/druid/indexer/v1/task//reports -``` - -This reporting feature is supported by the non-parallel native batch tasks, the Hadoop batch task, and tasks created by the Kafka Indexing Service. Realtime tasks created by Tranquility do not provide completion reports. - -An example output is shown below, along with a description of the fields: - -```json -{ - "ingestionStatsAndErrors": { - "taskId": "compact_twitter_2018-09-24T18:24:23.920Z", - "payload": { - "ingestionState": "COMPLETED", - "unparseableEvents": {}, - "rowStats": { - "determinePartitions": { - "processed": 0, - "processedWithError": 0, - "thrownAway": 0, - "unparseable": 0 - }, - "buildSegments": { - "processed": 5390324, - "processedWithError": 0, - "thrownAway": 0, - "unparseable": 0 - } - }, - "errorMsg": null - }, - "type": "ingestionStatsAndErrors" - } -} -``` - -The `ingestionStatsAndErrors` report provides information about row counts and errors. - -The `ingestionState` shows what step of ingestion the task reached. Possible states include: -* `NOT_STARTED`: The task has not begun reading any rows -* `DETERMINE_PARTITIONS`: The task is processing rows to determine partitioning -* `BUILD_SEGMENTS`: The task is processing rows to construct segments -* `COMPLETED`: The task has finished its work. - -Only batch tasks have the DETERMINE_PARTITIONS phase. Realtime tasks such as those created by the Kafka Indexing Service do not have a DETERMINE_PARTITIONS phase. - -`unparseableEvents` contains lists of exception messages that were caused by unparseable inputs. This can help with identifying problematic input rows. There will be one list each for the DETERMINE_PARTITIONS and BUILD_SEGMENTS phases. Note that the Hadoop batch task does not support saving of unparseable events. - -the `rowStats` map contains information about row counts. There is one entry for each ingestion phase. The definitions of the different row counts are shown below: -* `processed`: Number of rows successfully ingested without parsing errors -* `processedWithError`: Number of rows that were ingested, but contained a parsing error within one or more columns. This typically occurs where input rows have a parseable structure but invalid types for columns, such as passing in a non-numeric String value for a numeric column. -* `thrownAway`: Number of rows skipped. This includes rows with timestamps that were outside of the ingestion task's defined time interval and rows that were filtered out with [Transform Specs](../ingestion/transform-spec.html). -* `unparseable`: Number of rows that could not be parsed at all and were discarded. This tracks input rows without a parseable structure, such as passing in non-JSON data when using a JSON parser. - -The `errorMsg` field shows a message describing the error that caused a task to fail. It will be null if the task was successful. - -## Live Reports - -### Row stats - -The non-parallel [Native Batch Task](../ingestion/native_tasks.html), the Hadoop batch task, and the tasks created by the Kafka Indexing Service support retrieval of row stats while the task is running. - -The live report can be accessed with a GET to the following URL on a Peon running a task: - -``` -http://:/druid/worker/v1/chat//rowStats -``` - -An example report is shown below. The `movingAverages` section contains 1 minute, 5 minute, and 15 minute moving averages of increases to the four row counters, which have the same definitions as those in the completion report. The `totals` section shows the current totals. - -``` -{ - "movingAverages": { - "buildSegments": { - "5m": { - "processed": 3.392158326408501, - "unparseable": 0, - "thrownAway": 0, - "processedWithError": 0 - }, - "15m": { - "processed": 1.736165476881023, - "unparseable": 0, - "thrownAway": 0, - "processedWithError": 0 - }, - "1m": { - "processed": 4.206417693750045, - "unparseable": 0, - "thrownAway": 0, - "processedWithError": 0 - } - } - }, - "totals": { - "buildSegments": { - "processed": 1994, - "processedWithError": 0, - "thrownAway": 0, - "unparseable": 0 - } - } -} -``` - -Note that this is only supported by the non-parallel [Native Batch Task](../ingestion/native_tasks.html), the Hadoop Batch task, and the tasks created by the Kafka Indexing Service. - -For the Kafka Indexing Service, a GET to the following Overlord API will retrieve live row stat reports from each task being managed by the supervisor and provide a combined report. - -``` -http://:/druid/indexer/v1/supervisor//stats -``` - -### Unparseable Events - -Current lists of unparseable events can be retrieved from a running task with a GET to the following Peon API: - -``` -http://:/druid/worker/v1/chat//unparseableEvents -``` - -Note that this is only supported by the non-parallel [Native Batch Task](../ingestion/native_tasks.html) and the tasks created by the Kafka Indexing Service. diff --git a/docs/content/ingestion/schema-changes.md b/docs/content/ingestion/schema-changes.md deleted file mode 100644 index 7ed617df5bd5..000000000000 --- a/docs/content/ingestion/schema-changes.md +++ /dev/null @@ -1,82 +0,0 @@ ---- -layout: doc_page -title: "Schema Changes" ---- - - - -# Schema Changes - -Schemas for datasources can change at any time and Apache Druid (incubating) supports different schemas among segments. - -## Replacing Segments - -Druid uniquely -identifies segments using the datasource, interval, version, and partition number. The partition number is only visible in the segment id if -there are multiple segments created for some granularity of time. For example, if you have hourly segments, but you -have more data in an hour than a single segment can hold, you can create multiple segments for the same hour. These segments will share -the same datasource, interval, and version, but have linearly increasing partition numbers. - -``` -foo_2015-01-01/2015-01-02_v1_0 -foo_2015-01-01/2015-01-02_v1_1 -foo_2015-01-01/2015-01-02_v1_2 -``` - -In the example segments above, the dataSource = foo, interval = 2015-01-01/2015-01-02, version = v1, partitionNum = 0. -If at some later point in time, you reindex the data with a new schema, the newly created segments will have a higher version id. - -``` -foo_2015-01-01/2015-01-02_v2_0 -foo_2015-01-01/2015-01-02_v2_1 -foo_2015-01-01/2015-01-02_v2_2 -``` - -Druid batch indexing (either Hadoop-based or IndexTask-based) guarantees atomic updates on an interval-by-interval basis. -In our example, until all `v2` segments for `2015-01-01/2015-01-02` are loaded in a Druid cluster, queries exclusively use `v1` segments. -Once all `v2` segments are loaded and queryable, all queries ignore `v1` segments and switch to the `v2` segments. -Shortly afterwards, the `v1` segments are unloaded from the cluster. - -Note that updates that span multiple segment intervals are only atomic within each interval. They are not atomic across the entire update. -For example, you have segments such as the following: - -``` -foo_2015-01-01/2015-01-02_v1_0 -foo_2015-01-02/2015-01-03_v1_1 -foo_2015-01-03/2015-01-04_v1_2 -``` - -`v2` segments will be loaded into the cluster as soon as they are built and replace `v1` segments for the period of time the -segments overlap. Before v2 segments are completely loaded, your cluster may have a mixture of `v1` and `v2` segments. - -``` -foo_2015-01-01/2015-01-02_v1_0 -foo_2015-01-02/2015-01-03_v2_1 -foo_2015-01-03/2015-01-04_v1_2 -``` - -In this case, queries may hit a mixture of `v1` and `v2` segments. - -## Different Schemas Among Segments - -Druid segments for the same datasource may have different schemas. If a string column (dimension) exists in one segment but not -another, queries that involve both segments still work. Queries for the segment missing the dimension will behave as if the dimension has only null values. -Similarly, if one segment has a numeric column (metric) but another does not, queries on the segment missing the -metric will generally "do the right thing". Aggregations over this missing metric behave as if the metric were missing. diff --git a/docs/content/ingestion/stream-ingestion.md b/docs/content/ingestion/stream-ingestion.md deleted file mode 100644 index cc1cb916b01a..000000000000 --- a/docs/content/ingestion/stream-ingestion.md +++ /dev/null @@ -1,56 +0,0 @@ ---- -layout: doc_page -title: "Loading Streams" ---- - - - -# Loading Streams - -Streams can be ingested in Apache Druid (incubating) using either [Tranquility](https://github.com/druid-io/tranquility) (a Druid-aware -client) or the [Kafka Indexing Service](../development/extensions-core/kafka-ingestion.html). - -## Tranquility (Stream Push) - -If you have a program that generates a stream, then you can push that stream directly into Druid in -real-time. With this approach, Tranquility is embedded in your data-producing application. -Tranquility comes with bindings for the -Storm and Samza stream processors. It also has a direct API that can be used from any JVM-based -program, such as Spark Streaming or a Kafka consumer. - -Tranquility handles partitioning, replication, service discovery, and schema rollover for you, -seamlessly and without downtime. You only have to define your Druid schema. - -For examples and more information, please see the [Tranquility README](https://github.com/druid-io/tranquility). - -A tutorial is also available at [Tutorial: Loading stream data using HTTP push](../tutorials/tutorial-tranquility.html). - -## Kafka Indexing Service (Stream Pull) - -Druid can pulll data from Kafka streams using the [Kafka Indexing Service](../development/extensions-core/kafka-ingestion.html). - -The Kafka indexing service enables the configuration of *supervisors* on the Overlord, which facilitate ingestion from -Kafka by managing the creation and lifetime of Kafka indexing tasks. These indexing tasks read events using Kafka's own -partition and offset mechanism and are therefore able to provide guarantees of exactly-once ingestion. They are also -able to read non-recent events from Kafka and are not subject to the window period considerations imposed on other -ingestion mechanisms. The supervisor oversees the state of the indexing tasks to coordinate handoffs, manage failures, -and ensure that the scalability and replication requirements are maintained. - -A tutorial is available at [Tutorial: Loading stream data from Kafka](../tutorials/tutorial-kafka.html). diff --git a/docs/content/ingestion/stream-push.md b/docs/content/ingestion/stream-push.md deleted file mode 100644 index 610177d03f9d..000000000000 --- a/docs/content/ingestion/stream-push.md +++ /dev/null @@ -1,186 +0,0 @@ ---- -layout: doc_page -title: "Stream Push" ---- - - - -# Stream Push - -Apache Druid (incubating) can connect to any streaming data source through -[Tranquility](https://github.com/druid-io/tranquility/blob/master/README.md), a package for pushing -streams to Druid in real-time. Druid does not come bundled with Tranquility, and you will have to download the distribution. - -
- -Note that with all streaming ingestion options, you must ensure that incoming data is recent -enough (within a [configurable windowPeriod](#segmentgranularity-and-windowperiod) of the current -time). Older messages will not be processed in real-time. Historical data is best processed with -[batch ingestion](../ingestion/batch-ingestion.html). - -### Server - -Druid can use [Tranquility Server](https://github.com/druid-io/tranquility/blob/master/docs/server.md), which -lets you send data to Druid without developing a JVM app. You can run Tranquility server colocated with Druid MiddleManagers -and Historical processes. - -Tranquility server is started by issuing: - -```bash -bin/tranquility server -configFile /server.json -``` - -To customize Tranquility Server: - -- In `server.json`, customize the `properties` and `dataSources`. -- If you have servers already running Tranquility, stop them (CTRL-C) and start -them up again. - -For tips on customizing `server.json`, see the -*[Writing an ingestion spec](../tutorials/tutorial-ingestion-spec.html)* tutorial and the -[Tranquility Server documentation](https://github.com/druid-io/tranquility/blob/master/docs/server.md). - -### JVM apps and stream processors - -Tranquility can also be embedded in JVM-based applications as a library. You can do this directly -in your own program using the -[Core API](https://github.com/druid-io/tranquility/blob/master/docs/core.md), or you can use -the connectors bundled in Tranquility for popular JVM-based stream processors such as -[Storm](https://github.com/druid-io/tranquility/blob/master/docs/storm.md), -[Samza](https://github.com/druid-io/tranquility/blob/master/docs/samza.md), -[Spark Streaming](https://github.com/druid-io/tranquility/blob/master/docs/spark.md), and -[Flink](https://github.com/druid-io/tranquility/blob/master/docs/flink.md). - -### Kafka (Deprecated) - -
-NOTE: Tranquility Kafka is deprecated. Please use the Kafka Indexing Service to load data from Kafka instead. -
- - -[Tranquility Kafka](https://github.com/druid-io/tranquility/blob/master/docs/kafka.md) -lets you load data from Kafka into Druid without writing any code. You only need a configuration -file. - -Tranquility server is started by issuing: - -```bash -bin/tranquility kafka -configFile /kafka.json -``` - -To customize Tranquility Kafka in the single-machine quickstart configuration: - -- In `kafka.json`, customize the `properties` and `dataSources`. -- If you have Tranquility already running, stop it (CTRL-C) and start it up again. - -For tips on customizing `kafka.json`, see the -[Tranquility Kafka documentation](https://github.com/druid-io/tranquility/blob/master/docs/kafka.md). - - -## Concepts - -### Task creation - -Tranquility automates creation of Druid realtime indexing tasks, handling partitioning, replication, -service discovery, and schema rollover for you, seamlessly and without downtime. You never have to -write code to deal with individual tasks directly. But, it can be helpful to understand how -Tranquility creates tasks. - -Tranquility spawns relatively short-lived tasks periodically, and each one handles a small number of -[Druid segments](../design/segments.html). Tranquility coordinates all task -creation through ZooKeeper. You can start up as many Tranquility instances as you like with the same -configuration, even on different machines, and they will send to the same set of tasks. - -See the [Tranquility overview](https://github.com/druid-io/tranquility/blob/master/docs/overview.md) -for more details about how Tranquility manages tasks. - -### segmentGranularity and windowPeriod - -The segmentGranularity is the time period covered by the segments produced by each task. For -example, a segmentGranularity of "hour" will spawn tasks that create segments covering one hour -each. - -The windowPeriod is the slack time permitted for events. For example, a windowPeriod of ten minutes -(the default) means that any events with a timestamp older than ten minutes in the past, or more -than ten minutes in the future, will be dropped. - -These are important configurations because they influence how long tasks will be alive for, and how -long data stays in the realtime system before being handed off to the Historical processes. For example, -if your configuration has segmentGranularity "hour" and windowPeriod ten minutes, tasks will stay -around listening for events for an hour and ten minutes. For this reason, to prevent excessive -buildup of tasks, it is recommended that your windowPeriod be less than your segmentGranularity. - -### Append only - -Druid streaming ingestion is *append-only*, meaning you cannot use streaming ingestion to update or -delete individual records after they are inserted. If you need to update or delete individual -records, you need to use a batch reindexing process. See the *[batch ingest](batch-ingestion.html)* -page for more details. - -Druid does support efficient deletion of entire time ranges without resorting to batch reindexing. -This can be done automatically through setting up retention policies. - -### Guarantees - -Tranquility operates under a best-effort design. It tries reasonably hard to preserve your data, by allowing you to set -up replicas and by retrying failed pushes for a period of time, but it does not guarantee that your events will be -processed exactly once. In some conditions, it can drop or duplicate events: - -- Events with timestamps outside your configured windowPeriod will be dropped. -- If you suffer more Druid Middle Manager failures than your configured replicas count, some -partially indexed data may be lost. -- If there is a persistent issue that prevents communication with the Druid indexing service, and -retry policies are exhausted during that period, or the period lasts longer than your windowPeriod, -some events will be dropped. -- If there is an issue that prevents Tranquility from receiving an acknowledgement from the indexing -service, it will retry the batch, which can lead to duplicated events. -- If you are using Tranquility inside Storm or Samza, various parts of both architectures have an -at-least-once design and can lead to duplicated events. - -Under normal operation, these risks are minimal. But if you need absolute 100% fidelity for -historical data, we recommend a hybrid/batch streaming architecture, described below. - -### Hybrid Batch/Streaming - -You can combine batch and streaming methods in a hybrid batch/streaming architecture. In a hybrid architecture, you use a streaming method to do initial ingestion, and then periodically re-ingest older data in batch mode (typically every few hours, or nightly). When Druid re-ingests data for a time range, the new data automatically replaces the data from the earlier ingestion. - -All streaming ingestion methods currently supported by Druid do introduce the possibility of dropped or duplicated messages in certain failure scenarios, and batch re-ingestion eliminates this potential source of error for historical data. - -Batch re-ingestion also gives you the option to re-ingest your data if you needed to revise it for any reason. - -### Deployment Notes - -Stream ingestion may generate a large number of small segments because it's difficult to optimize the segment size at -ingestion time. The number of segments will increase over time, and this might cuase the query performance issue. - -Details on how to optimize the segment size can be found on [Segment size optimization](../operations/segment-optimization.html). - -## Documentation - -Tranquility documentation be found [here](https://github.com/druid-io/tranquility/blob/master/README.md). - -## Configuration - -Tranquility configuration can be found [here](https://github.com/druid-io/tranquility/blob/master/docs/configuration.md). - -Tranquility's tuningConfig can be found [here](http://static.druid.io/tranquility/api/latest/#com.metamx.tranquility.druid.DruidTuning). diff --git a/docs/content/ingestion/tasks.md b/docs/content/ingestion/tasks.md deleted file mode 100644 index 59c1cee7e147..000000000000 --- a/docs/content/ingestion/tasks.md +++ /dev/null @@ -1,78 +0,0 @@ ---- -layout: doc_page -title: "Tasks Overview" ---- - - - -# Tasks Overview - -Apache Druid (incubating) tasks are run on MiddleManagers and always operate on a single data source. - -Tasks are submitted using POST requests to the Overlord. Please see [Overlord Task API](../operations/api-reference.html#overlord-tasks) for API details. - -There are several different types of tasks. - -## Segment Creation Tasks - -### Hadoop Index Task - -See [batch ingestion](../ingestion/hadoop.html). - -### Native Index Tasks - -Druid provides a native index task which doesn't need any dependencies on other systems. -See [native index tasks](./native_tasks.html) for more details. - -
-Please check [Hadoop-based Batch Ingestion VS Native Batch Ingestion](./hadoop-vs-native-batch.html) for differences between native batch ingestion and Hadoop-based ingestion. -
- -### Kafka Indexing Tasks - -Kafka Indexing tasks are automatically created by a Kafka Supervisor and are responsible for pulling data from Kafka streams. These tasks are not meant to be created/submitted directly by users. See [Kafka Indexing Service](../development/extensions-core/kafka-ingestion.html) for more details. - -### Stream Push Tasks (Tranquility) - -Tranquility Server automatically creates "realtime" tasks that receive events over HTTP using an [EventReceiverFirehose](../ingestion/firehose.html#eventreceiverfirehose). These tasks are not meant to be created/submitted directly by users. See [Tranquility Stream Push](../ingestion/stream-push.html) for more info. - -## Compaction Tasks - -Compaction tasks merge all segments of the given interval. Please see [Compaction](../ingestion/compaction.html) for details. - -## Segment Merging Tasks - -
-The documentation for the Append Task, Merge Task, and Same Interval Merge Task has been moved to Miscellaneous Tasks. -
- -## Kill Task - -Kill tasks delete all information about a segment and removes it from deep storage. - -Please see [Deleting Data](../ingestion/delete-data.html) for details. - -## Misc. Tasks - -Please see [Miscellaneous Tasks](../ingestion/misc-tasks.html). - -## Task Locking and Priority - -Please see [Task Locking and Priority](../ingestion/locking-and-priority.html). diff --git a/docs/content/ingestion/transform-spec.md b/docs/content/ingestion/transform-spec.md deleted file mode 100644 index 2a102c7d6e2d..000000000000 --- a/docs/content/ingestion/transform-spec.md +++ /dev/null @@ -1,104 +0,0 @@ ---- -layout: doc_page -title: "Transform Specs" ---- - - - -# Transform Specs - -Transform specs allow Apache Druid (incubating) to filter and transform input data during ingestion. - -## Syntax - -The syntax for the transformSpec is shown below: - -``` -"transformSpec": { - "transforms: , - "filter": -} -``` - -|property|description|required?| -|--------|-----------|---------| -|transforms|A list of [transforms](#transforms) to be applied to input rows. |no| -|filter|A [filter](../querying/filters.html) that will be applied to input rows; only rows that pass the filter will be ingested.|no| - -## Transforms - -The `transforms` list allows the user to specify a set of column transformations to be performed on input data. - -Transforms allow adding new fields to input rows. Each transform has a "name" (the name of the new field) which can be referred to by DimensionSpecs, AggregatorFactories, etc. - -A transform behaves as a "row function", taking an entire row as input and outputting a column value. - -If a transform has the same name as a field in an input row, then it will shadow the original field. Transforms that shadow fields may still refer to the fields they shadow. This can be used to transform a field "in-place". - -Transforms do have some limitations. They can only refer to fields present in the actual input rows; in particular, they cannot refer to other transforms. And they cannot remove fields, only add them. However, they can shadow a field with another field containing all nulls, which will act similarly to removing the field. - -Note that the transforms are applied before the filter. - -### Expression Transform - -Druid currently supports one kind of transform, the expression transform. - -An expression transform has the following syntax: - -``` -{ - "type": "expression", - "name": , - "expression": -} -``` - -|property|description|required?| -|--------|-----------|---------| -|name|The output field name of the expression transform.|yes| -|expression|An [expression](../misc/math-expr.html) that will be applied to input rows to produce a value for the transform's output field.|no| - -For example, the following expression transform prepends "foo" to the values of a `page` column in the input data, and creates a `fooPage` column. - -``` - { - "type": "expression", - "name": "fooPage", - "expression": "concat('foo' + page)" - } -``` - -## Filtering - -The transformSpec allows Druid to filter out input rows during ingestion. A row that fails to pass the filter will not be ingested. - -Any of Druid's standard [filters](../querying/filters.html) can be used. - -Note that the filtering takes place after the transforms, so filters will operate on transformed rows and not the raw input data if transforms are present. - -For example, the following filter would ingest only input rows where a `country` column has the value "United States": - -``` -"filter": { - "type": "selector", - "dimension": "country", - "value": "United States" -} -``` diff --git a/docs/content/ingestion/update-existing-data.md b/docs/content/ingestion/update-existing-data.md deleted file mode 100644 index c825616d7d19..000000000000 --- a/docs/content/ingestion/update-existing-data.md +++ /dev/null @@ -1,162 +0,0 @@ ---- -layout: doc_page -title: "Updating Existing Data" ---- - - - -# Updating Existing Data - -Once you ingest some data in a dataSource for an interval and create Apache Druid (incubating) segments, you might want to make changes to -the ingested data. There are several ways this can be done. - -##### Updating Dimension Values - -If you have a dimension where values need to be updated frequently, try first using [lookups](../querying/lookups.html). A -classic use case of lookups is when you have an ID dimension stored in a Druid segment, and want to map the ID dimension to a -human-readable String value that may need to be updated periodically. - -##### Rebuilding Segments (Reindexing) - -If lookups are not sufficient, you can entirely rebuild Druid segments for specific intervals of time. Rebuilding a segment -is known as reindexing the data. For example, if you want to add or remove columns from your existing segments, or you want to -change the rollup granularity of your segments, you will have to reindex your data. - -We recommend keeping a copy of your raw data around in case you ever need to reindex your data. - -##### Dealing with Delayed Events (Delta Ingestion) - -If you have a batch ingestion pipeline and have delayed events come in and want to append these events to existing -segments and avoid the overhead of rebuilding new segments with reindexing, you can use delta ingestion. - -### Reindexing and Delta Ingestion with Hadoop Batch Ingestion - -This section assumes the reader understands how to do batch ingestion using Hadoop. See -[Hadoop batch ingestion](./hadoop.html) for more information. Hadoop batch-ingestion can be used for reindexing and delta ingestion. - -Druid uses an `inputSpec` in the `ioConfig` to know where the data to be ingested is located and how to read it. -For simple Hadoop batch ingestion, `static` or `granularity` spec types allow you to read data stored in deep storage. - -There are other types of `inputSpec` to enable reindexing and delta ingestion. - -#### `dataSource` - -This is a type of `inputSpec` that reads data already stored inside Druid. This is used to allow "re-indexing" data and for "delta-ingestion" described later in `multi` type inputSpec. - -|Field|Type|Description|Required| -|-----|----|-----------|--------| -|type|String.|This should always be 'dataSource'.|yes| -|ingestionSpec|JSON object.|Specification of Druid segments to be loaded. See below.|yes| -|maxSplitSize|Number|Enables combining multiple segments into single Hadoop InputSplit according to size of segments. With -1, druid calculates max split size based on user specified number of map task(mapred.map.tasks or mapreduce.job.maps). By default, one split is made for one segment. maxSplitSize is specified in bytes.|no| -|useNewAggs|Boolean|If "false", then list of aggregators in "metricsSpec" of hadoop indexing task must be same as that used in original indexing task while ingesting raw data. Default value is "false". This field can be set to "true" when "inputSpec" type is "dataSource" and not "multi" to enable arbitrary aggregators while reindexing. See below for "multi" type support for delta-ingestion.|no| - -Here is what goes inside `ingestionSpec`: - -|Field|Type|Description|Required| -|-----|----|-----------|--------| -|dataSource|String|Druid dataSource name from which you are loading the data.|yes| -|intervals|List|A list of strings representing ISO-8601 Intervals.|yes| -|segments|List|List of segments from which to read data from, by default it is obtained automatically. You can obtain list of segments to put here by making a POST query to Coordinator at url /druid/coordinator/v1/metadata/datasources/segments?full with list of intervals specified in the request paylod e.g. ["2012-01-01T00:00:00.000/2012-01-03T00:00:00.000", "2012-01-05T00:00:00.000/2012-01-07T00:00:00.000"]. You may want to provide this list manually in order to ensure that segments read are exactly same as they were at the time of task submission, task would fail if the list provided by the user does not match with state of database when the task actually runs.|no| -|filter|JSON|See [Filters](../querying/filters.html)|no| -|dimensions|Array of String|Name of dimension columns to load. By default, the list will be constructed from parseSpec. If parseSpec does not have an explicit list of dimensions then all the dimension columns present in stored data will be read.|no| -|metrics|Array of String|Name of metric columns to load. By default, the list will be constructed from the "name" of all the configured aggregators.|no| -|ignoreWhenNoSegments|boolean|Whether to ignore this ingestionSpec if no segments were found. Default behavior is to throw error when no segments were found.|no| - -For example - -```json -"ioConfig" : { - "type" : "hadoop", - "inputSpec" : { - "type" : "dataSource", - "ingestionSpec" : { - "dataSource": "wikipedia", - "intervals": ["2014-10-20T00:00:00Z/P2W"] - } - }, - ... -} -``` - -#### `multi` - -This is a composing inputSpec to combine other inputSpecs. This inputSpec is used for delta ingestion. You can also use a `multi` inputSpec to combine data from multiple dataSources. However, each particular dataSource can only be specified one time. -Note that, "useNewAggs" must be set to default value false to support delta-ingestion. - -|Field|Type|Description|Required| -|-----|----|-----------|--------| -|children|Array of JSON objects|List of JSON objects containing other inputSpecs.|yes| - -For example: - -```json -"ioConfig" : { - "type" : "hadoop", - "inputSpec" : { - "type" : "multi", - "children": [ - { - "type" : "dataSource", - "ingestionSpec" : { - "dataSource": "wikipedia", - "intervals": ["2012-01-01T00:00:00.000/2012-01-03T00:00:00.000", "2012-01-05T00:00:00.000/2012-01-07T00:00:00.000"], - "segments": [ - { - "dataSource": "test1", - "interval": "2012-01-01T00:00:00.000/2012-01-03T00:00:00.000", - "version": "v2", - "loadSpec": { - "type": "local", - "path": "/tmp/index1.zip" - }, - "dimensions": "host", - "metrics": "visited_sum,unique_hosts", - "shardSpec": { - "type": "none" - }, - "binaryVersion": 9, - "size": 2, - "identifier": "test1_2000-01-01T00:00:00.000Z_3000-01-01T00:00:00.000Z_v2" - } - ] - } - }, - { - "type" : "static", - "paths": "/path/to/more/wikipedia/data/" - } - ] - }, - ... -} -``` - -It is STRONGLY RECOMMENDED to provide list of segments in `dataSource` inputSpec explicitly so that your delta ingestion task is idempotent. You can obtain that list of segments by making following call to the Coordinator. -POST `/druid/coordinator/v1/metadata/datasources/{dataSourceName}/segments?full` -Request Body: [interval1, interval2,...] for example ["2012-01-01T00:00:00.000/2012-01-03T00:00:00.000", "2012-01-05T00:00:00.000/2012-01-07T00:00:00.000"] - - -### Reindexing with Native Batch Ingestion - -This section assumes the reader understands how to do batch ingestion without Hadoop using [Native Batch Indexing](../ingestion/native_tasks.html), -which uses a "firehose" to know where and how to read the input data. [IngestSegmentFirehose](firehose.html#ingestsegmentfirehose) -can be used to read data from segments inside Druid. Note that IndexTask is to be used for prototyping purposes only as -it has to do all processing inside a single process and can't scale. Please use Hadoop batch ingestion for production -scenarios dealing with more than 1GB of data. diff --git a/docs/content/operations/including-extensions.md b/docs/content/operations/including-extensions.md deleted file mode 100644 index ebcb9ba989db..000000000000 --- a/docs/content/operations/including-extensions.md +++ /dev/null @@ -1,87 +0,0 @@ ---- -layout: doc_page -title: "Loading extensions" ---- - - - -# Loading extensions - -## Loading core extensions - -Apache Druid (incubating) bundles all [core extensions](../development/extensions.html#core-extensions) out of the box. -See the [list of extensions](../development/extensions.html#core-extensions) for your options. You -can load bundled extensions by adding their names to your common.runtime.properties -`druid.extensions.loadList` property. For example, to load the *postgresql-metadata-storage* and -*druid-hdfs-storage* extensions, use the configuration: - -``` -druid.extensions.loadList=["postgresql-metadata-storage", "druid-hdfs-storage"] -``` - -These extensions are located in the `extensions` directory of the distribution. - -
-Druid bundles two sets of configurations: one for the quickstart and -one for a clustered configuration. Make sure you are updating the correct -common.runtime.properties for your setup. -
- -
-Because of licensing, the mysql-metadata-storage extension does not include the required MySQL JDBC driver. For instructions -on how to install this library, see the MySQL extension page. -
- -## Loading community and third-party extensions (contrib extensions) - -You can also load community and third-party extensions not already bundled with Druid. To do this, first download the extension and -then install it into your `extensions` directory. You can download extensions from their distributors directly, or -if they are available from Maven, the included [pull-deps](../operations/pull-deps.html) can download them for you. To use *pull-deps*, -specify the full Maven coordinate of the extension in the form `groupId:artifactId:version`. For example, -for the (hypothetical) extension *com.example:druid-example-extension:1.0.0*, run: - -``` -java \ - -cp "lib/*" \ - -Ddruid.extensions.directory="extensions" \ - -Ddruid.extensions.hadoopDependenciesDir="hadoop-dependencies" \ - org.apache.druid.cli.Main tools pull-deps \ - --no-default-hadoop \ - -c "com.example:druid-example-extension:1.0.0" -``` - -You only have to install the extension once. Then, add `"druid-example-extension"` to -`druid.extensions.loadList` in common.runtime.properties to instruct Druid to load the extension. - -
-Please make sure all the Extensions related configuration properties listed here are set correctly. -
- -
-The Maven groupId for almost every community extension is org.apache.druid.extensions.contrib. The artifactId is the name -of the extension, and the version is the latest Druid stable version. -
- - -## Loading extensions from classpath - -If you add your extension jar to the classpath at runtime, Druid will also load it into the system. This mechanism is relatively easy to reason about, -but it also means that you have to ensure that all dependency jars on the classpath are compatible. That is, Druid makes no provisions while using -this method to maintain class loader isolation so you must make sure that the jars on your classpath are mutually compatible. diff --git a/docs/content/toc.md b/docs/content/toc.md deleted file mode 100644 index d88367a9324d..000000000000 --- a/docs/content/toc.md +++ /dev/null @@ -1,183 +0,0 @@ ---- -layout: toc ---- - - - -## Getting Started - * [Design](/docs/VERSION/design/index.html) - * [What is Druid?](/docs/VERSION/design/index.html#what-is-druid) - * [When should I use Druid?](/docs/VERSION/design/index.html#when-to-use-druid) - * [Architecture](/docs/VERSION/design/index.html#architecture) - * [Datasources & Segments](/docs/VERSION/design/index.html#datasources-and-segments) - * [Query processing](/docs/VERSION/design/index.html#query-processing) - * [External dependencies](/docs/VERSION/design/index.html#external-dependencies) - * [Ingestion overview](/docs/VERSION/ingestion/index.html) - * [Getting Started](/docs/VERSION/operations/getting-started.html) - * [Single-server Quickstart](/docs/VERSION/tutorials/index.html) - * [Tutorial: Loading a file from local disk](/docs/VERSION/tutorials/tutorial-batch.html) - * [Tutorial: Loading stream data from Apache Kafka](/docs/VERSION/tutorials/tutorial-kafka.html) - * [Tutorial: Loading a file using Apache Hadoop](/docs/VERSION/tutorials/tutorial-batch-hadoop.html) - * [Tutorial: Loading stream data using HTTP push](/docs/VERSION/tutorials/tutorial-tranquility.html) - * [Tutorial: Querying data](/docs/VERSION/tutorials/tutorial-query.html) - * Further tutorials - * [Tutorial: Rollup](/docs/VERSION/tutorials/tutorial-rollup.html) - * [Tutorial: Configuring retention](/docs/VERSION/tutorials/tutorial-retention.html) - * [Tutorial: Updating existing data](/docs/VERSION/tutorials/tutorial-update-data.html) - * [Tutorial: Compacting segments](/docs/VERSION/tutorials/tutorial-compaction.html) - * [Tutorial: Deleting data](/docs/VERSION/tutorials/tutorial-delete-data.html) - * [Tutorial: Writing your own ingestion specs](/docs/VERSION/tutorials/tutorial-ingestion-spec.html) - * [Tutorial: Transforming input data](/docs/VERSION/tutorials/tutorial-transform-spec.html) - * [Clustering](/docs/VERSION/tutorials/cluster.html) - * Further examples - * [Single-server deployment](/docs/VERSION/operations/single-server.html) - * [Clustered deployment](/docs/VERSION/tutorials/cluster.html#fresh-deployment) - -## Data Ingestion - * [Ingestion overview](/docs/VERSION/ingestion/index.html) - * [Schema Design](/docs/VERSION/ingestion/schema-design.html) - * [Data Formats](/docs/VERSION/ingestion/data-formats.html) - * [Tasks Overview](/docs/VERSION/ingestion/tasks.html) - * [Ingestion Spec](/docs/VERSION/ingestion/ingestion-spec.html) - * [Transform Specs](/docs/VERSION/ingestion/transform-spec.html) - * [Firehoses](/docs/VERSION/ingestion/firehose.html) - * [Schema Changes](/docs/VERSION/ingestion/schema-changes.html) - * [Batch File Ingestion](/docs/VERSION/ingestion/batch-ingestion.html) - * [Native Batch Ingestion](/docs/VERSION/ingestion/native_tasks.html) - * [Hadoop Batch Ingestion](/docs/VERSION/ingestion/hadoop.html) - * [Stream Ingestion](/docs/VERSION/ingestion/stream-ingestion.html) - * [Kafka Indexing Service (Stream Pull)](/docs/VERSION/development/extensions-core/kafka-ingestion.html) - * [Stream Push](/docs/VERSION/ingestion/stream-push.html) - * [Compaction](/docs/VERSION/ingestion/compaction.html) - * [Updating Existing Data](/docs/VERSION/ingestion/update-existing-data.html) - * [Deleting Data](/docs/VERSION/ingestion/delete-data.html) - * [Task Locking & Priority](/docs/VERSION/ingestion/locking-and-priority.html) - * [Task Reports](/docs/VERSION/ingestion/reports.html) - * [FAQ](/docs/VERSION/ingestion/faq.html) - * [Misc. Tasks](/docs/VERSION/ingestion/misc-tasks.html) - -## Querying - * [Druid SQL](/docs/VERSION/querying/sql.html) - * [Native queries](/docs/VERSION/querying/querying.html) - * [Timeseries](/docs/VERSION/querying/timeseriesquery.html) - * [TopN](/docs/VERSION/querying/topnquery.html) - * [GroupBy](/docs/VERSION/querying/groupbyquery.html) - * [Time Boundary](/docs/VERSION/querying/timeboundaryquery.html) - * [Segment Metadata](/docs/VERSION/querying/segmentmetadataquery.html) - * [DataSource Metadata](/docs/VERSION/querying/datasourcemetadataquery.html) - * [Search](/docs/VERSION/querying/searchquery.html) - * [Scan](/docs/VERSION/querying/scan-query.html) - * [Select](/docs/VERSION/querying/select-query.html) - * Components - * [Datasources](/docs/VERSION/querying/datasource.html) - * [Filters](/docs/VERSION/querying/filters.html) - * [Aggregations](/docs/VERSION/querying/aggregations.html) - * [Post Aggregations](/docs/VERSION/querying/post-aggregations.html) - * [Granularities](/docs/VERSION/querying/granularities.html) - * [DimensionSpecs](/docs/VERSION/querying/dimensionspecs.html) - * [Sorting Orders](/docs/VERSION/querying/sorting-orders.html) - * [Virtual Columns](/docs/VERSION/querying/virtual-columns.html) - * [Context](/docs/VERSION/querying/query-context.html) - * Concepts - * [Multi-value dimensions](/docs/VERSION/querying/multi-value-dimensions.html) - * [Lookups](/docs/VERSION/querying/lookups.html) - * [Joins](/docs/VERSION/querying/joins.html) - * [Multitenancy](/docs/VERSION/querying/multitenancy.html) - * [Caching](/docs/VERSION/querying/caching.html) - * [Geographic Queries](/docs/VERSION/development/geo.html) (experimental) - -## Design - * [Overview](/docs/VERSION/design/index.html) - * Storage - * [Segments](/docs/VERSION/design/segments.html) - * [Servers and Processes](/docs/VERSION/design/processes.html) - * Master server - * [Coordinator](/docs/VERSION/design/coordinator.html) - * [Overlord](/docs/VERSION/design/overlord.html) - * Query server - * [Broker](/docs/VERSION/design/broker.html) - * [Router](/docs/VERSION/development/router.html) (optional; experimental) - * Data server - * [Historical](/docs/VERSION/design/historical.html) - * [MiddleManager](/docs/VERSION/design/middlemanager.html) - * [Peons](/docs/VERSION/design/peons.html) - * [Indexer](/docs/VERSION/development/indexer.html) (optional; experimental) - * Dependencies - * [Deep Storage](/docs/VERSION/dependencies/deep-storage.html) - * [Metadata Storage](/docs/VERSION/dependencies/metadata-storage.html) - * [ZooKeeper](/docs/VERSION/dependencies/zookeeper.html) - -## Operations - * [Management UIs](/docs/VERSION/operations/management-uis.html) - * [Including Extensions](/docs/VERSION/operations/including-extensions.html) - * [Data Retention](/docs/VERSION/operations/rule-configuration.html) - * [High Availability](/docs/VERSION/operations/high-availability.html) - * [Updating the Cluster](/docs/VERSION/operations/rolling-updates.html) - * [Metrics and Monitoring](/docs/VERSION/operations/metrics.html) - * [Alerts](/docs/VERSION/operations/alerts.html) - * [Different Hadoop Versions](/docs/VERSION/operations/other-hadoop.html) - * [HTTP Compression](/docs/VERSION/operations/http-compression.html) - * [API Reference](/docs/VERSION/operations/api-reference.html) - * [Coordinator](/docs/VERSION/operations/api-reference.html#coordinator) - * [Overlord](/docs/VERSION/operations/api-reference.html#overlord) - * [MiddleManager](/docs/VERSION/operations/api-reference.html#middlemanager) - * [Peon](/docs/VERSION/operations/api-reference.html#peon) - * [Broker](/docs/VERSION/operations/api-reference.html#broker) - * [Historical](/docs/VERSION/operations/api-reference.html#historical) - * Tuning and Recommendations - * [Basic Cluster Tuning](/docs/VERSION/operations/basic-cluster-tuning.html) - * [General Recommendations](/docs/VERSION/operations/recommendations.html) - * [JVM Best Practices](/docs/VERSION/configuration/index.html#jvm-configuration-best-practices) - * Tools - * [Dump Segment Tool](/docs/VERSION/operations/dump-segment.html) - * [Insert Segment Tool](/docs/VERSION/operations/insert-segment-to-db.html) - * [Pull Dependencies Tool](/docs/VERSION/operations/pull-deps.html) - * Security - * [TLS Support](/docs/VERSION/operations/tls-support.html) - * [Password Provider](/docs/VERSION/operations/password-provider.html) - -## Configuration - * [Configuration Reference](/docs/VERSION/configuration/index.html) - * [Recommended Configuration File Organization](/docs/VERSION/configuration/index.html#recommended-configuration-file-organization) - * [Common Configuration](/docs/VERSION/configuration/index.html#common-configurations) - * Processes - * [Coordinator](/docs/VERSION/configuration/index.html#coordinator) - * [Overlord](/docs/VERSION/configuration/index.html#overlord) - * [MiddleManager & Peons](/docs/VERSION/configuration/index.html#middle-manager-and-peons) - * [Historical](/docs/VERSION/configuration/index.html#historical) - * [Broker](/docs/VERSION/configuration/index.html#broker) - * [Caching](/docs/VERSION/configuration/index.html#cache-configuration) - * [General Query Configuration](/docs/VERSION/configuration/index.html#general-query-configuration) - * [Configuring Logging](/docs/VERSION/configuration/logging.html) - -## Development - * [Overview](/docs/VERSION/development/overview.html) - * [Libraries](/libraries.html) - * [Extensions](/docs/VERSION/development/extensions.html) - * [JavaScript](/docs/VERSION/development/javascript.html) - * [Build From Source](/docs/VERSION/development/build.html) - * [Versioning](/docs/VERSION/development/versioning.html) - * [Integration](/docs/VERSION/development/integrating-druid-with-other-technologies.html) - * [Experimental Features](/docs/VERSION/development/experimental.html) - -## Misc - * [Druid Expressions Language](/docs/VERSION/misc/math-expr.html) - * [Papers & Talks](/docs/VERSION/misc/papers-and-talks.html) - * [Thanks](/thanks.html) diff --git a/docs/content/tutorials/tutorial-tranquility.md b/docs/content/tutorials/tutorial-tranquility.md deleted file mode 100644 index fbf3e132e0a0..000000000000 --- a/docs/content/tutorials/tutorial-tranquility.md +++ /dev/null @@ -1,104 +0,0 @@ ---- -layout: doc_page -title: "Tutorial: Load streaming data with HTTP push" ---- - - - -# Tutorial: Load streaming data with HTTP push - -## Getting started - -This tutorial shows you how to load streaming data into Apache Druid (incubating) using HTTP push via Tranquility Server. - -[Tranquility Server](https://github.com/druid-io/tranquility/blob/master/docs/server.md) allows a stream of data to be pushed into Druid using HTTP POSTs. - -For this tutorial, we'll assume you've already downloaded Druid as described in -the [quickstart](index.html) using the `micro-quickstart` single-machine configuration and have it -running on your local machine. You don't need to have loaded any data yet. - -## Download Tranquility - -In the Druid package root, run the following commands: - -```bash -curl http://static.druid.io/tranquility/releases/tranquility-distribution-0.8.3.tgz -o tranquility-distribution-0.8.3.tgz -tar -xzf tranquility-distribution-0.8.3.tgz -mv tranquility-distribution-0.8.3 tranquility -``` - -The startup scripts for the tutorial will expect the contents of the Tranquility tarball to be located at `tranquility` under the apache-druid-#{DRUIDVERSION} package root. - -## Enable Tranquility Server - -- In your `conf/supervise/single-server/micro-quickstart.conf`, uncomment the `tranquility-server` line. -- Stop *micro-quickstart* cluster command (CTRL-C) then restart it again by running `bin/start-micro-quickstart` - -As part of the output of *supervise* you should see something like: - -```bash -Running command[tranquility-server], logging to[/stage/apache-druid-#{DRUIDVERSION}/var/sv/tranquility-server.log]: tranquility/bin/tranquility server -configFile conf/tranquility/server.json -Ddruid.extensions.loadList=[] -``` - -You can check the log file in `var/sv/tranquility-server.log` to confirm that the server is starting up properly. - -## Send data - -Let's send the sample Wikipedia edits data to Tranquility: - -```bash -gunzip -k quickstart/tutorial/wikiticker-2015-09-12-sampled.json.gz -curl -XPOST -H'Content-Type: application/json' --data-binary @quickstart/tutorial/wikiticker-2015-09-12-sampled.json http://localhost:8200/v1/post/wikipedia -``` - -Which will print something like: - -```json -{"result":{"received":39244,"sent":39244}} -``` - -This indicates that the HTTP server received 39,244 events from you, and sent 39,244 to Druid. This -command may generate a "connection refused" error if you run it too quickly after enabling Tranquility -Server, which means the server has not yet started up. It should start up within a few seconds. The command -may also take a few seconds to finish the first time you run it, during which time Druid resources are being -allocated to the ingestion task. Subsequent POSTs will complete quickly once this is done. - -Once the data is sent to Druid, you can immediately query it. - -If you see a `sent` count of 0, retry the send command until the `sent` count also shows 39244: - -```json -{"result":{"received":39244,"sent":0}} -``` - -## Querying your data - -Please follow the [query tutorial](../tutorials/tutorial-query.html) to run some example queries on the newly loaded data. - -## Cleanup - -If you wish to go through any of the other ingestion tutorials, you will need to shut down the cluster and reset the cluster state by removing the contents of the `var` directory under the druid package, as the other tutorials will write to the same "wikipedia" datasource. - -When cleaning up after running this Tranquility tutorial, it is also necessary to recomment the `tranquility-server` line in `conf/supervise/single-server/micro-quickstart.conf` before restarting the cluster. - - -## Further reading - -For more information on Tranquility, please see [the Tranquility documentation](https://github.com/druid-io/tranquility). diff --git a/docs/content/dependencies/deep-storage.md b/docs/dependencies/deep-storage.md similarity index 94% rename from docs/content/dependencies/deep-storage.md rename to docs/dependencies/deep-storage.md index c9c8eff6abae..ef338508693f 100644 --- a/docs/content/dependencies/deep-storage.md +++ b/docs/dependencies/deep-storage.md @@ -1,6 +1,6 @@ --- -layout: doc_page -title: "Deep Storage" +id: deep-storage +title: "Deep storage" --- -# Deep Storage Deep storage is where segments are stored. It is a storage mechanism that Apache Druid (incubating) does not provide. This deep storage infrastructure defines the level of durability of your data, as long as Druid processes can see this storage infrastructure and get at the segments stored on it, you will not lose data no matter how many Druid nodes you lose. If segments disappear from this storage layer, then you will lose whatever data those segments represented. @@ -43,12 +42,12 @@ If you are using the Hadoop indexer in local mode, then just give it a local fil ## S3-compatible -See [druid-s3-extensions extension documentation](../development/extensions-core/s3.html). +See [druid-s3-extensions extension documentation](../development/extensions-core/s3.md). ## HDFS -See [druid-hdfs-storage extension documentation](../development/extensions-core/hdfs.html). +See [druid-hdfs-storage extension documentation](../development/extensions-core/hdfs.md). ## Additional Deep Stores -For additional deep stores, please see our [extensions list](../development/extensions.html). +For additional deep stores, please see our [extensions list](../development/extensions.md). diff --git a/docs/content/dependencies/metadata-storage.md b/docs/dependencies/metadata-storage.md similarity index 80% rename from docs/content/dependencies/metadata-storage.md rename to docs/dependencies/metadata-storage.md index c05e732c220b..bdfa6bd1b6c4 100644 --- a/docs/content/dependencies/metadata-storage.md +++ b/docs/dependencies/metadata-storage.md @@ -1,6 +1,6 @@ --- -layout: doc_page -title: "Metadata Storage" +id: metadata-storage +title: "Metadata storage" --- -# Metadata Storage The Metadata Storage is an external dependency of Apache Druid (incubating). Druid uses it to store various metadata about the system, but not to store the actual data. There are a number of tables used for various purposes described below. -Derby is the default metadata store for Druid, however, it is not suitable for production. -[MySQL](../development/extensions-core/mysql.html) and [PostgreSQL](../development/extensions-core/postgresql.html) are more production suitable metadata stores. +Derby is the default metadata store for Druid, however, it is not suitable for production. +[MySQL](../development/extensions-core/mysql.md) and [PostgreSQL](../development/extensions-core/postgresql.md) are more production suitable metadata stores. -
-The Metadata Storage stores the entire metadata which is essential for a Druid cluster to work. -For production clusters, consider using MySQL or PostgreSQL instead of Derby. -Also, it's highly recommended to set up a high availability environment -because there is no way to restore if you lose any metadata. -
+> The Metadata Storage stores the entire metadata which is essential for a Druid cluster to work. +> For production clusters, consider using MySQL or PostgreSQL instead of Derby. +> Also, it's highly recommended to set up a high availability environment +> because there is no way to restore if you lose any metadata. -## Using derby +## Using Derby Add the following to your Druid configuration. @@ -48,12 +45,12 @@ druid.metadata.storage.connector.connectURI=jdbc:derby://localhost:1527//opt/var ``` ## MySQL - -See [mysql-metadata-storage extension documentation](../development/extensions-core/mysql.html). - -## PostgreSQL -See [postgresql-metadata-storage](../development/extensions-core/postgresql.html). +See [mysql-metadata-storage extension documentation](../development/extensions-core/mysql.md). + +## PostgreSQL + +See [postgresql-metadata-storage](../development/extensions-core/postgresql.md). ## Adding custom dbcp properties @@ -68,14 +65,14 @@ druid.metadata.storage.connector.dbcp.defaultQueryTimeout=30000 See [BasicDataSource Configuration](https://commons.apache.org/proper/commons-dbcp/configuration.html) for full list. -## Metadata Storage Tables +## Metadata storage tables -### Segments Table +### Segments table This is dictated by the `druid.metadata.storage.tables.segments` property. This table stores metadata about the segments that are available in the system. -The table is polled by the [Coordinator](../design/coordinator.html) to +The table is polled by the [Coordinator](../design/coordinator.md) to determine the set of segments that should be available for querying in the system. The table has two main functional columns, the other columns are for indexing purposes. @@ -110,30 +107,30 @@ The `payload` column stores a JSON blob that has all of the metadata for the seg Note that the format of this blob can and will change from time-to-time. -### Rule Table +### Rule table The rule table is used to store the various rules about where segments should -land. These rules are used by the [Coordinator](../design/coordinator.html) +land. These rules are used by the [Coordinator](../design/coordinator.md) when making segment (re-)allocation decisions about the cluster. -### Config Table +### Config table The config table is used to store runtime configuration objects. We do not have many of these yet and we are not sure if we will keep this mechanism going forward, but it is the beginnings of a method of changing some configuration parameters across the cluster at runtime. -### Task-related Tables +### Task-related tables -There are also a number of tables created and used by the [Overlord](../design/overlord.html) and [MiddleManager](../design/middlemanager.html) when managing tasks. +There are also a number of tables created and used by the [Overlord](../design/overlord.md) and [MiddleManager](../design/middlemanager.md) when managing tasks. -### Audit Table +### Audit table The Audit table is used to store the audit history for configuration changes -e.g rule changes done by [Coordinator](../design/coordinator.html) and other +e.g rule changes done by [Coordinator](../design/coordinator.md) and other config changes. -##Accessed By: ## +##Accessed by: ## The Metadata Storage is accessed only by: diff --git a/docs/content/dependencies/zookeeper.md b/docs/dependencies/zookeeper.md similarity index 72% rename from docs/content/dependencies/zookeeper.md rename to docs/dependencies/zookeeper.md index 5143f9287990..58d571dee2a6 100644 --- a/docs/content/dependencies/zookeeper.md +++ b/docs/dependencies/zookeeper.md @@ -1,5 +1,5 @@ --- -layout: doc_page +id: zookeeper title: "ZooKeeper" --- @@ -22,15 +22,14 @@ title: "ZooKeeper" ~ under the License. --> -# ZooKeeper Apache Druid (incubating) uses [Apache ZooKeeper](http://zookeeper.apache.org/) (ZK) for management of current cluster state. The operations that happen over ZK are -1. [Coordinator](../design/coordinator.html) leader election -2. Segment "publishing" protocol from [Historical](../design/historical.html) -3. Segment load/drop protocol between [Coordinator](../design/coordinator.html) and [Historical](../design/historical.html) -4. [Overlord](../design/overlord.html) leader election -5. [Overlord](../design/overlord.html) and [MiddleManager](../design/middlemanager.html) task management +1. [Coordinator](../design/coordinator.md) leader election +2. Segment "publishing" protocol from [Historical](../design/historical.md) +3. Segment load/drop protocol between [Coordinator](../design/coordinator.md) and [Historical](../design/historical.md) +4. [Overlord](../design/overlord.md) leader election +5. [Overlord](../design/overlord.md) and [MiddleManager](../design/middlemanager.md) task management ### Coordinator Leader Election @@ -44,7 +43,7 @@ ${druid.zk.paths.coordinatorPath}/_COORDINATOR The `announcementsPath` and `servedSegmentsPath` are used for this. -All [Historical](../design/historical.html) processes publish themselves on the `announcementsPath`, specifically, they will create an ephemeral znode at +All [Historical](../design/historical.md) processes publish themselves on the `announcementsPath`, specifically, they will create an ephemeral znode at ``` ${druid.zk.paths.announcementsPath}/${druid.host} @@ -62,13 +61,13 @@ And as they load up segments, they will attach ephemeral znodes that look like ${druid.zk.paths.servedSegmentsPath}/${druid.host}/_segment_identifier_ ``` -Processes like the [Coordinator](../design/coordinator.html) and [Broker](../design/broker.html) can then watch these paths to see which processes are currently serving which segments. +Processes like the [Coordinator](../design/coordinator.md) and [Broker](../design/broker.md) can then watch these paths to see which processes are currently serving which segments. ### Segment load/drop protocol between Coordinator and Historical The `loadQueuePath` is used for this. -When the [Coordinator](../design/coordinator.html) decides that a [Historical](../design/historical.html) process should load or drop a segment, it writes an ephemeral znode to +When the [Coordinator](../design/coordinator.md) decides that a [Historical](../design/historical.md) process should load or drop a segment, it writes an ephemeral znode to ``` ${druid.zk.paths.loadQueuePath}/_host_of_historical_process/_segment_identifier diff --git a/docs/design/architecture.md b/docs/design/architecture.md new file mode 100644 index 000000000000..51fa00ec6237 --- /dev/null +++ b/docs/design/architecture.md @@ -0,0 +1,235 @@ +--- +id: architecture +title: "Design" +--- + + + + +Druid has a multi-process, distributed architecture that is designed to be cloud-friendly and easy to operate. Each +Druid process type can be configured and scaled independently, giving you maximum flexibility over your cluster. This +design also provides enhanced fault tolerance: an outage of one component will not immediately affect other components. + +## Processes and Servers + +Druid has several process types, briefly described below: + +* [**Coordinator**](../design/coordinator.md) processes manage data availability on the cluster. +* [**Overlord**](../design/overlord.md) processes control the assignment of data ingestion workloads. +* [**Broker**](../design/broker.md) processes handle queries from external clients. +* [**Router**](../design/router.md) processes are optional processes that can route requests to Brokers, Coordinators, and Overlords. +* [**Historical**](../design/historical.md) processes store queryable data. +* [**MiddleManager**](../design/middlemanager.md) processes are responsible for ingesting data. + +Druid processes can be deployed any way you like, but for ease of deployment we suggest organizing them into three server types: Master, Query, and Data. + +* **Master**: Runs Coordinator and Overlord processes, manages data availability and ingestion. +* **Query**: Runs Broker and optional Router processes, handles queries from external clients. +* **Data**: Runs Historical and MiddleManager processes, executes ingestion workloads and stores all queryable data. + +For more details on process and server organization, please see [Druid Processses and Servers](../design/processes.md). + +## External dependencies + +In addition to its built-in process types, Druid also has three external dependencies. These are intended to be able to +leverage existing infrastructure, where present. + +### Deep storage +Shared file storage accessible by every Druid server. In a clustered deployment, this is typically going to +be a distributed object store like S3 or HDFS, or a network mounted filesystem. In a single-server deployment, +this is typically going to be local disk. Druid uses deep storage to store any data that has been ingested into the +system. + +Druid uses deep storage only as a backup of your data and as a way to transfer data in the background between +Druid processes. To respond to queries, Historical processes do not read from deep storage, but instead read pre-fetched +segments from their local disks before any queries are served. This means that Druid never needs to access deep storage +during a query, helping it offer the best query latencies possible. It also means that you must have enough disk space +both in deep storage and across your Historical processes for the data you plan to load. + +Deep storage is an important part of Druid's elastic, fault-tolerant design. Druid can bootstrap from deep storage even +if every single data server is lost and re-provisioned. + +For more details, please see the [Deep storage](../dependencies/deep-storage.md) page. + +### Metadata storage +The metadata storage holds various shared system metadata such as segment availability information and task information. +In a clustered deployment, this is typically going to be a traditional RDBMS like PostgreSQL or MySQL. In a single-server +deployment, it is typically going to be a locally-stored Apache Derby database. + +For more details, please see the [Metadata storage](../dependencies/metadata-storage.md) page. + +### ZooKeeper +Used for internal service discovery, coordination, and leader election. + +For more details, please see the [ZooKeeper](../dependencies/zookeeper.md) page. + +## Architecture diagram + +The following diagram shows how queries and data flow through this architecture, using the suggested Master/Query/Data server organization: + + + + + +## Storage design + +### Datasources and segments + +Druid data is stored in "datasources", which are similar to tables in a traditional RDBMS. Each datasource is +partitioned by time and, optionally, further partitioned by other attributes. Each time range is called a "chunk" (for +example, a single day, if your datasource is partitioned by day). Within a chunk, data is partitioned into one or more +["segments"](../design/segments.md). Each segment is a single file, typically comprising up to a few million rows of data. Since segments are +organized into time chunks, it's sometimes helpful to think of segments as living on a timeline like the following: + + + +A datasource may have anywhere from just a few segments, up to hundreds of thousands and even millions of segments. Each +segment starts life off being created on a MiddleManager, and at that point, is mutable and uncommitted. The segment +building process includes the following steps, designed to produce a data file that is compact and supports fast +queries: + +- Conversion to columnar format +- Indexing with bitmap indexes +- Compression using various algorithms + - Dictionary encoding with id storage minimization for String columns + - Bitmap compression for bitmap indexes + - Type-aware compression for all columns + +Periodically, segments are committed and published. At this point, they are written to [deep storage](#deep-storage), +become immutable, and move from MiddleManagers to the Historical processes. An entry about the segment is also written +to the [metadata store](#metadata-storage). This entry is a self-describing bit of metadata about the segment, including +things like the schema of the segment, its size, and its location on deep storage. These entries are what the +Coordinator uses to know what data *should* be available on the cluster. + +For details on the segment file format, please see [segment files](segments.html). + +For details on modeling your data in Druid, see [schema design](../ingestion/schema-design.md). + +### Indexing and handoff + +_Indexing_ is the mechanism by which new segments are created, and _handoff_ is the mechanism by which they are published +and begin being served by Historical processes. The mechanism works like this on the indexing side: + +1. An _indexing task_ starts running and building a new segment. It must determine the identifier of the segment before +it starts building it. For a task that is appending (like a Kafka task, or an index task in append mode) this will be +done by calling an "allocate" API on the Overlord to potentially add a new partition to an existing set of segments. For +a task that is overwriting (like a Hadoop task, or an index task _not_ in append mode) this is done by locking an +interval and creating a new version number and new set of segments. +2. If the indexing task is a realtime task (like a Kafka task) then the segment is immediately queryable at this point. +It's available, but unpublished. +3. When the indexing task has finished reading data for the segment, it pushes it to deep storage and then publishes it +by writing a record into the metadata store. +4. If the indexing task is a realtime task, at this point it waits for a Historical process to load the segment. If the +indexing task is not a realtime task, it exits immediately. + +And like this on the Coordinator / Historical side: + +1. The Coordinator polls the metadata store periodically (by default, every 1 minute) for newly published segments. +2. When the Coordinator finds a segment that is published and used, but unavailable, it chooses a Historical process +to load that segment and instructs that Historical to do so. +3. The Historical loads the segment and begins serving it. +4. At this point, if the indexing task was waiting for handoff, it will exit. + +### Segment identifiers + +Segments all have a four-part identifier with the following components: + +- Datasource name. +- Time interval (for the time chunk containing the segment; this corresponds to the `segmentGranularity` specified +at ingestion time). +- Version number (generally an ISO8601 timestamp corresponding to when the segment set was first started). +- Partition number (an integer, unique within a datasource+interval+version; may not necessarily be contiguous). + +For example, this is the identifier for a segment in datasource `clarity-cloud0`, time chunk +`2018-05-21T16:00:00.000Z/2018-05-21T17:00:00.000Z`, version `2018-05-21T15:56:09.909Z`, and partition number 1: + +``` +clarity-cloud0_2018-05-21T16:00:00.000Z_2018-05-21T17:00:00.000Z_2018-05-21T15:56:09.909Z_1 +``` + +Segments with partition number 0 (the first partition in a chunk) omit the partition number, like the following +example, which is a segment in the same time chunk as the previous one, but with partition number 0 instead of 1: + +``` +clarity-cloud0_2018-05-21T16:00:00.000Z_2018-05-21T17:00:00.000Z_2018-05-21T15:56:09.909Z +``` + +### Segment versioning + +You may be wondering what the "version number" described in the previous section is for. Or, you might not be, in which +case good for you and you can skip this section! + +It's there to support batch-mode overwriting. In Druid, if all you ever do is append data, then there will be just a +single version for each time chunk. But when you overwrite data, what happens behind the scenes is that a new set of +segments is created with the same datasource, same time interval, but a higher version number. This is a signal to the +rest of the Druid system that the older version should be removed from the cluster, and the new version should replace +it. + +The switch appears to happen instantaneously to a user, because Druid handles this by first loading the new data (but +not allowing it to be queried), and then, as soon as the new data is all loaded, switching all new queries to use those +new segments. Then it drops the old segments a few minutes later. + +### Segment lifecycle + +Each segment has a lifecycle that involves the following three major areas: + +1. **Metadata store:** Segment metadata (a small JSON payload generally no more than a few KB) is stored in the +[metadata store](../dependencies/metadata-storage.md) once a segment is done being constructed. The act of inserting +a record for a segment into the metadata store is called _publishing_. These metadata records have a boolean flag +named `used`, which controls whether the segment is intended to be queryable or not. Segments created by realtime tasks will be +available before they are published, since they are only published when the segment is complete and will not accept +any additional rows of data. +2. **Deep storage:** Segment data files are pushed to deep storage once a segment is done being constructed. This +happens immediately before publishing metadata to the metadata store. +3. **Availability for querying:** Segments are available for querying on some Druid data server, like a realtime task +or a Historical process. + +You can inspect the state of currently active segments using the Druid SQL +[`sys.segments` table](../querying/sql.md#segments-table). It includes the following flags: + +- `is_published`: True if segment metadata has been published to the metadata stored and `used` is true. +- `is_available`: True if the segment is currently available for querying, either on a realtime task or Historical +process. +- `is_realtime`: True if the segment is _only_ available on realtime tasks. For datasources that use realtime ingestion, +this will generally start off `true` and then become `false` as the segment is published and handed off. +- `is_overshadowed`: True if the segment is published (with `used` set to true) and is fully overshadowed by some other +published segments. Generally this is a transient state, and segments in this state will soon have their `used` flag +automatically set to false. + +## Query processing + +Queries first enter the [Broker](../design/broker.md), where the Broker will identify which segments have data that may pertain to that query. +The list of segments is always pruned by time, and may also be pruned by other attributes depending on how your +datasource is partitioned. The Broker will then identify which [Historicals](../design/historical.md) and +[MiddleManagers](../design/middlemanager.md) are serving those segments and send a rewritten subquery to each of those processes. The Historical/MiddleManager processes will take in the +queries, process them and return results. The Broker receives results and merges them together to get the final answer, +which it returns to the original caller. + +Broker pruning is an important way that Druid limits the amount of data that must be scanned for each query, but it is +not the only way. For filters at a more granular level than what the Broker can use for pruning, indexing structures +inside each segment allow Druid to figure out which (if any) rows match the filter set before looking at any row of +data. Once Druid knows which rows match a particular query, it only accesses the specific columns it needs for that +query. Within those columns, Druid can skip from row to row, avoiding reading data that doesn't match the query filter. + +So Druid uses three different techniques to maximize query performance: + +- Pruning which segments are accessed for each query. +- Within each segment, using indexes to identify which rows must be accessed. +- Within each segment, only reading the specific rows and columns that are relevant to a particular query. diff --git a/docs/content/design/auth.md b/docs/design/auth.md similarity index 97% rename from docs/content/design/auth.md rename to docs/design/auth.md index c46c83fb5595..ff0d89355873 100644 --- a/docs/content/design/auth.md +++ b/docs/design/auth.md @@ -1,5 +1,5 @@ --- -layout: doc_page +id: auth title: "Authentication and Authorization" --- @@ -22,7 +22,6 @@ title: "Authentication and Authorization" ~ under the License. --> -# Authentication and Authorization This document describes non-extension specific Apache Druid (incubating) authentication and authorization configurations. @@ -36,7 +35,7 @@ This document describes non-extension specific Apache Druid (incubating) authent ## Enabling Authentication/AuthorizationLoadingLookupTest -## Authenticator Chain +## Authenticator chain Authentication decisions are handled by a chain of Authenticator instances. A request will be checked by Authenticators in the sequence defined by the `druid.auth.authenticatorChain`. Authenticator implementions are provided by extensions. @@ -53,13 +52,13 @@ If no Authenticator in the chain successfully authenticated a request or sent an Druid includes two built-in Authenticators, one of which is used for the default unsecured configuration. -### AllowAll Authenticator +### AllowAll authenticator This built-in Authenticator authenticates all requests, and always directs them to an Authorizer named "allowAll". It is not intended to be used for anything other than the default unsecured configuration. -### Anonymous Authenticator +### Anonymous authenticator -This built-in Authenticator authenticates all requests, and directs them to an Authorizer specified in the configuration by the user. It is intended to be used for adding a default level of access so +This built-in Authenticator authenticates all requests, and directs them to an Authorizer specified in the configuration by the user. It is intended to be used for adding a default level of access so the Anonymous Authenticator should be added to the end of the authentication chain. A request that reaches the Anonymous Authenticator at the end of the chain will succeed or fail depending on how the Authorizer linked to the Anonymous Authenticator is configured. |Property|Description|Default|Required| @@ -86,7 +85,7 @@ The `druid.escalator.type` property determines what authentication scheme should The Escalator chosen for this property must use an authentication scheme that is supported by an Authenticator in `druid.auth.authenticationChain`. Authenticator extension implementors must also provide a corresponding Escalator implementation if they intend to use a particular authentication scheme for internal Druid communications. -### Noop Escalator +### Noop escalator This built-in default Escalator is intended for use only with the default AllowAll Authenticator and Authorizer. @@ -106,7 +105,8 @@ Only a single Authorizer will authorize any given request. Druid includes one built in authorizer: -### AllowAll Authorizer +### AllowAll authorizer + The Authorizer with type name "allowAll" accepts all requests. ## Default Unsecured Configuration @@ -123,9 +123,9 @@ When an Authenticator successfully authenticates a request, it must attach a Aut An Authenticator implementation should provide some means through configuration to allow users to select what Authorizer(s) the Authenticator should route requests to. -## Internal System User +## Internal system user -Internal requests between Druid processes (non-user initiated communications) need to have authentication credentials attached. +Internal requests between Druid processes (non-user initiated communications) need to have authentication credentials attached. These requests should be run as an "internal system user", an identity that represents the Druid cluster itself, with full access permissions. diff --git a/docs/content/design/broker.md b/docs/design/broker.md similarity index 72% rename from docs/content/design/broker.md rename to docs/design/broker.md index 9f1155165aca..6d252423abd2 100644 --- a/docs/content/design/broker.md +++ b/docs/design/broker.md @@ -1,5 +1,5 @@ --- -layout: doc_page +id: broker title: "Broker" --- @@ -22,7 +22,6 @@ title: "Broker" ~ under the License. --> -# Broker ### Configuration @@ -35,7 +34,7 @@ For a list of API endpoints supported by the Broker, see [Broker API](../operati ### Overview The Broker is the process to route queries to if you want to run a distributed cluster. It understands the metadata published to ZooKeeper about what segments exist on what processes and routes queries such that they hit the right processes. This process also merges the result sets from all of the individual processes together. -On start up, Historical processes announce themselves and the segments they are serving in Zookeeper. +On start up, Historical processes announce themselves and the segments they are serving in Zookeeper. ### Running @@ -43,11 +42,11 @@ On start up, Historical processes announce themselves and the segments they are org.apache.druid.cli.Main server broker ``` -### Forwarding Queries +### Forwarding queries -Most Druid queries contain an interval object that indicates a span of time for which data is requested. Likewise, Druid [Segments](../design/segments.html) are partitioned to contain data for some interval of time and segments are distributed across a cluster. Consider a simple datasource with 7 segments where each segment contains data for a given day of the week. Any query issued to the datasource for more than one day of data will hit more than one segment. These segments will likely be distributed across multiple processes, and hence, the query will likely hit multiple processes. +Most Druid queries contain an interval object that indicates a span of time for which data is requested. Likewise, Druid [Segments](../design/segments.md) are partitioned to contain data for some interval of time and segments are distributed across a cluster. Consider a simple datasource with 7 segments where each segment contains data for a given day of the week. Any query issued to the datasource for more than one day of data will hit more than one segment. These segments will likely be distributed across multiple processes, and hence, the query will likely hit multiple processes. -To determine which processes to forward queries to, the Broker process first builds a view of the world from information in Zookeeper. Zookeeper maintains information about [Historical](../design/historical.html) and streaming ingestion [Peon](../design/peons.html) processes and the segments they are serving. For every datasource in Zookeeper, the Broker process builds a timeline of segments and the processes that serve them. When queries are received for a specific datasource and interval, the Broker process performs a lookup into the timeline associated with the query datasource for the query interval and retrieves the processes that contain data for the query. The Broker process then forwards down the query to the selected processes. +To determine which processes to forward queries to, the Broker process first builds a view of the world from information in Zookeeper. Zookeeper maintains information about [Historical](../design/historical.md) and streaming ingestion [Peon](../design/peons.md) processes and the segments they are serving. For every datasource in Zookeeper, the Broker process builds a timeline of segments and the processes that serve them. When queries are received for a specific datasource and interval, the Broker process performs a lookup into the timeline associated with the query datasource for the query interval and retrieves the processes that contain data for the query. The Broker process then forwards down the query to the selected processes. ### Caching diff --git a/docs/content/design/coordinator.md b/docs/design/coordinator.md similarity index 93% rename from docs/content/design/coordinator.md rename to docs/design/coordinator.md index 0dbbd47d6446..df78c46b1f55 100644 --- a/docs/content/design/coordinator.md +++ b/docs/design/coordinator.md @@ -1,5 +1,5 @@ --- -layout: doc_page +id: coordinator title: "Coordinator Process" --- @@ -22,7 +22,6 @@ title: "Coordinator Process" ~ under the License. --> -# Coordinator Process ### Configuration @@ -48,27 +47,27 @@ org.apache.druid.cli.Main server coordinator ### Rules -Segments can be automatically loaded and dropped from the cluster based on a set of rules. For more information on rules, see [Rule Configuration](../operations/rule-configuration.html). +Segments can be automatically loaded and dropped from the cluster based on a set of rules. For more information on rules, see [Rule Configuration](../operations/rule-configuration.md). -### Cleaning Up Segments +### Cleaning up segments Each run, the Druid coordinator compares the list of available database segments in the database with the current segments in the cluster. Segments that are not in the database but are still being served in the cluster are flagged and appended to a removal list. Segments that are overshadowed (their versions are too old and their data has been replaced by newer segments) are also dropped. -### Segment Availability +### Segment availability If a Historical process restarts or becomes unavailable for any reason, the Druid Coordinator will notice a process has gone missing and treat all segments served by that process as being dropped. Given a sufficient period of time, the segments may be reassigned to other Historical processes in the cluster. However, each segment that is dropped is not immediately forgotten. Instead, there is a transitional data structure that stores all dropped segments with an associated lifetime. The lifetime represents a period of time in which the Coordinator will not reassign a dropped segment. Hence, if a historical process becomes unavailable and available again within a short period of time, the historical process will start up and serve segments from its cache without any those segments being reassigned across the cluster. -### Balancing Segment Load +### Balancing segment load To ensure an even distribution of segments across Historical processes in the cluster, the Coordinator process will find the total size of all segments being served by every Historical process each time the Coordinator runs. For every Historical process tier in the cluster, the Coordinator process will determine the Historical process with the highest utilization and the Historical process with the lowest utilization. The percent difference in utilization between the two processes is computed, and if the result exceeds a certain threshold, a number of segments will be moved from the highest utilized process to the lowest utilized process. There is a configurable limit on the number of segments that can be moved from one process to another each time the Coordinator runs. Segments to be moved are selected at random and only moved if the resulting utilization calculation indicates the percentage difference between the highest and lowest servers has decreased. ### Compacting Segments Each run, the Druid Coordinator compacts small segments abutting each other. This is useful when you have a lot of small -segments which may degrade query performance as well as increase disk space usage. See [Segment Size Optimization](../operations/segment-optimization.html) for details. +segments which may degrade query performance as well as increase disk space usage. See [Segment Size Optimization](../operations/segment-optimization.md) for details. The Coordinator first finds the segments to compact together based on the [segment search policy](#segment-search-policy). -Once some segments are found, it launches a [compaction task](../ingestion/tasks.html#compaction-task) to compact those segments. +Once some segments are found, it launches a [compaction task](../ingestion/tasks.md#compact) to compact those segments. The maximum number of running compaction tasks is `min(sum of worker capacity * slotRatio, maxSlots)`. Note that even though `min(sum of worker capacity * slotRatio, maxSlots)` = 0, at least one compaction task is always submitted if the compaction is enabled for a dataSource. @@ -81,9 +80,9 @@ Compaction tasks might fail due to the following reasons. Once a compaction task fails, the Coordinator simply finds the segments for the interval of the failed task again, and launches a new compaction task in the next run. -### Segment Search Policy +### Segment search policy -#### Newest Segment First Policy +#### Newest segment first policy At every coordinator run, this policy searches for segments to compact by iterating segments from the latest to the oldest. Once it finds the latest segment among all dataSources, it checks if the segment is _compactible_ with other segments of the same dataSource which have the same or abutting intervals. @@ -104,13 +103,11 @@ If this is set, this policy will ignore the segments falling into the interval o This is to avoid conflicts between compaction tasks and realtime tasks. Note that realtime tasks have a higher priority than compaction tasks by default. Realtime tasks will revoke the locks of compaction tasks if their intervals overlap, resulting in the termination of the compaction task. -
-This policy currently cannot handle the situation when there are a lot of small segments which have the same interval, -and their total size exceeds inputSegmentSizeBytes. -If it finds such segments, it simply skips them. -
+> This policy currently cannot handle the situation when there are a lot of small segments which have the same interval, +> and their total size exceeds [inputSegmentSizeBytes](../configuration/index.md#compaction-dynamic-configuration). +> If it finds such segments, it simply skips them. -### The Coordinator Console +### The Coordinator console The Druid Coordinator exposes a web GUI for displaying cluster information and rule configuration. For more details, please see [coordinator console](../operations/management-uis.html#coordinator-consoles). diff --git a/docs/content/design/historical.md b/docs/design/historical.md similarity index 75% rename from docs/content/design/historical.md rename to docs/design/historical.md index 098950cf41ab..8abbfc6d8fd1 100644 --- a/docs/content/design/historical.md +++ b/docs/design/historical.md @@ -1,5 +1,5 @@ --- -layout: doc_page +id: historical title: "Historical Process" --- @@ -22,13 +22,12 @@ title: "Historical Process" ~ under the License. --> -# Historical Process ### Configuration For Apache Druid (incubating) Historical Process Configuration, see [Historical Configuration](../configuration/index.html#historical). -### HTTP Endpoints +### HTTP endpoints For a list of API endpoints supported by the Historical, please see the [API reference](../operations/api-reference.html#historical). @@ -38,22 +37,22 @@ For a list of API endpoints supported by the Historical, please see the [API ref org.apache.druid.cli.Main server historical ``` -### Loading and Serving Segments +### Loading and serving segments Each Historical process maintains a constant connection to Zookeeper and watches a configurable set of Zookeeper paths for new segment information. Historical processes do not communicate directly with each other or with the Coordinator processes but instead rely on Zookeeper for coordination. -The [Coordinator](../design/coordinator.html) process is responsible for assigning new segments to Historical processes. Assignment is done by creating an ephemeral Zookeeper entry under a load queue path associated with a Historical process. For more information on how the Coordinator assigns segments to Historical processes, please see [Coordinator](../design/coordinator.html). +The [Coordinator](../design/coordinator.md) process is responsible for assigning new segments to Historical processes. Assignment is done by creating an ephemeral Zookeeper entry under a load queue path associated with a Historical process. For more information on how the Coordinator assigns segments to Historical processes, please see [Coordinator](../design/coordinator.md). -When a Historical process notices a new load queue entry in its load queue path, it will first check a local disk directory (cache) for the information about segment. If no information about the segment exists in the cache, the Historical process will download metadata about the new segment to serve from Zookeeper. This metadata includes specifications about where the segment is located in deep storage and about how to decompress and process the segment. For more information about segment metadata and Druid segments in general, please see [Segments](../design/segments.html). Once a Historical process completes processing a segment, the segment is announced in Zookeeper under a served segments path associated with the process. At this point, the segment is available for querying. +When a Historical process notices a new load queue entry in its load queue path, it will first check a local disk directory (cache) for the information about segment. If no information about the segment exists in the cache, the Historical process will download metadata about the new segment to serve from Zookeeper. This metadata includes specifications about where the segment is located in deep storage and about how to decompress and process the segment. For more information about segment metadata and Druid segments in general, please see [Segments](../design/segments.md). Once a Historical process completes processing a segment, the segment is announced in Zookeeper under a served segments path associated with the process. At this point, the segment is available for querying. -### Loading and Serving Segments From Cache +### Loading and serving segments from cache Recall that when a Historical process notices a new segment entry in its load queue path, the Historical process first checks a configurable cache directory on its local disk to see if the segment had been previously downloaded. If a local cache entry already exists, the Historical process will directly read the segment binary files from disk and load the segment. The segment cache is also leveraged when a Historical process is first started. On startup, a Historical process will search through its cache directory and immediately load and serve all segments that are found. This feature allows Historical processes to be queried as soon they come online. -### Querying Segments +### Querying segments -Please see [Querying](../querying/querying.html) for more information on querying Historical processes. +Please see [Querying](../querying/querying.md) for more information on querying Historical processes. A Historical can be configured to log and report metrics for every query it services. diff --git a/docs/design/index.md b/docs/design/index.md new file mode 100644 index 000000000000..b53a506192c7 --- /dev/null +++ b/docs/design/index.md @@ -0,0 +1,100 @@ +--- +id: index +title: "Introduction to Apache Druid" +--- + + + +## What is Druid? + +Apache Druid (incubating) is a real-time analytics database designed for fast slice-and-dice analytics +("[OLAP](http://en.wikipedia.org/wiki/Online_analytical_processing)" queries) on large data sets. Druid is most often +used as a database for powering use cases where real-time ingest, fast query performance, and high uptime are important. +As such, Druid is commonly used for powering GUIs of analytical applications, or as a backend for highly-concurrent APIs +that need fast aggregations. Druid works best with event-oriented data. + +Common application areas for Druid include: + +- Clickstream analytics (web and mobile analytics) +- Network telemetry analytics (network performance monitoring) +- Server metrics storage +- Supply chain analytics (manufacturing metrics) +- Application performance metrics +- Digital marketing/advertising analytics +- Business intelligence / OLAP + +Druid's core architecture combines ideas from data warehouses, timeseries databases, and logsearch systems. Some of +Druid's key features are: + +1. **Columnar storage format.** Druid uses column-oriented storage, meaning it only needs to load the exact columns +needed for a particular query. This gives a huge speed boost to queries that only hit a few columns. In addition, each +column is stored optimized for its particular data type, which supports fast scans and aggregations. +2. **Scalable distributed system.** Druid is typically deployed in clusters of tens to hundreds of servers, and can +offer ingest rates of millions of records/sec, retention of trillions of records, and query latencies of sub-second to a +few seconds. +3. **Massively parallel processing.** Druid can process a query in parallel across the entire cluster. +4. **Realtime or batch ingestion.** Druid can ingest data either real-time (ingested data is immediately available for +querying) or in batches. +5. **Self-healing, self-balancing, easy to operate.** As an operator, to scale the cluster out or in, simply add or +remove servers and the cluster will rebalance itself automatically, in the background, without any downtime. If any +Druid servers fail, the system will automatically route around the damage until those servers can be replaced. Druid +is designed to run 24/7 with no need for planned downtimes for any reason, including configuration changes and software +updates. +6. **Cloud-native, fault-tolerant architecture that won't lose data.** Once Druid has ingested your data, a copy is +stored safely in [deep storage](architecture.html#deep-storage) (typically cloud storage, HDFS, or a shared filesystem). +Your data can be recovered from deep storage even if every single Druid server fails. For more limited failures affecting +just a few Druid servers, replication ensures that queries are still possible while the system recovers. +7. **Indexes for quick filtering.** Druid uses [CONCISE](https://arxiv.org/pdf/1004.0403) or +[Roaring](https://roaringbitmap.org/) compressed bitmap indexes to create indexes that power fast filtering and +searching across multiple columns. +8. **Time-based partitioning.** Druid first partitions data by time, and can additionally partition based on other fields. +This means time-based queries will only access the partitions that match the time range of the query. This leads to +significant performance improvements for time-based data. +9. **Approximate algorithms.** Druid includes algorithms for approximate count-distinct, approximate ranking, and +computation of approximate histograms and quantiles. These algorithms offer bounded memory usage and are often +substantially faster than exact computations. For situations where accuracy is more important than speed, Druid also +offers exact count-distinct and exact ranking. +10. **Automatic summarization at ingest time.** Druid optionally supports data summarization at ingestion time. This +summarization partially pre-aggregates your data, and can lead to big costs savings and performance boosts. + +## When should I use Druid? + +Druid is used by many companies of various sizes for many different use cases. Check out the +[Powered by Apache Druid](/druid-powered) page + +Druid is likely a good choice if your use case fits a few of the following descriptors: + +- Insert rates are very high, but updates are less common. +- Most of your queries are aggregation and reporting queries ("group by" queries). You may also have searching and +scanning queries. +- You are targeting query latencies of 100ms to a few seconds. +- Your data has a time component (Druid includes optimizations and design choices specifically related to time). +- You may have more than one table, but each query hits just one big distributed table. Queries may potentially hit more +than one smaller "lookup" table. +- You have high cardinality data columns (e.g. URLs, user IDs) and need fast counting and ranking over them. +- You want to load data from Kafka, HDFS, flat files, or object storage like Amazon S3. + +Situations where you would likely _not_ want to use Druid include: + +- You need low-latency updates of _existing_ records using a primary key. Druid supports streaming inserts, but not streaming updates (updates are done using +background batch jobs). +- You are building an offline reporting system where query latency is not very important. +- You want to do "big" joins (joining one big fact table to another big fact table) and you are okay with these queries +taking a long time to complete. diff --git a/docs/content/development/indexer.md b/docs/design/indexer.md similarity index 97% rename from docs/content/development/indexer.md rename to docs/design/indexer.md index 25f089aa5414..4221b4e9ff67 100644 --- a/docs/content/development/indexer.md +++ b/docs/design/indexer.md @@ -22,11 +22,8 @@ title: "Indexer Process" ~ under the License. --> -# Indexer Process - -
-The Indexer is an optional and experimental feature. Its memory management system is still under development and will be significantly enhanced in later releases. -
+> The Indexer is an optional and experimental feature. +> Its memory management system is still under development and will be significantly enhanced in later releases. The Apache Druid (incubating) Indexer process is an alternative to the MiddleManager + Peon task execution system. Instead of forking a separate JVM process per-task, the Indexer runs tasks as separate threads within a single JVM process. @@ -149,7 +146,7 @@ You can optionally configure caching to be enabled on the Indexer by setting cac |`druid.realtime.cache.unCacheable`|All druid query types|All query types to not cache.|`["groupBy", "select"]`| |`druid.realtime.cache.maxEntrySize`|Maximum cache entry size in bytes.|1_000_000| -See [cache configuration](#cache-configuration) for how to configure cache settings. +See [cache configuration](../configuration/index.html#cache-configuration) for how to configure cache settings. Note that only local caches such as the `local`-type cache and `caffeine` cache are supported. If a remote cache such as `memcached` is used, it will be ignored. diff --git a/docs/design/indexing-service.md b/docs/design/indexing-service.md new file mode 100644 index 000000000000..847f29af7d7d --- /dev/null +++ b/docs/design/indexing-service.md @@ -0,0 +1,51 @@ +--- +id: indexing-service +title: "Indexing Service" +--- + + + + +The Apache Druid (incubating) indexing service is a highly-available, distributed service that runs indexing related tasks. + +Indexing [tasks](../ingestion/tasks.md) create (and sometimes destroy) Druid [segments](../design/segments.md). The indexing service has a master/slave like architecture. + +The indexing service is composed of three main components: a [Peon](../design/peons.md) component that can run a single task, a [Middle Manager](../design/middlemanager.md) component that manages Peons, and an [Overlord](../design/overlord.md) component that manages task distribution to MiddleManagers. +Overlords and MiddleManagers may run on the same process or across multiple processes while MiddleManagers and Peons always run on the same process. + +Tasks are managed using API endpoints on the Overlord service. Please see [Overlord Task API](../operations/api-reference.html#tasks) for more information. + +![Indexing Service](../assets/indexing_service.png "Indexing Service") + +## Overlord + +See [Overlord](../design/overlord.md). + +## Middle Managers + +See [Middle Manager](../design/middlemanager.md). + +## Peons + +See [Peon](../design/peons.md). + +## Tasks + +See [Tasks](../ingestion/tasks.md). diff --git a/docs/content/design/middlemanager.md b/docs/design/middlemanager.md similarity index 87% rename from docs/content/design/middlemanager.md rename to docs/design/middlemanager.md index 52b193fe495e..26628e6e4281 100644 --- a/docs/content/design/middlemanager.md +++ b/docs/design/middlemanager.md @@ -1,5 +1,5 @@ --- -layout: doc_page +id: middlemanager title: "MiddleManager Process" --- @@ -22,20 +22,19 @@ title: "MiddleManager Process" ~ under the License. --> -# MiddleManager Process ### Configuration For Apache Druid (incubating) Middlemanager Process Configuration, see [Indexing Service Configuration](../configuration/index.html#middlemanager-and-peons). -### HTTP Endpoints +### HTTP endpoints For a list of API endpoints supported by the MiddleManager, please see the [API reference](../operations/api-reference.html#middlemanager). ### Overview The MiddleManager process is a worker process that executes submitted tasks. Middle Managers forward tasks to Peons that run in separate JVMs. -The reason we have separate JVMs for tasks is for resource and log isolation. Each [Peon](../design/peons.html) is capable of running only one task at a time, however, a MiddleManager may have multiple Peons. +The reason we have separate JVMs for tasks is for resource and log isolation. Each [Peon](../design/peons.md) is capable of running only one task at a time, however, a MiddleManager may have multiple Peons. ### Running diff --git a/docs/content/design/overlord.md b/docs/design/overlord.md similarity index 96% rename from docs/content/design/overlord.md rename to docs/design/overlord.md index 139c91eba1c8..76fd647581b6 100644 --- a/docs/content/design/overlord.md +++ b/docs/design/overlord.md @@ -1,5 +1,5 @@ --- -layout: doc_page +id: overlord title: "Overlord Process" --- @@ -22,13 +22,12 @@ title: "Overlord Process" ~ under the License. --> -# Overlord Process ### Configuration For Apache Druid (incubating) Overlord Process Configuration, see [Overlord Configuration](../configuration/index.html#overlord). -### HTTP Endpoints +### HTTP endpoints For a list of API endpoints supported by the Overlord, please see the [API reference](../operations/api-reference.html#overlord). @@ -39,11 +38,11 @@ In local mode Overlord is also responsible for creating Peons for executing task Local mode is typically used for simple workflows. In remote mode, the Overlord and MiddleManager are run in separate processes and you can run each on a different server. This mode is recommended if you intend to use the indexing service as the single endpoint for all Druid indexing. -### Overlord Console +### Overlord console The Overlord provides a UI for managing tasks and workers. For more details, please see [overlord console](../operations/management-uis.html#overlord-console). -### Blacklisted Workers +### Blacklisted workers If a MiddleManager has task failures above a threshold, the Overlord will blacklist these MiddleManagers. No more than 20% of the MiddleManagers can be blacklisted. Blacklisted MiddleManagers will be periodically whitelisted. diff --git a/docs/content/design/peons.md b/docs/design/peons.md similarity index 97% rename from docs/content/design/peons.md rename to docs/design/peons.md index 668a26a97073..f81162967741 100644 --- a/docs/content/design/peons.md +++ b/docs/design/peons.md @@ -1,5 +1,5 @@ --- -layout: doc_page +id: peons title: "Peons" --- @@ -22,13 +22,12 @@ title: "Peons" ~ under the License. --> -# Peons ### Configuration For Apache Druid (incubating) Peon Configuration, see [Peon Query Configuration](../configuration/index.html#peon-query-configuration) and [Additional Peon Configuration](../configuration/index.html#additional-peon-configuration). -### HTTP Endpoints +### HTTP endpoints For a list of API endpoints supported by the Peon, please see the [Peon API reference](../operations/api-reference.html#peon). diff --git a/docs/content/design/processes.md b/docs/design/processes.md similarity index 63% rename from docs/content/design/processes.md rename to docs/design/processes.md index 8c2debfa55a0..bbcd917145dd 100644 --- a/docs/content/design/processes.md +++ b/docs/design/processes.md @@ -1,6 +1,6 @@ --- -layout: doc_page -title: "Apache Druid (incubating) Processes and Servers" +id: processes +title: "Processes and servers" --- -# Apache Druid (incubating) Processes and Servers -## Process Types +## Process types Druid has several process types: -* [Coordinator](../design/coordinator.html) -* [Overlord](../design/overlord.html) -* [Broker](../design/broker.html) -* [Historical](../design/historical.html) -* [MiddleManager](../design/middlemanager.html) and [Peons](../design/peons.html) -* [Router (Optional)](../development/router.html) +* [Coordinator](../design/coordinator.md) +* [Overlord](../design/overlord.md) +* [Broker](../design/broker.md) +* [Historical](../design/historical.md) +* [MiddleManager](../design/middlemanager.md) and [Peons](../design/peons.md) +* [Indexer (Optional)](../design/indexer.md) +* [Router (Optional)](../design/router.md) -## Server Types +## Server types Druid processes can be deployed any way you like, but for ease of deployment we suggest organizing them into three server types: @@ -43,7 +43,7 @@ Druid processes can be deployed any way you like, but for ease of deployment we * **Query** * **Data** - + This section describes the Druid processes and the suggested Master/Query/Data server organization, as shown in the architecture diagram above. @@ -55,11 +55,11 @@ Within a Master server, functionality is split between two processes, the Coordi #### Coordinator process -[**Coordinator**](../design/coordinator.html) processes watch over the Historical processes on the Data servers. They are responsible for assigning segments to specific servers, and for ensuring segments are well-balanced across Historicals. +[**Coordinator**](../design/coordinator.md) processes watch over the Historical processes on the Data servers. They are responsible for assigning segments to specific servers, and for ensuring segments are well-balanced across Historicals. #### Overlord process -[**Overlord**](../design/overlord.html) processes watch over the MiddleManager processes on the Data servers and are the controllers of data ingestion into Druid. They are responsible for assigning ingestion tasks to MiddleManagers and for coordinating segment publishing. +[**Overlord**](../design/overlord.md) processes watch over the MiddleManager processes on the Data servers and are the controllers of data ingestion into Druid. They are responsible for assigning ingestion tasks to MiddleManagers and for coordinating segment publishing. ### Query server @@ -69,12 +69,12 @@ Within a Query server, functionality is split between two processes, the Broker #### Broker process -[**Broker**](../design/broker.html) processes receive queries from external clients and forward those queries to Data servers. When Brokers receive results from those subqueries, they merge those results and return them to the +[**Broker**](../design/broker.md) processes receive queries from external clients and forward those queries to Data servers. When Brokers receive results from those subqueries, they merge those results and return them to the caller. End users typically query Brokers rather than querying Historicals or MiddleManagers processes on Data servers directly. #### Router process (optional) -[**Router**](../development/router.html) processes are _optional_ processes that provide a unified API gateway in front of Druid Brokers, +[**Router**](../design/router.md) processes are _optional_ processes that provide a unified API gateway in front of Druid Brokers, Overlords, and Coordinators. They are optional since you can also simply contact the Druid Brokers, Overlords, and Coordinators directly. @@ -88,18 +88,30 @@ Within a Data server, functionality is split between two processes, the Historic ### Historical process -[**Historical**](../design/historical.html) processes are the workhorses that handle storage and querying on "historical" data +[**Historical**](../design/historical.md) processes are the workhorses that handle storage and querying on "historical" data (including any streaming data that has been in the system long enough to be committed). Historical processes download segments from deep storage and respond to queries about these segments. They don't accept writes. ### Middle Manager process -[**MiddleManager**](../design/middlemanager.html) processes handle ingestion of new data into the cluster. They are responsible +[**MiddleManager**](../design/middlemanager.md) processes handle ingestion of new data into the cluster. They are responsible for reading from external data sources and publishing new Druid segments. #### Peon processes -[**Peon**](../design/peons.html) processes are task execution engines spawned by MiddleManagers. Each Peon runs a separate JVM and is responsible for executing a single task. Peons always run on the same host as the MiddleManager that spawned them. +[**Peon**](../design/peons.md) processes are task execution engines spawned by MiddleManagers. Each Peon runs a separate JVM and is responsible for executing a single task. Peons always run on the same host as the MiddleManager that spawned them. + +### Indexer process (optional) + +[**Indexer**](../design/indexer.md) processes are an alternative to MiddleManagers and Peons. Instead of +forking separate JVM processes per-task, the Indexer runs tasks as individual threads within a single JVM process. + +The Indexer is designed to be easier to configure and deploy compared to the MiddleManager + Peon system and to +better enable resource sharing across tasks. The Indexer is a newer feature and is currently designated +[experimental](../development/experimental.md) due to the fact that its memory management system is still under +development. It will continue to mature in future versions of Druid. + +Typically, you would deploy either MiddleManagers or Indexers, but not both. ## Pros and cons of colocation @@ -126,6 +138,6 @@ Please see [Coordinator Configuration: Operation](../configuration/index.html#co ### Historicals and MiddleManagers -With higher levels of ingestion or query load, it can make sense to deploy the Historical and MiddleManager processes on separate hosts to to avoid CPU and memory contention. +With higher levels of ingestion or query load, it can make sense to deploy the Historical and MiddleManager processes on separate hosts to to avoid CPU and memory contention. -The Historical also benefits from having free memory for memory mapped segments, which can be another reason to deploy the Historical and MiddleManager processes separately. \ No newline at end of file +The Historical also benefits from having free memory for memory mapped segments, which can be another reason to deploy the Historical and MiddleManager processes separately. diff --git a/docs/content/development/router.md b/docs/design/router.md similarity index 89% rename from docs/content/development/router.md rename to docs/design/router.md index 11508ac86aa9..68b348a73935 100644 --- a/docs/content/development/router.md +++ b/docs/design/router.md @@ -1,5 +1,5 @@ --- -layout: doc_page +id: router title: "Router Process" --- @@ -22,16 +22,13 @@ title: "Router Process" ~ under the License. --> -# Router Process -
-The Router is an optional and experimental feature due to the fact that its recommended place in the Druid cluster architecture is still evolving. -However, it has been battle-tested in production, and it hosts the powerful [Druid Console](../operations/management-uis.html#druid-console), so you should feel safe deploying it. -
+> The Router is an optional and [experimental](../development/experimental.md) feature due to the fact that its recommended place in the Druid cluster architecture is still evolving. +> However, it has been battle-tested in production, and it hosts the powerful [Druid Console](../operations/management-uis.html#druid-console), so you should feel safe deploying it. -The Apache Druid (incubating) Router process can be used to route queries to different Broker processes. By default, the broker routes queries based on how [Rules](../operations/rule-configuration.html) are set up. For example, if 1 month of recent data is loaded into a `hot` cluster, queries that fall within the recent month can be routed to a dedicated set of brokers. Queries outside this range are routed to another set of brokers. This set up provides query isolation such that queries for more important data are not impacted by queries for less important data. +The Apache Druid (incubating) Router process can be used to route queries to different Broker processes. By default, the broker routes queries based on how [Rules](../operations/rule-configuration.md) are set up. For example, if 1 month of recent data is loaded into a `hot` cluster, queries that fall within the recent month can be routed to a dedicated set of brokers. Queries outside this range are routed to another set of brokers. This set up provides query isolation such that queries for more important data are not impacted by queries for less important data. -For query routing purposes, you should only ever need the Router process if you have a Druid cluster well into the terabyte range. +For query routing purposes, you should only ever need the Router process if you have a Druid cluster well into the terabyte range. In addition to query routing, the Router also runs the [Druid Console](../operations/management-uis.html#druid-console), a management UI for datasources, segments, tasks, data processes (Historicals and MiddleManagers), and coordinator dynamic configuration. The user can also run SQL and native Druid queries within the console. @@ -93,7 +90,7 @@ druid.server.http.numThreads=100 Runtime Configuration --------------------- -The Router module uses several of the default modules in [Configuration](../configuration/index.html) and has the following set of configurations as well: +The Router module uses several of the default modules in [Configuration](../configuration/index.md) and has the following set of configurations as well: |Property|Possible Values|Description|Default| |--------|---------------|-----------|-------| @@ -145,9 +142,7 @@ Allows defining arbitrary routing rules using a JavaScript function. The functio } ``` -
-JavaScript-based functionality is disabled by default. Please refer to the Druid JavaScript programming guide for guidelines about using Druid's JavaScript functionality, including instructions on how to enable it. -
+> JavaScript-based functionality is disabled by default. Please refer to the Druid [JavaScript programming guide](../development/javascript.md) for guidelines about using Druid's JavaScript functionality, including instructions on how to enable it. Avatica Query Balancing @@ -159,7 +154,7 @@ To accomplish this, Druid provides two built-in balancers that use rendezvous ha Note that when multiple Routers are used, all Routers should have identical balancer configuration to ensure that they make the same routing decisions. -### Rendezvous Hash Balancer +### Rendezvous hash balancer This balancer uses [Rendezvous Hashing](https://en.wikipedia.org/wiki/Rendezvous_hashing) on an Avatica request's connection ID to assign the request to a Broker. @@ -171,7 +166,7 @@ druid.router.avatica.balancer.type=rendezvousHash If no `druid.router.avatica.balancer` property is set, the Router will also default to using the Rendezvous Hash Balancer. -### Consistent Hash Balancer +### Consistent hash balancer This balancer uses [Consistent Hashing](https://en.wikipedia.org/wiki/Consistent_hashing) on an Avatica request's connection ID to assign the request to a Broker. @@ -183,7 +178,7 @@ druid.router.avatica.balancer.type=consistentHash This is a non-default implementation that is provided for experimentation purposes. The consistent hasher has longer setup times on initialization and when the set of Brokers changes, but has a faster Broker assignment time than the rendezous hasher when tested with 5 Brokers. Benchmarks for both implementations have been provided in `ConsistentHasherBenchmark` and `RendezvousHasherBenchmark`. The consistent hasher also requires locking, while the rendezvous hasher does not. -HTTP Endpoints +HTTP endpoints -------------- The Router process exposes several HTTP endpoints for interactions. diff --git a/docs/content/design/segments.md b/docs/design/segments.md similarity index 73% rename from docs/content/design/segments.md rename to docs/design/segments.md index adc454b32dd7..93daf3ce4efe 100644 --- a/docs/content/design/segments.md +++ b/docs/design/segments.md @@ -1,5 +1,5 @@ --- -layout: doc_page +id: segments title: "Segments" --- @@ -22,13 +22,12 @@ title: "Segments" ~ under the License. --> -# Segments Apache Druid (incubating) stores its index in *segment files*, which are partitioned by time. In a basic setup, one segment file is created for each time interval, where the time interval is configurable in the -`segmentGranularity` parameter of the `granularitySpec`, which is -documented [here](../ingestion/ingestion-spec.html#granularityspec). For Druid to +`segmentGranularity` parameter of the +[`granularitySpec`](../ingestion/index.md#granularityspec). For Druid to operate well under heavy query load, it is important for the segment file size to be within the recommended range of 300mb-700mb. If your segment files are larger than this range, then consider either @@ -36,10 +35,11 @@ changing the granularity of the time interval or partitioning your data and tweaking the `targetPartitionSize` in your `partitionsSpec` (a good starting point for this parameter is 5 million rows). See the sharding section below and the 'Partitioning specification' section of -the [Batch ingestion](../ingestion/hadoop.html#partitioning-specification) documentation +the [Batch ingestion](../ingestion/hadoop.md#partitionsspec) documentation for more information. ### A segment file's core data structures + Here we describe the internal structure of segment files, which is essentially *columnar*: the data for each column is laid out in separate data structures. By storing each column separately, Druid can @@ -48,7 +48,7 @@ for a query. There are three basic column types: the timestamp column, dimension columns, and metric columns, as illustrated in the image below: -![Druid column types](../../img/druid-column-types.png "Druid Column Types") +![Druid column types](../assets/druid-column-types.png "Druid Column Types") The timestamp and metric columns are simple: behind the scenes each of these is an array of integer or floating point values compressed with @@ -78,7 +78,7 @@ on filters do not need to touch the list of dimension values stored in To get a concrete sense of these data structures, consider the ‘page’ column from the example data above. The three data structures that -represent this dimension are illustrated in the diagram below. +represent this dimension are illustrated in the diagram below. ``` 1: Dictionary that encodes column values @@ -144,16 +144,14 @@ the 'column data' is an array of values. Additionally, a row with *n* values in 'column data' will have *n* non-zero valued entries in bitmaps. -Naming Convention ------------------ +## Naming Convention Identifiers for segments are typically constructed using the segment datasource, interval start time (in ISO 8601 format), interval end time (in ISO 8601 format), and a version. If data is additionally sharded beyond a time range, the segment identifier will also contain a partition number. An example segment identifier may be: datasource_intervalStart_intervalEnd_version_partitionNum -Segment Components ------------------- +## Segment Components Behind the scenes, a segment is comprised of several files, listed below. @@ -175,8 +173,7 @@ Behind the scenes, a segment is comprised of several files, listed below. In the codebase, segments have an internal format version. The current segment format version is `v9`. -Format of a column ------------------- +## Format of a column Each column is stored as two parts: @@ -185,8 +182,7 @@ Each column is stored as two parts: A ColumnDescriptor is essentially an object that allows us to use jackson’s polymorphic deserialization to add new and interesting methods of serialization with minimal impact to the code. It consists of some metadata about the column (what type is it, is it multi-value, etc.) and then a list of serde logic that can deserialize the rest of the binary. -Sharding Data to Create Segments --------------------------------- +## Sharding Data to Create Segments ### Sharding @@ -203,3 +199,60 @@ All 3 segments must be loaded before a query for the interval `2011-01-01T02:00: The exception to this rule is with using linear shard specs. Linear shard specs do not force 'completeness' and queries can complete even if shards are not loaded in the system. For example, if your real-time ingestion creates 3 segments that were sharded with linear shard spec, and only two of the segments were loaded in the system, queries would return results only for those 2 segments. + +## Schema changes + +## Replacing segments + +Druid uniquely +identifies segments using the datasource, interval, version, and partition number. The partition number is only visible in the segment id if +there are multiple segments created for some granularity of time. For example, if you have hourly segments, but you +have more data in an hour than a single segment can hold, you can create multiple segments for the same hour. These segments will share +the same datasource, interval, and version, but have linearly increasing partition numbers. + +``` +foo_2015-01-01/2015-01-02_v1_0 +foo_2015-01-01/2015-01-02_v1_1 +foo_2015-01-01/2015-01-02_v1_2 +``` + +In the example segments above, the dataSource = foo, interval = 2015-01-01/2015-01-02, version = v1, partitionNum = 0. +If at some later point in time, you reindex the data with a new schema, the newly created segments will have a higher version id. + +``` +foo_2015-01-01/2015-01-02_v2_0 +foo_2015-01-01/2015-01-02_v2_1 +foo_2015-01-01/2015-01-02_v2_2 +``` + +Druid batch indexing (either Hadoop-based or IndexTask-based) guarantees atomic updates on an interval-by-interval basis. +In our example, until all `v2` segments for `2015-01-01/2015-01-02` are loaded in a Druid cluster, queries exclusively use `v1` segments. +Once all `v2` segments are loaded and queryable, all queries ignore `v1` segments and switch to the `v2` segments. +Shortly afterwards, the `v1` segments are unloaded from the cluster. + +Note that updates that span multiple segment intervals are only atomic within each interval. They are not atomic across the entire update. +For example, you have segments such as the following: + +``` +foo_2015-01-01/2015-01-02_v1_0 +foo_2015-01-02/2015-01-03_v1_1 +foo_2015-01-03/2015-01-04_v1_2 +``` + +`v2` segments will be loaded into the cluster as soon as they are built and replace `v1` segments for the period of time the +segments overlap. Before v2 segments are completely loaded, your cluster may have a mixture of `v1` and `v2` segments. + +``` +foo_2015-01-01/2015-01-02_v1_0 +foo_2015-01-02/2015-01-03_v2_1 +foo_2015-01-03/2015-01-04_v1_2 +``` + +In this case, queries may hit a mixture of `v1` and `v2` segments. + +## Different schemas among segments + +Druid segments for the same datasource may have different schemas. If a string column (dimension) exists in one segment but not +another, queries that involve both segments still work. Queries for the segment missing the dimension will behave as if the dimension has only null values. +Similarly, if one segment has a numeric column (metric) but another does not, queries on the segment missing the +metric will generally "do the right thing". Aggregations over this missing metric behave as if the metric were missing. diff --git a/docs/content/development/build.md b/docs/development/build.md similarity index 97% rename from docs/content/development/build.md rename to docs/development/build.md index b28a83653e84..ef5ec43a3f0f 100644 --- a/docs/content/development/build.md +++ b/docs/development/build.md @@ -1,6 +1,6 @@ --- -layout: doc_page -title: "Build from Source" +id: build +title: "Build from source" --- -# Build from Source You can build Apache Druid (incubating) directly from source. Please note that these instructions are for building the latest stable version of Druid. For building the latest code in master, follow the instructions [here](https://github.com/apache/incubator-druid/blob/master/docs/content/development/build.md). diff --git a/docs/content/development/experimental.md b/docs/development/experimental.md similarity index 95% rename from docs/content/development/experimental.md rename to docs/development/experimental.md index eb3c05187050..96a9b5085e73 100644 --- a/docs/content/development/experimental.md +++ b/docs/development/experimental.md @@ -1,6 +1,6 @@ --- -layout: doc_page -title: "Experimental Features" +id: experimental +title: "Experimental features" --- -# Experimental Features Features often start out in "experimental" status that indicates they are still evolving. This can mean any of the following things: diff --git a/docs/content/development/extensions-contrib/ambari-metrics-emitter.md b/docs/development/extensions-contrib/ambari-metrics-emitter.md similarity index 93% rename from docs/content/development/extensions-contrib/ambari-metrics-emitter.md rename to docs/development/extensions-contrib/ambari-metrics-emitter.md index d8c38331b789..30ba958bea61 100644 --- a/docs/content/development/extensions-contrib/ambari-metrics-emitter.md +++ b/docs/development/extensions-contrib/ambari-metrics-emitter.md @@ -1,5 +1,5 @@ --- -layout: doc_page +id: ambari-metrics-emitter title: "Ambari Metrics Emitter" --- @@ -22,14 +22,13 @@ title: "Ambari Metrics Emitter" ~ under the License. --> -# Ambari Metrics Emitter -To use this Apache Druid (incubating) extension, make sure to [include](../../operations/including-extensions.html) `ambari-metrics-emitter` extension. +To use this Apache Druid (incubating) extension, make sure to [include](../../development/extensions.md#loading-extensions) `ambari-metrics-emitter` extension. ## Introduction This extension emits Druid metrics to a ambari-metrics carbon server. -Events are sent after been [pickled](http://ambari-metrics.readthedocs.org/en/latest/feeding-carbon.html#the-pickle-protocol); the size of the batch is configurable. +Events are sent after been [pickled](http://ambari-metrics.readthedocs.org/en/latest/feeding-carbon.html#the-pickle-protocol); the size of the batch is configurable. ## Configuration @@ -44,7 +43,7 @@ All the configuration parameters for ambari-metrics emitter are under `druid.emi |`druid.emitter.ambari-metrics.trustStoreType`|trustStore type to be used for https|no|none| |`druid.emitter.ambari-metrics.trustStoreType`|trustStore password to be used for https|no|none| |`druid.emitter.ambari-metrics.batchSize`|Number of events to send as one batch.|no|100| -|`druid.emitter.ambari-metrics.eventConverter`| Filter and converter of druid events to ambari-metrics timeline event(please see next section). |yes|none| +|`druid.emitter.ambari-metrics.eventConverter`| Filter and converter of druid events to ambari-metrics timeline event(please see next section). |yes|none| |`druid.emitter.ambari-metrics.flushPeriod` | Queue flushing period in milliseconds. |no|1 minute| |`druid.emitter.ambari-metrics.maxQueueSize`| Maximum size of the queue used to buffer events. |no|`MAX_INT`| |`druid.emitter.ambari-metrics.alertEmitters`| List of emitters where alerts will be forwarded to. |no| empty list (no forwarding)| @@ -52,7 +51,7 @@ All the configuration parameters for ambari-metrics emitter are under `druid.emi |`druid.emitter.ambari-metrics.waitForEventTime` | waiting time in milliseconds if necessary for an event to become available. |no|1000 (1 sec)| ### Druid to Ambari Metrics Timeline Event Converter - + Ambari Metrics Timeline Event Converter defines a mapping between druid metrics name plus dimensions to a timeline event metricName. ambari-metrics metric path is organized using the following schema: `.[].[]..` @@ -60,10 +59,10 @@ Properly naming the metrics is critical to avoid conflicts, confusing data and p Example `druid.historical.hist-host1:8080.MyDataSourceName.GroupBy.query/time`: - * `druid` -> namespace prefix - * `historical` -> service name + * `druid` -> namespace prefix + * `historical` -> service name * `hist-host1:8080` -> druid hostname - * `MyDataSourceName` -> dimension value + * `MyDataSourceName` -> dimension value * `GroupBy` -> dimension value * `query/time` -> metric name @@ -71,7 +70,7 @@ We have two different implementation of event converter: #### Send-All converter -The first implementation called `all`, will send all the druid service metrics events. +The first implementation called `all`, will send all the druid service metrics events. The path will be in the form `.[].[]..` User has control of `.[].[].` @@ -89,7 +88,7 @@ White-list based converter comes with the following default white list map loca Although user can override the default white list map by supplying a property called `mapPath`. This property is a String containing the path for the file containing **white list map Json object**. -For example the following converter will read the map from the file `/pathPrefix/fileName.json`. +For example the following converter will read the map from the file `/pathPrefix/fileName.json`. ```json diff --git a/docs/content/development/extensions-contrib/azure.md b/docs/development/extensions-contrib/azure.md similarity index 95% rename from docs/content/development/extensions-contrib/azure.md rename to docs/development/extensions-contrib/azure.md index 6bdb020936e3..fd6c6c81e577 100644 --- a/docs/content/development/extensions-contrib/azure.md +++ b/docs/development/extensions-contrib/azure.md @@ -1,5 +1,5 @@ --- -layout: doc_page +id: azure title: "Microsoft Azure" --- @@ -22,9 +22,8 @@ title: "Microsoft Azure" ~ under the License. --> -# Microsoft Azure -To use this Apache Druid (incubating) extension, make sure to [include](../../operations/including-extensions.html) `druid-azure-extensions` extension. +To use this Apache Druid (incubating) extension, make sure to [include](../../development/extensions.md#loading-extensions) `druid-azure-extensions` extension. ## Deep Storage @@ -43,6 +42,8 @@ See [Azure Services](http://azure.microsoft.com/en-us/pricing/free-trial/) for m ## Firehose + + #### StaticAzureBlobStoreFirehose This firehose ingests events, similar to the StaticS3Firehose, but from an Azure Blob Store. @@ -53,7 +54,7 @@ The storage account is shared with the one used for Azure deep storage functiona As with the S3 blobstore, it is assumed to be gzipped if the extension ends in .gz -This firehose is _splittable_ and can be used by [native parallel index tasks](../../ingestion/native_tasks.html#parallel-index-task). +This firehose is _splittable_ and can be used by [native parallel index tasks](../../ingestion/native-batch.md#parallel-task). Since each split represents an object in this firehose, each worker task of `index_parallel` will read an object. Sample spec: diff --git a/docs/content/development/extensions-contrib/cassandra.md b/docs/development/extensions-contrib/cassandra.md similarity index 82% rename from docs/content/development/extensions-contrib/cassandra.md rename to docs/development/extensions-contrib/cassandra.md index 2bbf641f0430..c8cc8d9433e1 100644 --- a/docs/content/development/extensions-contrib/cassandra.md +++ b/docs/development/extensions-contrib/cassandra.md @@ -1,5 +1,5 @@ --- -layout: doc_page +id: cassandra title: "Apache Cassandra" --- @@ -22,10 +22,9 @@ title: "Apache Cassandra" ~ under the License. --> -# Apache Cassandra -To use this Apache Druid (incubating) extension, make sure to [include](../../operations/including-extensions.html) `druid-cassandra-storage` extension. +To use this Apache Druid (incubating) extension, make sure to [include](../../development/extensions.md#loading-extensions) `druid-cassandra-storage` extension. -[Apache Cassandra](http://www.datastax.com/what-we-offer/products-services/datastax-enterprise/apache-cassandra) can also -be leveraged for deep storage. This requires some additional Druid configuration as well as setting up the necessary +[Apache Cassandra](http://www.datastax.com/what-we-offer/products-services/datastax-enterprise/apache-cassandra) can also +be leveraged for deep storage. This requires some additional Druid configuration as well as setting up the necessary schema within a Cassandra keystore. diff --git a/docs/content/development/extensions-contrib/cloudfiles.md b/docs/development/extensions-contrib/cloudfiles.md similarity index 95% rename from docs/content/development/extensions-contrib/cloudfiles.md rename to docs/development/extensions-contrib/cloudfiles.md index ad11caad7244..07c7bea040c5 100644 --- a/docs/content/development/extensions-contrib/cloudfiles.md +++ b/docs/development/extensions-contrib/cloudfiles.md @@ -1,5 +1,5 @@ --- -layout: doc_page +id: cloudfiles title: "Rackspace Cloud Files" --- @@ -22,9 +22,8 @@ title: "Rackspace Cloud Files" ~ under the License. --> -# Rackspace Cloud Files -To use this Apache Druid (incubating) extension, make sure to [include](../../operations/including-extensions.html) `druid-cloudfiles-extensions` extension. +To use this Apache Druid (incubating) extension, make sure to [include](../../development/extensions.md#loading-extensions) `druid-cloudfiles-extensions` extension. ## Deep Storage @@ -44,6 +43,8 @@ To use this Apache Druid (incubating) extension, make sure to [include](../../op ## Firehose + + #### StaticCloudFilesFirehose This firehose ingests events, similar to the StaticAzureBlobStoreFirehose, but from Rackspace's Cloud Files. @@ -54,7 +55,7 @@ The storage account is shared with the one used for Racksapce's Cloud Files deep As with the Azure blobstore, it is assumed to be gzipped if the extension ends in .gz -This firehose is _splittable_ and can be used by [native parallel index tasks](../../ingestion/native_tasks.html#parallel-index-task). +This firehose is _splittable_ and can be used by [native parallel index tasks](../../ingestion/native-batch.md#parallel-task). Since each split represents an object in this firehose, each worker task of `index_parallel` will read an object. Sample spec: diff --git a/docs/content/development/extensions-contrib/distinctcount.md b/docs/development/extensions-contrib/distinctcount.md similarity index 93% rename from docs/content/development/extensions-contrib/distinctcount.md rename to docs/development/extensions-contrib/distinctcount.md index 7cf67b5f8691..4c3340295d6d 100644 --- a/docs/content/development/extensions-contrib/distinctcount.md +++ b/docs/development/extensions-contrib/distinctcount.md @@ -1,5 +1,5 @@ --- -layout: doc_page +id: distinctcount title: "DistinctCount Aggregator" --- @@ -22,9 +22,8 @@ title: "DistinctCount Aggregator" ~ under the License. --> -# DistinctCount Aggregator -To use this Apache Druid (incubating) extension, make sure to [include](../../operations/including-extensions.html) the `druid-distinctcount` extension. +To use this Apache Druid (incubating) extension, make sure to [include](../../development/extensions.md#loading-extensions) the `druid-distinctcount` extension. Additionally, follow these steps: @@ -34,7 +33,8 @@ Additionally, follow these steps: There are some limitations, when used with groupBy, the groupBy keys' numbers should not exceed maxIntermediateRows in every segment. If exceeded the result will be wrong. When used with topN, numValuesPerPass should not be too big. If too big the distinctCount will use a lot of memory and might cause the JVM to go our of memory. Example: -# Timeseries Query + +## Timeseries query ```json { @@ -54,7 +54,7 @@ Example: } ``` -# TopN Query +## TopN query ```json { @@ -77,7 +77,7 @@ Example: } ``` -# GroupBy Query +## GroupBy query ```json { diff --git a/docs/content/development/extensions-contrib/google.md b/docs/development/extensions-contrib/google.md similarity index 93% rename from docs/content/development/extensions-contrib/google.md rename to docs/development/extensions-contrib/google.md index ac49ff1bef97..4e0126a39e95 100644 --- a/docs/content/development/extensions-contrib/google.md +++ b/docs/development/extensions-contrib/google.md @@ -1,5 +1,5 @@ --- -layout: doc_page +id: google title: "Google Cloud Storage" --- @@ -22,13 +22,12 @@ title: "Google Cloud Storage" ~ under the License. --> -# Google Cloud Storage -To use this Apache Druid (incubating) extension, make sure to [include](../../operations/including-extensions.html) `druid-google-extensions` extension. +To use this Apache Druid (incubating) extension, make sure to [include](../../development/extensions.md#loading-extensions) `druid-google-extensions` extension. ## Deep Storage -Deep storage can be written to Google Cloud Storage either via this extension or the [druid-hdfs-storage extension](../extensions-core/hdfs.html). +Deep storage can be written to Google Cloud Storage either via this extension or the [druid-hdfs-storage extension](../extensions-core/hdfs.md). ### Configuration @@ -41,13 +40,15 @@ Deep storage can be written to Google Cloud Storage either via this extension or ## Firehose + + #### StaticGoogleBlobStoreFirehose This firehose ingests events, similar to the StaticS3Firehose, but from an Google Cloud Store. As with the S3 blobstore, it is assumed to be gzipped if the extension ends in .gz -This firehose is _splittable_ and can be used by [native parallel index tasks](../../ingestion/native_tasks.html#parallel-index-task). +This firehose is _splittable_ and can be used by [native parallel index tasks](../../ingestion/native-batch.md#parallel-task). Since each split represents an object in this firehose, each worker task of `index_parallel` will read an object. Sample spec: diff --git a/docs/content/development/extensions-contrib/graphite.md b/docs/development/extensions-contrib/graphite.md similarity index 94% rename from docs/content/development/extensions-contrib/graphite.md rename to docs/development/extensions-contrib/graphite.md index deac93abe10f..29f26d74233c 100644 --- a/docs/content/development/extensions-contrib/graphite.md +++ b/docs/development/extensions-contrib/graphite.md @@ -1,5 +1,5 @@ --- -layout: doc_page +id: graphite title: "Graphite Emitter" --- @@ -22,9 +22,8 @@ title: "Graphite Emitter" ~ under the License. --> -# Graphite Emitter -To use this Apache Druid (incubating) extension, make sure to [include](../../operations/including-extensions.html) `graphite-emitter` extension. +To use this Apache Druid (incubating) extension, make sure to [include](../../development/extensions.md#loading-extensions) `graphite-emitter` extension. ## Introduction @@ -52,14 +51,14 @@ All the configuration parameters for graphite emitter are under `druid.emitter.g ### Supported event types -The graphite emitter only emits service metric events to graphite (See [Druid Metrics](../../operations/metrics.html) for a list of metrics). +The graphite emitter only emits service metric events to graphite (See [Druid Metrics](../../operations/metrics.md) for a list of metrics). Alerts and request logs are not sent to graphite. These event types are not well represented in Graphite, which is more suited for timeseries views on numeric metrics, vs. storing non-numeric log events. Instead, alerts and request logs are optionally forwarded to other emitter implementations, specified by `druid.emitter.graphite.alertEmitters` and `druid.emitter.graphite.requestLogEmitters` respectively. ### Druid to Graphite Event Converter - + Graphite Event Converter defines a mapping between druid metrics name plus dimensions to a Graphite metric path. Graphite metric path is organized using the following schema: `.[].[]..` @@ -67,10 +66,10 @@ Properly naming the metrics is critical to avoid conflicts, confusing data and p Example `druid.historical.hist-host1_yahoo_com:8080.MyDataSourceName.GroupBy.query/time`: - * `druid` -> namespace prefix - * `historical` -> service name + * `druid` -> namespace prefix + * `historical` -> service name * `hist-host1.yahoo.com:8080` -> druid hostname - * `MyDataSourceName` -> dimension value + * `MyDataSourceName` -> dimension value * `GroupBy` -> dimension value * `query/time` -> metric name @@ -78,7 +77,7 @@ We have two different implementation of event converter: #### Send-All converter -The first implementation called `all`, will send all the druid service metrics events. +The first implementation called `all`, will send all the druid service metrics events. The path will be in the form `.[].[]..` User has control of `.[].[].` @@ -107,7 +106,7 @@ White-list based converter comes with the following default white list map loca Although user can override the default white list map by supplying a property called `mapPath`. This property is a String containing the path for the file containing **white list map Json object**. -For example the following converter will read the map from the file `/pathPrefix/fileName.json`. +For example the following converter will read the map from the file `/pathPrefix/fileName.json`. ```json diff --git a/docs/content/development/extensions-contrib/influx.md b/docs/development/extensions-contrib/influx.md similarity index 94% rename from docs/content/development/extensions-contrib/influx.md rename to docs/development/extensions-contrib/influx.md index 62e036be725a..28c8c9c7298b 100644 --- a/docs/content/development/extensions-contrib/influx.md +++ b/docs/development/extensions-contrib/influx.md @@ -1,5 +1,5 @@ --- -layout: doc_page +id: influx title: "InfluxDB Line Protocol Parser" --- @@ -22,11 +22,10 @@ title: "InfluxDB Line Protocol Parser" ~ under the License. --> -# InfluxDB Line Protocol Parser -To use this Apache Druid (incubating) extension, make sure to [include](../../operations/including-extensions.html) `druid-influx-extensions`. +To use this Apache Druid (incubating) extension, make sure to [include](../../development/extensions.md#loading-extensions) `druid-influx-extensions`. -This extension enables Druid to parse the [InfluxDB Line Protocol](https://docs.influxdata.com/influxdb/v1.5/write_protocols/line_protocol_tutorial/), a popular text-based timeseries metric serialization format. +This extension enables Druid to parse the [InfluxDB Line Protocol](https://docs.influxdata.com/influxdb/v1.5/write_protocols/line_protocol_tutorial/), a popular text-based timeseries metric serialization format. ## Line Protocol diff --git a/docs/content/development/extensions-contrib/influxdb-emitter.md b/docs/development/extensions-contrib/influxdb-emitter.md similarity index 92% rename from docs/content/development/extensions-contrib/influxdb-emitter.md rename to docs/development/extensions-contrib/influxdb-emitter.md index 138a0bbdc2c1..758c2615ac3e 100644 --- a/docs/content/development/extensions-contrib/influxdb-emitter.md +++ b/docs/development/extensions-contrib/influxdb-emitter.md @@ -1,5 +1,5 @@ --- -layout: doc_page +id: influxdb-emitter title: "InfluxDB Emitter" --- @@ -22,14 +22,13 @@ title: "InfluxDB Emitter" ~ under the License. --> -# InfluxDB Emitter -To use this Apache Druid (incubating) extension, make sure to [include](../../operations/including-extensions.html) `druid-influxdb-emitter` extension. +To use this Apache Druid (incubating) extension, make sure to [include](../../development/extensions.md#loading-extensions) `druid-influxdb-emitter` extension. ## Introduction -This extension emits druid metrics to [InfluxDB](https://www.influxdata.com/time-series-platform/influxdb/) over HTTP. Currently this emitter only emits service metric events to InfluxDB (See [Druid metrics](../../operations/metrics.html) for a list of metrics). -When a metric event is fired it is added to a queue of events. After a configurable amount of time, the events on the queue are transformed to InfluxDB's line protocol +This extension emits druid metrics to [InfluxDB](https://www.influxdata.com/time-series-platform/influxdb/) over HTTP. Currently this emitter only emits service metric events to InfluxDB (See [Druid metrics](../../operations/metrics.md) for a list of metrics). +When a metric event is fired it is added to a queue of events. After a configurable amount of time, the events on the queue are transformed to InfluxDB's line protocol and POSTed to the InfluxDB HTTP API. The entire queue is flushed at this point. The queue is also flushed as the emitter is shutdown. Note that authentication and authorization must be [enabled](https://docs.influxdata.com/influxdb/v1.7/administration/authentication_and_authorization/) on the InfluxDB server. @@ -52,19 +51,19 @@ All the configuration parameters for the influxdb emitter are under `druid.emitt ## InfluxDB Line Protocol -An example of how this emitter parses a Druid metric event into InfluxDB's [line protocol](https://docs.influxdata.com/influxdb/v1.7/write_protocols/line_protocol_reference/) is given here: +An example of how this emitter parses a Druid metric event into InfluxDB's [line protocol](https://docs.influxdata.com/influxdb/v1.7/write_protocols/line_protocol_reference/) is given here: -The syntax of the line protocol is : +The syntax of the line protocol is : `[,=[,=]] =[,=] []` - + where timestamp is in nano-seconds since epoch. A typical service metric event as recorded by Druid's logging emitter is: `Event [{"feed":"metrics","timestamp":"2017-10-31T09:09:06.857Z","service":"druid/historical","host":"historical001:8083","version":"0.11.0-SNAPSHOT","metric":"query/cache/total/hits","value":34787256}]`. This event is parsed into line protocol according to these rules: -* The measurement becomes druid_query since query is the first part of the metric. +* The measurement becomes druid_query since query is the first part of the metric. * The tags are service=druid/historical, hostname=historical001, metric=druid_cache_total. (The metric tag is the middle part of the druid metric separated with _ and preceded by druid_. Another example would be if an event has metric=query/time then there is no middle part and hence no metric tag) * The field is druid_hits since this is the last part of the metric. diff --git a/docs/content/development/extensions-contrib/kafka-emitter.md b/docs/development/extensions-contrib/kafka-emitter.md similarity index 93% rename from docs/content/development/extensions-contrib/kafka-emitter.md rename to docs/development/extensions-contrib/kafka-emitter.md index a0593066b2fb..5460c8d8b4b7 100644 --- a/docs/content/development/extensions-contrib/kafka-emitter.md +++ b/docs/development/extensions-contrib/kafka-emitter.md @@ -1,5 +1,5 @@ --- -layout: doc_page +id: kafka-emitter title: "Kafka Emitter" --- @@ -22,15 +22,14 @@ title: "Kafka Emitter" ~ under the License. --> -# Kafka Emitter -To use this Apache Druid (incubating) extension, make sure to [include](../../operations/including-extensions.html) `kafka-emitter` extension. +To use this Apache Druid (incubating) extension, make sure to [include](../../development/extensions.md#loading-extensions) `kafka-emitter` extension. ## Introduction This extension emits Druid metrics to [Apache Kafka](https://kafka.apache.org) directly with JSON format.
-Currently, Kafka has not only their nice ecosystem but also consumer API readily available. -So, If you currently use Kafka, It's easy to integrate various tool or UI +Currently, Kafka has not only their nice ecosystem but also consumer API readily available. +So, If you currently use Kafka, It's easy to integrate various tool or UI to monitor the status of your Druid cluster with this extension. ## Configuration diff --git a/docs/content/development/extensions-contrib/materialized-view.md b/docs/development/extensions-contrib/materialized-view.md similarity index 96% rename from docs/content/development/extensions-contrib/materialized-view.md rename to docs/development/extensions-contrib/materialized-view.md index 963a9446c903..8a8e7b9ff112 100644 --- a/docs/content/development/extensions-contrib/materialized-view.md +++ b/docs/development/extensions-contrib/materialized-view.md @@ -1,5 +1,5 @@ --- -layout: doc_page +id: materialized-view title: "Materialized View" --- @@ -22,7 +22,6 @@ title: "Materialized View" ~ under the License. --> -# Materialized View To use this Apache Druid (incubating) feature, make sure to only load `materialized-view-selection` on Broker and load `materialized-view-maintenance` on Overlord. In addtion, this feature currently requires a Hadoop cluster. @@ -73,7 +72,7 @@ A sample derivativeDataSource supervisor spec is shown below: |Type |The supervisor type. This should always be `derivativeDataSource`.|yes| |baseDataSource |The name of base dataSource. This dataSource data should be already stored inside Druid, and the dataSource will be used as input data.|yes| |dimensionsSpec |Specifies the dimensions of the data. These dimensions must be the subset of baseDataSource's dimensions.|yes| -|metricsSpec |A list of aggregators. These metrics must be the subset of baseDataSource's metrics. See [aggregations](../../querying/aggregations.html).|yes| +|metricsSpec |A list of aggregators. These metrics must be the subset of baseDataSource's metrics. See [aggregations](../../querying/aggregations.md).|yes| |tuningConfig |TuningConfig must be HadoopTuningConfig. See [Hadoop tuning config](../../ingestion/hadoop.html#tuningconfig).|yes| |dataSource |The name of this derived dataSource. |no(default=baseDataSource-hashCode of supervisor)| |hadoopDependencyCoordinates |A JSON array of Hadoop dependency coordinates that Druid will use, this property will override the default Hadoop coordinates. Once specified, Druid will look for those Hadoop dependencies from the location specified by druid.extensions.hadoopDependenciesDir |no| @@ -132,6 +131,6 @@ There are 2 parts in a view query: |Field|Description|Required| |--------|-----------|---------| |queryType |The query type. This should always be view |yes| -|query |The real query of this `view` query. The real query must be [groupBy](../../querying/groupbyquery.html), [topN](../../querying/topnquery.html), or [timeseries](../../querying/timeseriesquery.html) type.|yes| +|query |The real query of this `view` query. The real query must be [groupBy](../../querying/groupbyquery.md), [topN](../../querying/topnquery.md), or [timeseries](../../querying/timeseriesquery.md) type.|yes| **Note that Materialized View is currently designated as experimental. Please make sure the time of all processes are the same and increase monotonically. Otherwise, some unexpected errors may happen on query results.** diff --git a/docs/content/development/extensions-contrib/momentsketch-quantiles.md b/docs/development/extensions-contrib/momentsketch-quantiles.md similarity index 93% rename from docs/content/development/extensions-contrib/momentsketch-quantiles.md rename to docs/development/extensions-contrib/momentsketch-quantiles.md index 3eeadaf87ccc..a69e33956aef 100644 --- a/docs/content/development/extensions-contrib/momentsketch-quantiles.md +++ b/docs/development/extensions-contrib/momentsketch-quantiles.md @@ -1,5 +1,5 @@ --- -layout: doc_page +id: momentsketch-quantiles title: "Moment Sketches for Approximate Quantiles module" --- @@ -22,12 +22,11 @@ title: "Moment Sketches for Approximate Quantiles module" ~ under the License. --> -# MomentSketch Quantiles Sketch module -This module provides aggregators for approximate quantile queries using the [momentsketch](https://github.com/stanford-futuredata/momentsketch) library. +This module provides aggregators for approximate quantile queries using the [momentsketch](https://github.com/stanford-futuredata/momentsketch) library. The momentsketch provides coarse quantile estimates with less space and aggregation time overheads than traditional sketches, approaching the performance of counts and sums by reconstructing distributions from computed statistics. -To use this Apache Druid (incubating) extension, make sure you [include](../../operations/including-extensions.html) the extension in your config file: +To use this Apache Druid (incubating) extension, make sure you [include](../../development/extensions.md#loading-extensions) the extension in your config file: ``` druid.extensions.loadList=["druid-momentsketch"] @@ -85,10 +84,10 @@ As an example of a query with sketches pre-aggregated at ingestion time, one cou ```json { - "type": "momentSketch", - "name": "sketch", - "fieldName": "value", - "k": 10, + "type": "momentSketch", + "name": "sketch", + "fieldName": "value", + "k": 10, "compress": true, } ``` diff --git a/docs/content/development/extensions-contrib/moving-average-query.md b/docs/development/extensions-contrib/moving-average-query.md similarity index 89% rename from docs/content/development/extensions-contrib/moving-average-query.md rename to docs/development/extensions-contrib/moving-average-query.md index 7e028cc5a425..8cffcdec8a54 100644 --- a/docs/content/development/extensions-contrib/moving-average-query.md +++ b/docs/development/extensions-contrib/moving-average-query.md @@ -1,5 +1,5 @@ --- -layout: doc_page +id: moving-average-query --- -# Moving Average Queries ## Overview **Moving Average Query** is an extension which provides support for [Moving Average](https://en.wikipedia.org/wiki/Moving_average) and other Aggregate [Window Functions](https://en.wikibooks.org/wiki/Structured_Query_Language/Window_functions) in Druid queries. These Aggregate Window Functions consume standard Druid Aggregators and outputs additional windowed aggregates called [Averagers](#averagers). -#### High level algorithm +#### High level algorithm -Moving Average encapsulates the [groupBy query](../../querying/groupbyquery.html) (Or [timeseries](../../querying/timeseriesquery.html) in case of no dimensions) in order to rely on the maturity of these query types. +Moving Average encapsulates the [groupBy query](../../querying/groupbyquery.md) (Or [timeseries](../../querying/timeseriesquery.md) in case of no dimensions) in order to rely on the maturity of these query types. It runs the query in two main phases: @@ -50,7 +49,7 @@ It runs the query in two main phases: ## Operations -To use this extension, make sure to [load](../../operations/including-extensions.html) `druid-moving-average-query` only to the Broker. +To use this extension, make sure to [load](../../development/extensions.md#loading-extensions) `druid-moving-average-query` only to the Broker. ## Configuration There are currently no configuration properties specific to Moving Average. @@ -58,26 +57,26 @@ There are currently no configuration properties specific to Moving Average. ## Limitations * movingAverage is missing support for the following groupBy properties: `subtotalsSpec`, `virtualColumns`. * movingAverage is missing support for the following timeseries properties: `descending`. -* movingAverage is missing support for [SQL-compatible null handling](https://github.com/apache/incubator-druid/issues/4349) (So setting druid.generic.useDefaultValueForNull in configuration will give an error). +* movingAverage is missing support for [SQL-compatible null handling](https://github.com/apache/incubator-druid/issues/4349) (So setting druid.generic.useDefaultValueForNull in configuration will give an error). ##Query spec: -* Most properties in the query spec derived from [groupBy query](../../querying/groupbyquery.html) / [timeseries](../../querying/timeseriesquery.html), see documentation for these query types. +* Most properties in the query spec derived from [groupBy query](../../querying/groupbyquery.md) / [timeseries](../../querying/timeseriesquery.md), see documentation for these query types. |property|description|required?| |--------|-----------|---------| |queryType|This String should always be "movingAverage"; this is the first thing Druid looks at to figure out how to interpret the query.|yes| -|dataSource|A String or Object defining the data source to query, very similar to a table in a relational database. See [DataSource](../../querying/datasource.html) for more information.|yes| -|dimensions|A JSON list of [DimensionSpec](../../querying/dimensionspecs.html) (Notice that property is optional)|no| -|limitSpec|See [LimitSpec](../../querying/limitspec.html)|no| -|having|See [Having](../../querying/having.html)|no| +|dataSource|A String or Object defining the data source to query, very similar to a table in a relational database. See [DataSource](../../querying/datasource.md) for more information.|yes| +|dimensions|A JSON list of [DimensionSpec](../../querying/dimensionspecs.md) (Notice that property is optional)|no| +|limitSpec|See [LimitSpec](../../querying/limitspec.md)|no| +|having|See [Having](../../querying/having.md)|no| |granularity|A period granilarity; See [Period Granularities](../../querying/granularities.html#period-granularities)|yes| -|filter|See [Filters](../../querying/filters.html)|no| -|aggregations|Aggregations forms the input to Averagers; See [Aggregations](../../querying/aggregations.html)|yes| -|postAggregations|Supports only aggregations as input; See [Post Aggregations](../../querying/post-aggregations.html)|no| +|filter|See [Filters](../../querying/filters.md)|no| +|aggregations|Aggregations forms the input to Averagers; See [Aggregations](../../querying/aggregations.md)|yes| +|postAggregations|Supports only aggregations as input; See [Post Aggregations](../../querying/post-aggregations.md)|no| |intervals|A JSON Object representing ISO-8601 Intervals. This defines the time ranges to run the query over.|yes| |context|An additional JSON Object which can be used to specify certain flags.|no| |averagers|Defines the moving average function; See [Averagers](#averagers)|yes| -|postAveragers|Support input of both averagers and aggregations; Syntax is identical to postAggregations (See [Post Aggregations](../../querying/post-aggregations.html))|no| +|postAveragers|Support input of both averagers and aggregations; Syntax is identical to postAggregations (See [Post Aggregations](../../querying/post-aggregations.md))|no| ## Averagers @@ -118,7 +117,7 @@ These averagers offer four functions: * Min **Ignoring nulls**: -Using a MeanNoNulls averager is useful when the interval starts at the dataset beginning time. +Using a MeanNoNulls averager is useful when the interval starts at the dataset beginning time. In that case, the first records will ignore missing buckets and average won't be artificially low. However, this also means that empty days in a sparse dataset will also be ignored. @@ -129,7 +128,7 @@ Example of usage: ``` ### Cycle size (Day of Week) -This optional parameter is used to calculate over a single bucket within each cycle instead of all buckets. +This optional parameter is used to calculate over a single bucket within each cycle instead of all buckets. A prime example would be weekly buckets, resulting in a Day of Week calculation. (Other examples: Month of year, Hour of day). I.e. when using these parameters: @@ -138,12 +137,12 @@ I.e. when using these parameters: * *buckets*: 28 * *cycleSize*: 7 -Within each output record, the averager will compute the result over the following buckets: current (#0), #7, #14, #21. +Within each output record, the averager will compute the result over the following buckets: current (#0), #7, #14, #21. Whereas without specifying cycleSize it would have computed over all 28 buckets. ## Examples -All examples are based on the Wikipedia dataset provided in the Druid [tutorials](../../tutorials/index.html). +All examples are based on the Wikipedia dataset provided in the Druid [tutorials](../../tutorials/index.md). ### Basic example @@ -200,7 +199,7 @@ Result: }, { ... ... -... +... }, { "version" : "v1", "timestamp" : "2015-09-12T23:00:00.000Z", diff --git a/docs/content/development/extensions-contrib/opentsdb-emitter.md b/docs/development/extensions-contrib/opentsdb-emitter.md similarity index 94% rename from docs/content/development/extensions-contrib/opentsdb-emitter.md rename to docs/development/extensions-contrib/opentsdb-emitter.md index fc187173e872..a3e5623e77d1 100644 --- a/docs/content/development/extensions-contrib/opentsdb-emitter.md +++ b/docs/development/extensions-contrib/opentsdb-emitter.md @@ -1,5 +1,5 @@ --- -layout: doc_page +id: opentsdb-emitter title: "OpenTSDB Emitter" --- @@ -22,13 +22,12 @@ title: "OpenTSDB Emitter" ~ under the License. --> -# OpenTSDB Emitter -To use this Apache Druid (incubating) extension, make sure to [include](../../operations/including-extensions.html) `opentsdb-emitter` extension. +To use this Apache Druid (incubating) extension, make sure to [include](../../development/extensions.md#loading-extensions) `opentsdb-emitter` extension. ## Introduction -This extension emits druid metrics to [OpenTSDB](https://github.com/OpenTSDB/opentsdb) over HTTP (Using `Jersey client`). And this emitter only emits service metric events to OpenTSDB (See [Druid metrics](../../operations/metrics.html) for a list of metrics). +This extension emits druid metrics to [OpenTSDB](https://github.com/OpenTSDB/opentsdb) over HTTP (Using `Jersey client`). And this emitter only emits service metric events to OpenTSDB (See [Druid metrics](../../operations/metrics.md) for a list of metrics). ## Configuration diff --git a/docs/content/development/extensions-contrib/redis-cache.md b/docs/development/extensions-contrib/redis-cache.md similarity index 94% rename from docs/content/development/extensions-contrib/redis-cache.md rename to docs/development/extensions-contrib/redis-cache.md index 4dd8276c4938..0d201be83cd2 100644 --- a/docs/content/development/extensions-contrib/redis-cache.md +++ b/docs/development/extensions-contrib/redis-cache.md @@ -1,5 +1,5 @@ --- -layout: doc_page +id: redis-cache title: "Druid Redis Cache" --- @@ -22,19 +22,18 @@ title: "Druid Redis Cache" ~ under the License. --> -# Druid Redis Cache -To use this Apache Druid (incubating) extension, make sure to [include](../../operations/including-extensions.html) `druid-redis-cache` extension. +To use this Apache Druid (incubating) extension, make sure to [include](../../development/extensions.md#loading-extensions) `druid-redis-cache` extension. A cache implementation for Druid based on [Redis](https://github.com/antirez/redis). -# Configuration Below are the configuration options known to this module. Note that just adding these properties does not enable the cache. You still need to add the `druid..cache.useCache` and `druid..cache.populateCache` properties for the processes you want to enable the cache on as described in the [cache configuration docs](../../configuration/index.html#cache-configuration). A possible configuration would be to keep the properties below in your `common.runtime.properties` file (present on all processes) and then add `druid..cache.useCache` and `druid..cache.populateCache` in the `runtime.properties` file of the process types you want to enable caching on. +## Configuration |`common.runtime.properties`|Description|Default|Required| |--------------------|-----------|-------|--------| @@ -46,11 +45,12 @@ A possible configuration would be to keep the properties below in your `common.r |`druid.cache.maxIdleConnections`|Max idle connections to Redis|8|no| |`druid.cache.minIdleConnections`|Min idle connections to Redis|0|no| -# Enabling +## Enabling To enable the redis cache, include this module on the loadList and set `druid.cache.type` to `redis` in your properties. -# Metrics +## Metrics + In addition to the normal cache metrics, the redis cache implementation also reports the following in both `total` and `delta` |Metric|Description|Normal value| diff --git a/docs/content/development/extensions-contrib/sqlserver.md b/docs/development/extensions-contrib/sqlserver.md similarity index 94% rename from docs/content/development/extensions-contrib/sqlserver.md rename to docs/development/extensions-contrib/sqlserver.md index e14b7e147703..84dc06801f47 100644 --- a/docs/content/development/extensions-contrib/sqlserver.md +++ b/docs/development/extensions-contrib/sqlserver.md @@ -1,5 +1,5 @@ --- -layout: doc_page +id: sqlserver title: "Microsoft SQLServer" --- @@ -22,9 +22,8 @@ title: "Microsoft SQLServer" ~ under the License. --> -# Microsoft SQLServer -To use this Apache Druid (incubating) extension, make sure to [include](../../operations/including-extensions.html) `sqlserver-metadata-storage` as an extension. +To use this Apache Druid (incubating) extension, make sure to [include](../../development/extensions.md#loading-extensions) `sqlserver-metadata-storage` as an extension. ## Setting up SQLServer diff --git a/docs/content/development/extensions-contrib/statsd.md b/docs/development/extensions-contrib/statsd.md similarity index 92% rename from docs/content/development/extensions-contrib/statsd.md rename to docs/development/extensions-contrib/statsd.md index c76c72b6e3e5..2e85406f00e1 100644 --- a/docs/content/development/extensions-contrib/statsd.md +++ b/docs/development/extensions-contrib/statsd.md @@ -1,5 +1,5 @@ --- -layout: doc_page +id: statsd title: "StatsD Emitter" --- @@ -22,9 +22,8 @@ title: "StatsD Emitter" ~ under the License. --> -# StatsD Emitter -To use this Apache Druid (incubating) extension, make sure to [include](../../operations/including-extensions.html) `statsd-emitter` extension. +To use this Apache Druid (incubating) extension, make sure to [include](../../development/extensions.md#loading-extensions) `statsd-emitter` extension. ## Introduction @@ -41,10 +40,10 @@ All the configuration parameters for the StatsD emitter are under `druid.emitter |`druid.emitter.statsd.hostname`|The hostname of the StatsD server.|yes|none| |`druid.emitter.statsd.port`|The port of the StatsD server.|yes|none| |`druid.emitter.statsd.prefix`|Optional metric name prefix.|no|""| -|`druid.emitter.statsd.separator`|Metric name separator|no|.| -|`druid.emitter.statsd.includeHost`|Flag to include the hostname as part of the metric name.|no|false| -|`druid.emitter.statsd.dimensionMapPath`|JSON file defining the StatsD type, and desired dimensions for every Druid metric|no|Default mapping provided. See below.| -|`druid.emitter.statsd.blankHolder`|The blank character replacement as statsD does not support path with blank character|no|"-"| +|`druid.emitter.statsd.separator`|Metric name separator|no|.| +|`druid.emitter.statsd.includeHost`|Flag to include the hostname as part of the metric name.|no|false| +|`druid.emitter.statsd.dimensionMapPath`|JSON file defining the StatsD type, and desired dimensions for every Druid metric|no|Default mapping provided. See below.| +|`druid.emitter.statsd.blankHolder`|The blank character replacement as statsD does not support path with blank character|no|"-"| |`druid.emitter.statsd.dogstatsd`|Flag to enable [DogStatsD](https://docs.datadoghq.com/developers/dogstatsd/) support. Causes dimensions to be included as tags, not as a part of the metric name. `convertRange` fields will be ignored.|no|false| |`druid.emitter.statsd.dogstatsdConstantTags`|If `druid.emitter.statsd.dogstatsd` is true, the tags in the JSON list of strings will be sent with every event.|no|[]| |`druid.emitter.statsd.dogstatsdServiceAsTag`|If `druid.emitter.statsd.dogstatsd` and `druid.emitter.statsd.dogstatsdServiceAsTag` are true, druid service (e.g. `druid/broker`, `druid/coordinator`, etc) is reported as a tag (e.g. `service:druid/broker`) instead of being included in metric name (e.g. `druid.broker.my_metric`) and `druid` is used as metric prefix (e.g. `druid.query.time`).|no|false| @@ -62,8 +61,8 @@ StatsD metric path is organized using the following schema: e.g. `query/time" : { "dimensions" : ["dataSource", "type"], "type" : "timer"}` -For metrics which are emitted from multiple services with different dimensions, the metric name is prefixed with -the service name. +For metrics which are emitted from multiple services with different dimensions, the metric name is prefixed with +the service name. e.g. `"coordinator-segment/count" : { "dimensions" : ["dataSource"], "type" : "gauge" }, "historical-segment/count" : { "dimensions" : ["dataSource", "tier", "priority"], "type" : "gauge" }` diff --git a/docs/content/development/extensions-contrib/tdigestsketch-quantiles.md b/docs/development/extensions-contrib/tdigestsketch-quantiles.md similarity index 96% rename from docs/content/development/extensions-contrib/tdigestsketch-quantiles.md rename to docs/development/extensions-contrib/tdigestsketch-quantiles.md index 9d73d04b8f08..6499cdecca2b 100644 --- a/docs/content/development/extensions-contrib/tdigestsketch-quantiles.md +++ b/docs/development/extensions-contrib/tdigestsketch-quantiles.md @@ -1,5 +1,5 @@ --- -layout: doc_page +id: tdigestsketch-quantiles title: "T-Digest Quantiles Sketch module" --- @@ -22,7 +22,6 @@ title: "T-Digest Quantiles Sketch module" ~ under the License. --> -# T-Digest Quantiles Sketch module This module provides Apache Druid (incubating) approximate sketch aggregators based on T-Digest. T-Digest (https://github.com/tdunning/t-digest) is a popular datastructure for accurate on-line accumulation of @@ -36,7 +35,7 @@ to generate sketches during ingestion time itself and then combining them during The module also provides a postAggregator, quantilesFromTDigestSketch, that can be used to compute approximate quantiles from T-Digest sketches generated by the tDigestSketch aggreator. -To use this aggregator, make sure you [include](../../operations/including-extensions.html) the extension in your config file: +To use this aggregator, make sure you [include](../../development/extensions.md#loading-extensions) the extension in your config file: ``` druid.extensions.loadList=["druid-tdigestsketch"] diff --git a/docs/content/development/extensions-contrib/thrift.md b/docs/development/extensions-contrib/thrift.md similarity index 97% rename from docs/content/development/extensions-contrib/thrift.md rename to docs/development/extensions-contrib/thrift.md index 9b8a54f7832a..746f07b8eba6 100644 --- a/docs/content/development/extensions-contrib/thrift.md +++ b/docs/development/extensions-contrib/thrift.md @@ -1,5 +1,5 @@ --- -layout: doc_page +id: thrift title: "Thrift" --- @@ -22,9 +22,8 @@ title: "Thrift" ~ under the License. --> -# Thrift -To use this Apache Druid (incubating) extension, make sure to [include](../../operations/including-extensions.html) `druid-thrift-extensions`. +To use this Apache Druid (incubating) extension, make sure to [include](../../development/extensions.md#loading-extensions) `druid-thrift-extensions`. This extension enables Druid to ingest thrift compact data online (`ByteBuffer`) and offline (SequenceFile of type `` or LzoThriftBlock File). diff --git a/docs/content/development/extensions-contrib/time-min-max.md b/docs/development/extensions-contrib/time-min-max.md similarity index 95% rename from docs/content/development/extensions-contrib/time-min-max.md rename to docs/development/extensions-contrib/time-min-max.md index ff9e4d00aea8..1e37e9a56e65 100644 --- a/docs/content/development/extensions-contrib/time-min-max.md +++ b/docs/development/extensions-contrib/time-min-max.md @@ -1,5 +1,5 @@ --- -layout: doc_page +id: time-min-max title: "Timestamp Min/Max aggregators" --- @@ -22,12 +22,11 @@ title: "Timestamp Min/Max aggregators" ~ under the License. --> -# Timestamp Min/Max aggregators -To use this Apache Druid (incubating) extension, make sure to [include](../../operations/including-extensions.html) `druid-time-min-max`. +To use this Apache Druid (incubating) extension, make sure to [include](../../development/extensions.md#loading-extensions) `druid-time-min-max`. These aggregators enable more precise calculation of min and max time of given events than `__time` column whose granularity is sparse, the same as query granularity. -To use this feature, a "timeMin" or "timeMax" aggregator must be included at indexing time. +To use this feature, a "timeMin" or "timeMax" aggregator must be included at indexing time. They can apply to any columns that can be converted to timestamp, which include Long, DateTime, Timestamp, and String types. For example, when a data set consists of timestamp, dimension, and metric value like followings. @@ -65,7 +64,7 @@ At ingestion time, timeMin and timeMax aggregator can be included as other aggre `name` is output name of aggregator and can be any string. `fieldName` is typically column specified in timestamp spec but can be any column that can be converted to timestamp. -To query for results, the same aggregators "timeMin" and "timeMax" is used. +To query for results, the same aggregators "timeMin" and "timeMax" is used. ```json { diff --git a/docs/content/development/extensions-core/approximate-histograms.md b/docs/development/extensions-core/approximate-histograms.md similarity index 95% rename from docs/content/development/extensions-core/approximate-histograms.md rename to docs/development/extensions-core/approximate-histograms.md index 2e900d2f408f..6f97d64ef592 100644 --- a/docs/content/development/extensions-core/approximate-histograms.md +++ b/docs/development/extensions-core/approximate-histograms.md @@ -1,5 +1,5 @@ --- -layout: doc_page +id: approximate-histograms title: "Approximate Histogram aggregators" --- @@ -22,17 +22,16 @@ title: "Approximate Histogram aggregators" ~ under the License. --> -# Approximate Histogram aggregators -To use this Apache Druid (incubating) extension, make sure to [include](../../operations/including-extensions.html) `druid-histogram` as an extension. +To use this Apache Druid (incubating) extension, make sure to [include](../../development/extensions.md#loading-extensions) `druid-histogram` as an extension. The `druid-histogram` extension provides an approximate histogram aggregator and a fixed buckets histogram aggregator. + + ## Approximate Histogram aggregator (Deprecated) -
-The Approximate Histogram aggregator is deprecated. Please use DataSketches Quantiles instead which provides a superior distribution-independent algorithm with formal error guarantees. -
+> The Approximate Histogram aggregator is deprecated. Please use [DataSketches Quantiles](../extensions-core/datasketches-quantiles.md) instead which provides a superior distribution-independent algorithm with formal error guarantees. This aggregator is based on [http://jmlr.org/papers/volume11/ben-haim10a/ben-haim10a.pdf](http://jmlr.org/papers/volume11/ben-haim10a/ben-haim10a.pdf) @@ -110,9 +109,9 @@ This histogram supports the min/max/quantiles post-aggregators but does not supp ### When to use -The accuracy/usefulness of the fixed buckets histogram is extremely data-dependent; it is provided to support special use cases where the user has a great deal of prior information about the data being aggregated and knows that a fixed buckets implementation is suitable. +The accuracy/usefulness of the fixed buckets histogram is extremely data-dependent; it is provided to support special use cases where the user has a great deal of prior information about the data being aggregated and knows that a fixed buckets implementation is suitable. -For general histogram and quantile use cases, the [DataSketches Quantiles Sketch](../extensions-core/datasketches-quantiles.html) extension is recommended. +For general histogram and quantile use cases, the [DataSketches Quantiles Sketch](../extensions-core/datasketches-quantiles.md) extension is recommended. ### Properties @@ -168,7 +167,7 @@ The histogram aggregator's output object has the following fields: - `min`: Min value seen by the histogram. This does not include outlier values. - `histogram`: An array of longs with size `numBuckets`, containing the bucket counts -### Ingesting existing histograms +### Ingesting existing histograms It is also possible to ingest existing fixed buckets histograms. The input must be a Base64 string encoding a byte array that contains a serialized histogram object. Both "full" and "sparse" formats can be used. Please see [Serialization formats](#serialization-formats) below for details. @@ -219,9 +218,9 @@ sequence of (int, long) pairs: ### Combining histograms with different bucketing schemes -It is possible to combine two histograms with different bucketing schemes (lowerLimit, upperLimit, numBuckets) together. +It is possible to combine two histograms with different bucketing schemes (lowerLimit, upperLimit, numBuckets) together. -The bucketing scheme of the "left hand" histogram will be preserved (i.e., when running a query, the bucketing schemes specified in the query's histogram aggregators will be preserved). +The bucketing scheme of the "left hand" histogram will be preserved (i.e., when running a query, the bucketing schemes specified in the query's histogram aggregators will be preserved). When merging, we assume that values are evenly distributed within the buckets of the "right hand" histogram. diff --git a/docs/content/development/extensions-core/avro.md b/docs/development/extensions-core/avro.md similarity index 91% rename from docs/content/development/extensions-core/avro.md rename to docs/development/extensions-core/avro.md index 232020b654d1..44e33e54b641 100644 --- a/docs/content/development/extensions-core/avro.md +++ b/docs/development/extensions-core/avro.md @@ -1,5 +1,5 @@ --- -layout: doc_page +id: avro title: "Apache Avro" --- @@ -22,9 +22,7 @@ title: "Apache Avro" ~ under the License. --> -# Apache Avro - -This Apache Druid (incubating) extension enables Druid to ingest and understand the Apache Avro data format. Make sure to [include](../../operations/including-extensions.html) `druid-avro-extensions` as an extension. +This Apache Druid (incubating) extension enables Druid to ingest and understand the Apache Avro data format. Make sure to [include](../../development/extensions.md#loading-extensions) `druid-avro-extensions` as an extension. ### Avro Stream Parser @@ -36,8 +34,8 @@ This is for streaming/realtime ingestion. | avroBytesDecoder | JSON Object | Specifies how to decode bytes to Avro record. | yes | | parseSpec | JSON Object | Specifies the timestamp and dimensions of the data. Should be an "avro" parseSpec. | yes | -An Avro parseSpec can contain a [flattenSpec](../../ingestion/flatten-json.html) using either the "root" or "path" -field types, which can be used to read nested Avro records. The "jq" field type is currently not supported for Avro. +An Avro parseSpec can contain a [`flattenSpec`](../../ingestion/index.md#flattenspec) using either the "root" or "path" +field types, which can be used to read nested Avro records. The "jq" field type is not currently supported for Avro. For example, using Avro stream parser with schema repo Avro bytes decoder: @@ -70,11 +68,9 @@ If `type` is not included, the avroBytesDecoder defaults to `schema_repo`. ##### Inline Schema Based Avro Bytes Decoder -
-The "schema_inline" decoder reads Avro records using a fixed schema and does not support schema migration. If you -may need to migrate schemas in the future, consider one of the other decoders, all of which use a message header that -allows the parser to identify the proper Avro schema for reading records. -
+> The "schema_inline" decoder reads Avro records using a fixed schema and does not support schema migration. If you +> may need to migrate schemas in the future, consider one of the other decoders, all of which use a message header that +> allows the parser to identify the proper Avro schema for reading records. This decoder can be used if all the input events can be read using the same schema. In that case schema can be specified in the input task json itself as described below. @@ -194,14 +190,14 @@ This is for batch ingestion using the `HadoopDruidIndexer`. The `inputFormat` of | type | String | This should say `avro_hadoop`. | no | | parseSpec | JSON Object | Specifies the timestamp and dimensions of the data. Should be an "avro" parseSpec. | yes | -An Avro parseSpec can contain a [flattenSpec](../../ingestion/flatten-json.html) using either the "root" or "path" +An Avro parseSpec can contain a [`flattenSpec`](../../ingestion/index.md#flattenspec) using either the "root" or "path" field types, which can be used to read nested Avro records. The "jq" field type is not currently supported for Avro. For example, using Avro Hadoop parser with custom reader's schema file: ```json { - "type" : "index_hadoop", + "type" : "index_hadoop", "spec" : { "dataSchema" : { "dataSource" : "", diff --git a/docs/content/development/extensions-core/bloom-filter.md b/docs/development/extensions-core/bloom-filter.md similarity index 88% rename from docs/content/development/extensions-core/bloom-filter.md rename to docs/development/extensions-core/bloom-filter.md index f0563a0e60ef..f558eb8fb4a2 100644 --- a/docs/content/development/extensions-core/bloom-filter.md +++ b/docs/development/extensions-core/bloom-filter.md @@ -1,5 +1,5 @@ --- -layout: doc_page +id: bloom-filter title: "Bloom Filter" --- @@ -22,28 +22,27 @@ title: "Bloom Filter" ~ under the License. --> -# Bloom Filter -This Apache Druid (incubating) extension adds the ability to both construct bloom filters from query results, and filter query results by testing -against a bloom filter. Make sure to [include](../../operations/including-extensions.html) `druid-bloom-filter` as an +This Apache Druid (incubating) extension adds the ability to both construct bloom filters from query results, and filter query results by testing +against a bloom filter. Make sure to [include](../../development/extensions.md#loading-extensions) `druid-bloom-filter` as an extension. -A BloomFilter is a probabilistic data structure for performing a set membership check. A bloom filter is a good candidate +A BloomFilter is a probabilistic data structure for performing a set membership check. A bloom filter is a good candidate to use with Druid for cases where an explicit filter is impossible, e.g. filtering a query against a set of millions of values. - + Following are some characteristics of BloomFilters: - BloomFilters are highly space efficient when compared to using a HashSet. -- Because of the probabilistic nature of bloom filters, false positive results are possible (element was not actually +- Because of the probabilistic nature of bloom filters, false positive results are possible (element was not actually inserted into a bloom filter during construction, but `test()` says true) -- False negatives are not possible (if element is present then `test()` will never say false). -- The false positive probability of this implementation is currently fixed at 5%, but increasing the number of entries +- False negatives are not possible (if element is present then `test()` will never say false). +- The false positive probability of this implementation is currently fixed at 5%, but increasing the number of entries that the filter can hold can decrease this false positive rate in exchange for overall size. - Bloom filters are sensitive to number of elements that will be inserted in the bloom filter. During the creation of bloom filter expected number of entries must be specified. If the number of insertions exceed the specified initial number of entries then false positive probability will increase accordingly. -This extension is currently based on `org.apache.hive.common.util.BloomKFilter` from `hive-storage-api`. Internally, +This extension is currently based on `org.apache.hive.common.util.BloomKFilter` from `hive-storage-api`. Internally, this implementation uses Murmur3 as the hash algorithm. To construct a BloomKFilter externally with Java to use as a filter in a Druid query: @@ -83,7 +82,7 @@ This string can then be used in the native or sql Druid query. ### Serialized Format for BloomKFilter Serialized BloomKFilter format: - + - 1 byte for the number of hash functions. - 1 big endian int(That is how OutputStream works) for the number of longs in the bitset - big endian longs in the BloomKFilter bitset @@ -100,7 +99,7 @@ SELECT COUNT(*) FROM druid.foo WHERE bloom_filter_test(, ', '') ## Bloom Filter Query Aggregator -Input for a `bloomKFilter` can also be created from a druid query with the `bloom` aggregator. Note that it is very -important to set a reasonable value for the `maxNumEntries` parameter, which is the maximum number of distinct entries +Input for a `bloomKFilter` can also be created from a druid query with the `bloom` aggregator. Note that it is very +important to set a reasonable value for the `maxNumEntries` parameter, which is the maximum number of distinct entries that the bloom filter can represent without increasing the false postive rate. It may be worth performing a query using -one of the unique count sketches to calculate the value for this parameter in order to build a bloom filter appropriate -for the query. +one of the unique count sketches to calculate the value for this parameter in order to build a bloom filter appropriate +for the query. ### JSON Specification of Bloom Filter Aggregator @@ -130,7 +129,7 @@ for the query. |-------------------------|------------------------------|----------------------------------| |`type` |Aggregator Type. Should always be `bloom`|yes| |`name` |Output field name |yes| -|`field` |[DimensionSpec](../../querying/dimensionspecs.html) to add to `org.apache.hive.common.util.BloomKFilter` | yes | +|`field` |[DimensionSpec](../../querying/dimensionspecs.md) to add to `org.apache.hive.common.util.BloomKFilter` | yes | |`maxNumEntries` |Maximum number of distinct values supported by `org.apache.hive.common.util.BloomKFilter`, default `1500`| no | ### Example @@ -162,11 +161,11 @@ response [{"timestamp":"2015-09-12T00:00:00.000Z","result":{"userBloom":"BAAAJhAAAA..."}}] ``` -These values can then be set in the filter specification described above. +These values can then be set in the filter specification described above. -Ordering results by a bloom filter aggregator, for example in a TopN query, will perform a comparatively expensive -linear scan _of the filter itself_ to count the number of set bits as a means of approximating how many items have been -added to the set. As such, ordering by an alternate aggregation is recommended if possible. +Ordering results by a bloom filter aggregator, for example in a TopN query, will perform a comparatively expensive +linear scan _of the filter itself_ to count the number of set bits as a means of approximating how many items have been +added to the set. As such, ordering by an alternate aggregation is recommended if possible. ### SQL Bloom Filter Aggregator diff --git a/docs/content/development/extensions-core/datasketches-extension.md b/docs/development/extensions-core/datasketches-extension.md similarity index 94% rename from docs/content/development/extensions-core/datasketches-extension.md rename to docs/development/extensions-core/datasketches-extension.md index 49ac2257f02c..29844dd1f2c9 100644 --- a/docs/content/development/extensions-core/datasketches-extension.md +++ b/docs/development/extensions-core/datasketches-extension.md @@ -1,5 +1,5 @@ --- -layout: doc_page +id: datasketches-extension title: "DataSketches extension" --- @@ -22,11 +22,10 @@ title: "DataSketches extension" ~ under the License. --> -# DataSketches extension Apache Druid (incubating) aggregators based on [datasketches](https://datasketches.github.io/) library. Sketches are data structures implementing approximate streaming mergeable algorithms. Sketches can be ingested from the outside of Druid or built from raw data at ingestion time. Sketches can be stored in Druid segments as additive metrics. -To use the datasketches aggregators, make sure you [include](../../operations/including-extensions.html) the extension in your config file: +To use the datasketches aggregators, make sure you [include](../../development/extensions.md#loading-extensions) the extension in your config file: ``` druid.extensions.loadList=["druid-datasketches"] diff --git a/docs/content/development/extensions-core/datasketches-hll.md b/docs/development/extensions-core/datasketches-hll.md similarity index 94% rename from docs/content/development/extensions-core/datasketches-hll.md rename to docs/development/extensions-core/datasketches-hll.md index f9868bd1c4e0..27b8325107de 100644 --- a/docs/content/development/extensions-core/datasketches-hll.md +++ b/docs/development/extensions-core/datasketches-hll.md @@ -1,5 +1,5 @@ --- -layout: doc_page +id: datasketches-hll title: "DataSketches HLL Sketch module" --- @@ -22,12 +22,11 @@ title: "DataSketches HLL Sketch module" ~ under the License. --> -# DataSketches HLL Sketch module This module provides Apache Druid (incubating) aggregators for distinct counting based on HLL sketch from [datasketches](https://datasketches.github.io/) library. At ingestion time, this aggregator creates the HLL sketch objects to be stored in Druid segments. At query time, sketches are read and merged together. In the end, by default, you receive the estimate of the number of distinct values presented to the sketch. Also, you can use post aggregator to produce a union of sketch columns in the same row. You can use the HLL sketch aggregator on columns of any identifiers. It will return estimated cardinality of the column. -To use this aggregator, make sure you [include](../../operations/including-extensions.html) the extension in your config file: +To use this aggregator, make sure you [include](../../development/extensions.md#loading-extensions) the extension in your config file: ``` druid.extensions.loadList=["druid-datasketches"] @@ -101,5 +100,5 @@ Human-readable sketch summary for debugging "name": , "field" : } - + ``` diff --git a/docs/content/development/extensions-core/datasketches-quantiles.md b/docs/development/extensions-core/datasketches-quantiles.md similarity index 96% rename from docs/content/development/extensions-core/datasketches-quantiles.md rename to docs/development/extensions-core/datasketches-quantiles.md index 39b7cb9f54cf..babc6d374cf9 100644 --- a/docs/content/development/extensions-core/datasketches-quantiles.md +++ b/docs/development/extensions-core/datasketches-quantiles.md @@ -1,5 +1,5 @@ --- -layout: doc_page +id: datasketches-quantiles title: "DataSketches Quantiles Sketch module" --- @@ -22,7 +22,6 @@ title: "DataSketches Quantiles Sketch module" ~ under the License. --> -# DataSketches Quantiles Sketch module This module provides Apache Druid (incubating) aggregators based on numeric quantiles DoublesSketch from [datasketches](https://datasketches.github.io/) library. Quantiles sketch is a mergeable streaming algorithm to estimate the distribution of values, and approximately answer queries about the rank of a value, probability mass function of the distribution (PMF) or histogram, cummulative distribution function (CDF), and quantiles (median, min, max, 95th percentile and such). See [Quantiles Sketch Overview](https://datasketches.github.io/docs/Quantiles/QuantilesOverview.html). @@ -32,7 +31,7 @@ There are three major modes of operation: 2. Building sketches from raw data during ingestion 3. Building sketches from raw data at query time -To use this aggregator, make sure you [include](../../operations/including-extensions.html) the extension in your config file: +To use this aggregator, make sure you [include](../../development/extensions.md#loading-extensions) the extension in your config file: ``` druid.extensions.loadList=["druid-datasketches"] diff --git a/docs/content/development/extensions-core/datasketches-theta.md b/docs/development/extensions-core/datasketches-theta.md similarity index 97% rename from docs/content/development/extensions-core/datasketches-theta.md rename to docs/development/extensions-core/datasketches-theta.md index 4112a7134f7b..57eb62f6b8bd 100644 --- a/docs/content/development/extensions-core/datasketches-theta.md +++ b/docs/development/extensions-core/datasketches-theta.md @@ -1,5 +1,5 @@ --- -layout: doc_page +id: datasketches-theta title: "DataSketches Theta Sketch module" --- @@ -22,13 +22,12 @@ title: "DataSketches Theta Sketch module" ~ under the License. --> -# DataSketches Theta Sketch module This module provides Apache Druid (incubating) aggregators based on Theta sketch from [datasketches](https://datasketches.github.io/) library. Note that sketch algorithms are approximate; see details in the "Accuracy" section of the datasketches doc. -At ingestion time, this aggregator creates the Theta sketch objects which get stored in Druid segments. Logically speaking, a Theta sketch object can be thought of as a Set data structure. At query time, sketches are read and aggregated (set unioned) together. In the end, by default, you receive the estimate of the number of unique entries in the sketch object. Also, you can use post aggregators to do union, intersection or difference on sketch columns in the same row. +At ingestion time, this aggregator creates the Theta sketch objects which get stored in Druid segments. Logically speaking, a Theta sketch object can be thought of as a Set data structure. At query time, sketches are read and aggregated (set unioned) together. In the end, by default, you receive the estimate of the number of unique entries in the sketch object. Also, you can use post aggregators to do union, intersection or difference on sketch columns in the same row. Note that you can use `thetaSketch` aggregator on columns which were not ingested using the same. It will return estimated cardinality of the column. It is recommended to use it at ingestion time as well to make querying faster. -To use this aggregator, make sure you [include](../../operations/including-extensions.html) the extension in your config file: +To use this aggregator, make sure you [include](../../development/extensions.md#loading-extensions) the extension in your config file: ``` druid.extensions.loadList=["druid-datasketches"] @@ -40,7 +39,7 @@ druid.extensions.loadList=["druid-datasketches"] { "type" : "thetaSketch", "name" : , - "fieldName" : , + "fieldName" : , "isInputThetaSketch": false, "size": 16384 } diff --git a/docs/content/development/extensions-core/datasketches-tuple.md b/docs/development/extensions-core/datasketches-tuple.md similarity index 97% rename from docs/content/development/extensions-core/datasketches-tuple.md rename to docs/development/extensions-core/datasketches-tuple.md index bd83c9f26433..ee655fc1a1c6 100644 --- a/docs/content/development/extensions-core/datasketches-tuple.md +++ b/docs/development/extensions-core/datasketches-tuple.md @@ -1,5 +1,5 @@ --- -layout: doc_page +id: datasketches-tuple title: "DataSketches Tuple Sketch module" --- @@ -22,11 +22,10 @@ title: "DataSketches Tuple Sketch module" ~ under the License. --> -# DataSketches Tuple Sketch module This module provides Apache Druid (incubating) aggregators based on Tuple sketch from [datasketches](https://datasketches.github.io/) library. ArrayOfDoublesSketch sketches extend the functionality of the count-distinct Theta sketches by adding arrays of double values associated with unique keys. -To use this aggregator, make sure you [include](../../operations/including-extensions.html) the extension in your config file: +To use this aggregator, make sure you [include](../../development/extensions.md#loading-extensions) the extension in your config file: ``` druid.extensions.loadList=["druid-datasketches"] diff --git a/docs/content/development/extensions-core/druid-basic-security.md b/docs/development/extensions-core/druid-basic-security.md similarity index 95% rename from docs/content/development/extensions-core/druid-basic-security.md rename to docs/development/extensions-core/druid-basic-security.md index 4189c3fc754d..0c66e69a6385 100644 --- a/docs/content/development/extensions-core/druid-basic-security.md +++ b/docs/development/extensions-core/druid-basic-security.md @@ -1,5 +1,5 @@ --- -layout: doc_page +id: druid-basic-security title: "Basic Security" --- @@ -22,16 +22,15 @@ title: "Basic Security" ~ under the License. --> -# Druid Basic Security This Apache Druid (incubating) extension adds: - an Authenticator which supports [HTTP Basic authentication](https://en.wikipedia.org/wiki/Basic_access_authentication) - an Authorizer which implements basic role-based access control -Make sure to [include](../../operations/including-extensions.html) `druid-basic-security` as an extension. +Make sure to [include](../../development/extensions.md#loading-extensions) `druid-basic-security` as an extension. -Please see [Authentication and Authorization](../../design/auth.html) for more information on the extension interfaces being implemented. +Please see [Authentication and Authorization](../../design/auth.md) for more information on the extension interfaces being implemented. ## Configuration @@ -74,8 +73,8 @@ The configuration examples in the rest of this document will use "MyBasicAuthent #### Properties |Property|Description|Default|required| |--------|-----------|-------|--------| -|`druid.auth.authenticator.MyBasicAuthenticator.initialAdminPassword`|Initial [Password Provider](../../operations/password-provider.html) for the automatically created default admin user. If no password is specified, the default admin user will not be created. If the default admin user already exists, setting this property will not affect its password.|null|No| -|`druid.auth.authenticator.MyBasicAuthenticator.initialInternalClientPassword`|Initial [Password Provider](../../operations/password-provider.html) for the default internal system user, used for internal process communication. If no password is specified, the default internal system user will not be created. If the default internal system user already exists, setting this property will not affect its password.|null|No| +|`druid.auth.authenticator.MyBasicAuthenticator.initialAdminPassword`|Initial [Password Provider](../../operations/password-provider.md) for the automatically created default admin user. If no password is specified, the default admin user will not be created. If the default admin user already exists, setting this property will not affect its password.|null|No| +|`druid.auth.authenticator.MyBasicAuthenticator.initialInternalClientPassword`|Initial [Password Provider](../../operations/password-provider.md) for the default internal system user, used for internal process communication. If no password is specified, the default internal system user will not be created. If the default internal system user already exists, setting this property will not affect its password.|null|No| |`druid.auth.authenticator.MyBasicAuthenticator.enableCacheNotifications`|If true, the Coordinator will notify Druid processes whenever a configuration change to this Authenticator occurs, allowing them to immediately update their state without waiting for polling.|true|No| |`druid.auth.authenticator.MyBasicAuthenticator.cacheNotificationTimeout`|The timeout in milliseconds for the cache notifications.|5000|No| |`druid.auth.authenticator.MyBasicAuthenticator.credentialIterations`|Number of iterations to use for password hashing.|10000|No| @@ -95,7 +94,7 @@ druid.escalator.authorizerName=MyBasicAuthorizer |Property|Description|Default|required| |--------|-----------|-------|--------| |`druid.escalator.internalClientUsername`|The escalator will use this username for requests made as the internal systerm user.|n/a|Yes| -|`druid.escalator.internalClientPassword`|The escalator will use this [Password Provider](../../operations/password-provider.html) for requests made as the internal system user.|n/a|Yes| +|`druid.escalator.internalClientPassword`|The escalator will use this [Password Provider](../../operations/password-provider.md) for requests made as the internal system user.|n/a|Yes| |`druid.escalator.authorizerName`|Authorizer that requests should be directed to.|n/a|Yes| @@ -223,7 +222,7 @@ Example output: } ``` -The output format of this API when `?full` is specified is deprecated and in later versions will be switched to the output format used when both `?full` and `?simplifyPermissions` flag is set. +The output format of this API when `?full` is specified is deprecated and in later versions will be switched to the output format used when both `?full` and `?simplifyPermissions` flag is set. The `resourceNamePattern` is a compiled version of the resource name regex. It is redundant and complicates the use of this API for clients such as frontends that edit the authorization configuration, as the permission format in this output does not match the format used for adding permissions to a role. @@ -443,7 +442,7 @@ There is only one possible resource name for the "STATE" config resource type, " ### HTTP methods -For information on what HTTP methods are supported on a particular request endpoint, please refer to the [API documentation](../../operations/api-reference.html). +For information on what HTTP methods are supported on a particular request endpoint, please refer to the [API documentation](../../operations/api-reference.md). GET requires READ permission, while POST and DELETE require WRITE permission. diff --git a/docs/content/development/extensions-core/druid-kerberos.md b/docs/development/extensions-core/druid-kerberos.md similarity index 97% rename from docs/content/development/extensions-core/druid-kerberos.md rename to docs/development/extensions-core/druid-kerberos.md index 99d6e45a4751..43105ef082a4 100644 --- a/docs/content/development/extensions-core/druid-kerberos.md +++ b/docs/development/extensions-core/druid-kerberos.md @@ -1,5 +1,5 @@ --- -layout: doc_page +id: druid-kerberos title: "Kerberos" --- @@ -22,11 +22,10 @@ title: "Kerberos" ~ under the License. --> -# Kerberos Apache Druid (incubating) Extension to enable Authentication for Druid Processes using Kerberos. This extension adds an Authenticator which is used to protect HTTP Endpoints using the simple and protected GSSAPI negotiation mechanism [SPNEGO](https://en.wikipedia.org/wiki/SPNEGO). -Make sure to [include](../../operations/including-extensions.html) `druid-kerberos` as an extension. +Make sure to [include](../../development/extensions.md#loading-extensions) `druid-kerberos` as an extension. ## Configuration @@ -62,7 +61,7 @@ The special string _HOST will be replaced automatically with the value of config ### `druid.auth.authenticator.kerberos.excludedPaths` -In older releases, the Kerberos authenticator had an `excludedPaths` property that allowed the user to specify a list of paths where authentication checks should be skipped. This property has been removed from the Kerberos authenticator because the path exclusion functionality is now handled across all authenticators/authorizers by setting `druid.auth.unsecuredPaths`, as described in the [main auth documentation](../../design/auth.html). +In older releases, the Kerberos authenticator had an `excludedPaths` property that allowed the user to specify a list of paths where authentication checks should be skipped. This property has been removed from the Kerberos authenticator because the path exclusion functionality is now handled across all authenticators/authorizers by setting `druid.auth.unsecuredPaths`, as described in the [main auth documentation](../../design/auth.md). ### Auth to Local Syntax `druid.auth.authenticator.kerberos.authToLocal` allows you to set a general rules for mapping principal names to local user names. diff --git a/docs/content/development/extensions-core/druid-lookups.md b/docs/development/extensions-core/druid-lookups.md similarity index 93% rename from docs/content/development/extensions-core/druid-lookups.md rename to docs/development/extensions-core/druid-lookups.md index 9f5798e6a430..23e0dc313c26 100644 --- a/docs/content/development/extensions-core/druid-lookups.md +++ b/docs/development/extensions-core/druid-lookups.md @@ -1,5 +1,5 @@ --- -layout: doc_page +id: druid-lookups title: "Cached Lookup Module" --- @@ -22,17 +22,16 @@ title: "Cached Lookup Module" ~ under the License. --> -# Cached Lookup Module -
Please note that this is an experimental module and the development/testing still at early stage. Feel free to try it and give us your feedback.
- +> Please note that this is an experimental module and the development/testing still at early stage. Feel free to try it and give us your feedback. + ## Description This Apache Druid (incubating) module provides a per-lookup caching mechanism for JDBC data sources. The main goal of this cache is to speed up the access to a high latency lookup sources and to provide a caching isolation for every lookup source. Thus user can define various caching strategies or and implementation per lookup, even if the source is the same. This module can be used side to side with other lookup module like the global cached lookup module. -To use this extension please make sure to [include](../../operations/including-extensions.html) `druid-lookups-cached-single` as an extension. +To use this extension please make sure to [include](../../development/extensions.md#loading-extensions) `druid-lookups-cached-single` as an extension. ## Architecture Generally speaking this module can be divided into two main component, namely, the data fetcher layer and caching layer. @@ -48,9 +47,9 @@ This extension comes with two different caching strategies. First strategy is a #### Poll lookup cache The poll strategy cache strategy will fetch and swap all the pair of key/values periodically from the lookup source. -Hence, user should make sure that the cache can fit all the data. +Hence, user should make sure that the cache can fit all the data. The current implementation provides 2 type of poll cache, the first is onheap (uses immutable map), while the second uses MapBD based offheap map. -User can also implement a different lookup polling cache by implementing `PollingCacheFactory` and `PollingCache` interfaces. +User can also implement a different lookup polling cache by implementing `PollingCacheFactory` and `PollingCache` interfaces. #### Loading lookup Loading cache strategy will load the key/value pair upon request on the key it self, the general algorithm is load key if absent. @@ -58,7 +57,7 @@ Once the key/value pair is loaded eviction will occur according to the cache ev This module comes with two loading lookup implementation, the first is onheap backed by a Guava cache implementation, the second is MapDB offheap implementation. Both implementations offer various eviction strategies. Same for Loading cache, developer can implement a new type of loading cache by implementing `LookupLoadingCache` interface. - + ## Configuration and Operation: @@ -106,11 +105,11 @@ This example demonstrates an off-heap lookup that will be cached once and never |dataFetcher|Json object|Specifies the lookup data fetcher type to use in order to fetch data|yes|null| |loadingCacheSpec|Json Object|Lookup cache spec implementation|yes |null| |reverseLoadingCacheSpec|Json Object| Reverse lookup cache implementation|yes |null| - + ##### Example Loading On-heap Guava -Guava cache configuration spec. +Guava cache configuration spec. |Field|Type|Description|Required|default| |-----|----|-----------|--------|-------| @@ -131,7 +130,7 @@ Guava cache configuration spec. ##### Example Loading Off-heap MapDB -Off heap cache is backed by [MapDB](http://www.mapdb.org/) implementation. MapDB is using direct memory as memory pool, please take that into account when limiting the JVM direct memory setup. +Off heap cache is backed by [MapDB](http://www.mapdb.org/) implementation. MapDB is using direct memory as memory pool, please take that into account when limiting the JVM direct memory setup. |Field|Type|Description|Required|default| |-----|----|-----------|--------|-------| diff --git a/docs/content/development/extensions-core/examples.md b/docs/development/extensions-core/examples.md similarity index 97% rename from docs/content/development/extensions-core/examples.md rename to docs/development/extensions-core/examples.md index bea6cf566fd3..88d1f864a2a4 100644 --- a/docs/content/development/extensions-core/examples.md +++ b/docs/development/extensions-core/examples.md @@ -1,5 +1,5 @@ --- -layout: doc_page +id: examples title: "Extension Examples" --- @@ -22,7 +22,6 @@ title: "Extension Examples" ~ under the License. --> -# Extension Examples ## TwitterSpritzerFirehose diff --git a/docs/content/development/extensions-core/hdfs.md b/docs/development/extensions-core/hdfs.md similarity index 94% rename from docs/content/development/extensions-core/hdfs.md rename to docs/development/extensions-core/hdfs.md index c1296986cf9d..d069e5692744 100644 --- a/docs/content/development/extensions-core/hdfs.md +++ b/docs/development/extensions-core/hdfs.md @@ -1,5 +1,5 @@ --- -layout: doc_page +id: hdfs title: "HDFS" --- @@ -22,11 +22,10 @@ title: "HDFS" ~ under the License. --> -# HDFS -To use this Apache Druid (incubating) extension, make sure to [include](../../operations/including-extensions.html) `druid-hdfs-storage` as an extension. +To use this Apache Druid (incubating) extension, make sure to [include](../../development/extensions.md#loading-extensions) `druid-hdfs-storage` as an extension. -## Deep Storage +## Deep Storage ### Configuration @@ -38,7 +37,7 @@ To use this Apache Druid (incubating) extension, make sure to [include](../../op |`druid.hadoop.security.kerberos.keytab`|`/etc/security/keytabs/druid.headlessUser.keytab`|Path to keytab file|empty| If you are using the Hadoop indexer, set your output directory to be a location on Hadoop and it will work. -If you want to eagerly authenticate against a secured hadoop/hdfs cluster you must set `druid.hadoop.security.kerberos.principal` and `druid.hadoop.security.kerberos.keytab`, this is an alternative to the cron job method that runs `kinit` command periodically. +If you want to eagerly authenticate against a secured hadoop/hdfs cluster you must set `druid.hadoop.security.kerberos.principal` and `druid.hadoop.security.kerberos.keytab`, this is an alternative to the cron job method that runs `kinit` command periodically. ## Google Cloud Storage diff --git a/docs/content/development/extensions-core/kafka-extraction-namespace.md b/docs/development/extensions-core/kafka-extraction-namespace.md similarity index 87% rename from docs/content/development/extensions-core/kafka-extraction-namespace.md rename to docs/development/extensions-core/kafka-extraction-namespace.md index f28c233a669d..92085c3f0c6a 100644 --- a/docs/content/development/extensions-core/kafka-extraction-namespace.md +++ b/docs/development/extensions-core/kafka-extraction-namespace.md @@ -1,5 +1,5 @@ --- -layout: doc_page +id: kafka-extraction-namespace title: "Apache Kafka Lookups" --- @@ -22,13 +22,9 @@ title: "Apache Kafka Lookups" ~ under the License. --> -# Kafka Lookups +> Lookups are an [experimental](../experimental.md) feature. -
-Lookups are an experimental feature. -
- -To use this Apache Druid (incubating) extension, make sure to [include](../../operations/including-extensions.html) `druid-lookups-cached-global` and `druid-kafka-extraction-namespace` as an extension. +To use this Apache Druid (incubating) extension, make sure to [include](../../development/extensions.md#loading-extensions) `druid-lookups-cached-global` and `druid-kafka-extraction-namespace` as an extension. If you need updates to populate as promptly as possible, it is possible to plug into a kafka topic whose key is the old value and message is the desired new value (both in UTF-8) as a LookupExtractorFactory. @@ -45,15 +41,15 @@ If you need updates to populate as promptly as possible, it is possible to plug |`kafkaTopic`|The kafka topic to read the data from|Yes|| |`kafkaProperties`|Kafka consumer properties. At least"zookeeper.connect" must be specified. Only the zookeeper connector is supported|Yes|| |`connectTimeout`|How long to wait for an initial connection|No|`0` (do not wait)| -|`isOneToOne`|The map is a one-to-one (see [Lookup DimensionSpecs](../../querying/dimensionspecs.html))|No|`false`| +|`isOneToOne`|The map is a one-to-one (see [Lookup DimensionSpecs](../../querying/dimensionspecs.md))|No|`false`| The extension `kafka-extraction-namespace` enables reading from a kafka feed which has name/key pairs to allow renaming of dimension values. An example use case would be to rename an ID to a human readable format. The consumer properties `group.id` and `auto.offset.reset` CANNOT be set in `kafkaProperties` as they are set by the extension as `UUID.randomUUID().toString()` and `smallest` respectively. -See [lookups](../../querying/lookups.html) for how to configure and use lookups. +See [lookups](../../querying/lookups.md) for how to configure and use lookups. -# Limitations +## Limitations Currently the Kafka lookup extractor feeds the entire kafka stream into a local cache. If you are using OnHeap caching, this can easily clobber your java heap if the kafka stream spews a lot of unique keys. OffHeap caching should alleviate these concerns, but there is still a limit to the quantity of data that can be stored. diff --git a/docs/content/development/extensions-core/kafka-ingestion.md b/docs/development/extensions-core/kafka-ingestion.md similarity index 96% rename from docs/content/development/extensions-core/kafka-ingestion.md rename to docs/development/extensions-core/kafka-ingestion.md index 091f02f6f5ce..705c01c6c986 100644 --- a/docs/content/development/extensions-core/kafka-ingestion.md +++ b/docs/development/extensions-core/kafka-ingestion.md @@ -1,6 +1,7 @@ --- -layout: doc_page -title: "Apache Kafka Indexing Service" +id: kafka-ingestion +title: "Apache Kafka ingestion" +sidebar_label: "Apache Kafka" --- -# Kafka Indexing Service The Kafka indexing service enables the configuration of *supervisors* on the Overlord, which facilitate ingestion from Kafka by managing the creation and lifetime of Kafka indexing tasks. These indexing tasks read events using Kafka's own @@ -32,13 +32,16 @@ ingestion mechanisms using Tranquility. The supervisor oversees the state of the and ensure that the scalability and replication requirements are maintained. This service is provided in the `druid-kafka-indexing-service` core Apache Druid (incubating) extension (see -[Including Extensions](../../operations/including-extensions.html)). +[Including Extensions](../../development/extensions.md#loading-extensions)). -
-The Kafka indexing service uses the Java consumer that was introduced in Kafka 0.10.x. As there were protocol changes -made in this version, Kafka 0.10.x consumers might not be compatible with older brokers. Ensure that your Kafka brokers are -version 0.10.x or better before using this functionality. Refer Kafka upgrade guide if you are using older version of Kafka brokers. -
+> The Kafka indexing service uses the Java consumer that was introduced in Kafka 0.10.x. As there were protocol changes +> made in this version, Kafka 0.10.x consumers might not be compatible with older brokers. Ensure that your Kafka brokers are +> version 0.10.x or better before using this functionality. Refer [Kafka upgrade guide](https://kafka.apache.org/documentation/#upgrade) if you are using older version of Kafka brokers. + +## Tutorial + +This page contains reference documentation for Apache Kafka-based ingestion. +For a walk-through instead, check out the [Loading from Apache Kafka](../../tutorials/tutorial-kafka.md) tutorial. ## Submitting a Supervisor Spec @@ -122,10 +125,12 @@ A sample supervisor spec is shown below: |Field|Description|Required| |--------|-----------|---------| |`type`|The supervisor type, this should always be `kafka`.|yes| -|`dataSchema`|The schema that will be used by the Kafka indexing task during ingestion, see [Ingestion Spec DataSchema](../../ingestion/ingestion-spec.html#dataschema).|yes| +|`dataSchema`|The schema that will be used by the Kafka indexing task during ingestion, see [`dataSchema`](../../ingestion/index.md#dataschema) for details.|yes| |`ioConfig`|A KafkaSupervisorIOConfig to configure the supervisor and indexing tasks, see below.|yes| |`tuningConfig`|A KafkaSupervisorTuningConfig to configure the supervisor and indexing tasks, see below.|no| + + ### KafkaSupervisorTuningConfig The tuningConfig is optional and default parameters will be used if no tuningConfig is specified. @@ -154,7 +159,7 @@ The tuningConfig is optional and default parameters will be used if no tuningCon | `intermediateHandoffPeriod` | ISO8601 Period | How often the tasks should hand off segments. Handoff will happen either if `maxRowsPerSegment` or `maxTotalRows` is hit or every `intermediateHandoffPeriod`, whichever happens earlier. | no (default == P2147483647D) | | `logParseExceptions` | Boolean | If true, log an error message when a parsing exception occurs, containing information about the row where the error occurred. | no, default == false | | `maxParseExceptions` | Integer | The maximum number of parse exceptions that can occur before the task halts ingestion and fails. Overridden if `reportParseExceptions` is set. | no, unlimited default | -| `maxSavedParseExceptions` | Integer | When a parse exception occurs, Druid can keep track of the most recent parse exceptions. "maxSavedParseExceptions" limits how many exception instances will be saved. These saved exceptions will be made available after the task finishes in the [task completion report](../../ingestion/reports.html). Overridden if `reportParseExceptions` is set. | no, default == 0 | +| `maxSavedParseExceptions` | Integer | When a parse exception occurs, Druid can keep track of the most recent parse exceptions. "maxSavedParseExceptions" limits how many exception instances will be saved. These saved exceptions will be made available after the task finishes in the [task completion report](../../ingestion/tasks.md#reports). Overridden if `reportParseExceptions` is set. | no, default == 0 | #### IndexSpec @@ -191,7 +196,7 @@ For Roaring bitmaps: |Field|Type|Description|Required| |-----|----|-----------|--------| |`topic`|String|The Kafka topic to read from. This must be a specific topic as topic patterns are not supported.|yes| -|`consumerProperties`|Map|A map of properties to be passed to the Kafka consumer. This must contain a property `bootstrap.servers` with a list of Kafka brokers in the form: `:,:,...`. For SSL connections, the `keystore`, `truststore` and `key` passwords can be provided as a [Password Provider](../../operations/password-provider.html) or String password.|yes| +|`consumerProperties`|Map|A map of properties to be passed to the Kafka consumer. This must contain a property `bootstrap.servers` with a list of Kafka brokers in the form: `:,:,...`. For SSL connections, the `keystore`, `truststore` and `key` passwords can be provided as a [Password Provider](../../operations/password-provider.md) or String password.|yes| |`pollTimeout`|Long|The length of time to wait for the kafka consumer to poll records, in milliseconds|no (default == 100)| |`replicas`|Integer|The number of replica sets, where 1 means a single set of tasks (no replication). Replica tasks will always be assigned to different workers to provide resiliency against process failure.|no (default == 1)| |`taskCount`|Integer|The maximum number of *reading* tasks in a *replica set*. This means that the maximum number of reading tasks will be `taskCount * replicas` and the total number of tasks (*reading* + *publishing*) will be higher than this. See 'Capacity Planning' below for more details. The number of reading tasks will be less than `taskCount` if `taskCount > {numKafkaPartitions}`.|no (default == 1)| @@ -262,7 +267,7 @@ state until it is stopped, suspended, or hits a failure threshold and transition `GET /druid/indexer/v1/supervisor//stats` returns a snapshot of the current ingestion row counters for each task being managed by the supervisor, along with moving averages for the row counters. -See [Task Reports: Row Stats](../../ingestion/reports.html#row-stats) for more information. +See [Task Reports: Row Stats](../../ingestion/tasks.md#row-stats) for more information. ### Supervisor Health Check @@ -391,6 +396,6 @@ Kafka Indexing Service may still produce some small segments. Lets say the task is set to an HOUR and Supervisor was started at 9:10 then after 4 hours at 13:10, new set of tasks will be started and events for the interval 13:00 - 14:00 may be split across previous and new set of tasks. If you see it becoming a problem then one can schedule re-indexing tasks be run to merge segments together into new segments of an ideal size (in the range of ~500-700 MB per segment). -Details on how to optimize the segment size can be found on [Segment size optimization](../../operations/segment-optimization.html). +Details on how to optimize the segment size can be found on [Segment size optimization](../../operations/segment-optimization.md). There is also ongoing work to support automatic segment compaction of sharded segments as well as compaction not requiring Hadoop (see [here](https://github.com/apache/incubator-druid/pull/5102)). diff --git a/docs/content/development/extensions-core/kinesis-ingestion.md b/docs/development/extensions-core/kinesis-ingestion.md similarity index 98% rename from docs/content/development/extensions-core/kinesis-ingestion.md rename to docs/development/extensions-core/kinesis-ingestion.md index c0a25f9c386b..5292b3529f1c 100644 --- a/docs/content/development/extensions-core/kinesis-ingestion.md +++ b/docs/development/extensions-core/kinesis-ingestion.md @@ -1,6 +1,7 @@ --- -layout: doc_page -title: "Amazon Kinesis Indexing Service" +id: kinesis-ingestion +title: "Amazon Kinesis ingestion" +sidebar_label: "Amazon Kinesis" --- -# Kinesis Indexing Service -Similar to the [Kafka indexing service](./kafka-ingestion.html), the Kinesis indexing service enables the configuration of *supervisors* on the Overlord, which facilitate ingestion from +Similar to the [Kafka indexing service](./kafka-ingestion.md), the Kinesis indexing service enables the configuration of *supervisors* on the Overlord, which facilitate ingestion from Kinesis by managing the creation and lifetime of Kinesis indexing tasks. These indexing tasks read events using Kinesis's own Shards and Sequence Number mechanism and are therefore able to provide guarantees of exactly-once ingestion. They are also able to read non-recent events from Kinesis and are not subject to the window period considerations imposed on other @@ -32,9 +32,9 @@ ingestion mechanisms using Tranquility. The supervisor oversees the state of the and ensure that the scalability and replication requirements are maintained. The Kinesis indexing service is provided as the `druid-kinesis-indexing-service` core Apache Druid (incubating) extension (see -[Including Extensions](../../operations/including-extensions.html)). Please note that this is +[Including Extensions](../../development/extensions.md#loading-extensions)). Please note that this is currently designated as an *experimental feature* and is subject to the usual -[experimental caveats](../experimental.html). +[experimental caveats](../experimental.md). ## Submitting a Supervisor Spec @@ -118,10 +118,12 @@ A sample supervisor spec is shown below: |Field|Description|Required| |--------|-----------|---------| |`type`|The supervisor type, this should always be `kinesis`.|yes| -|`dataSchema`|The schema that will be used by the Kinesis indexing task during ingestion, see [Ingestion Spec DataSchema](../../ingestion/ingestion-spec.html#dataschema).|yes| +|`dataSchema`|The schema that will be used by the Kinesis indexing task during ingestion, see [`dataSchema`](../../ingestion/index.md#dataschema).|yes| |`ioConfig`|A KinesisSupervisorIOConfig to configure the supervisor and indexing tasks, see below.|yes| |`tuningConfig`|A KinesisSupervisorTuningConfig to configure the supervisor and indexing tasks, see below.|no| + + ### KinesisSupervisorTuningConfig The tuningConfig is optional and default parameters will be used if no tuningConfig is specified. @@ -155,7 +157,7 @@ The tuningConfig is optional and default parameters will be used if no tuningCon | `intermediateHandoffPeriod` | ISO8601 Period | How often the tasks should hand off segments. Handoff will happen either if `maxRowsPerSegment` or `maxTotalRows` is hit or every `intermediateHandoffPeriod`, whichever happens earlier. | no (default == P2147483647D) | | `logParseExceptions` | Boolean | If true, log an error message when a parsing exception occurs, containing information about the row where the error occurred. | no, default == false | | `maxParseExceptions` | Integer | The maximum number of parse exceptions that can occur before the task halts ingestion and fails. Overridden if `reportParseExceptions` is set. | no, unlimited default | -| `maxSavedParseExceptions` | Integer | When a parse exception occurs, Druid can keep track of the most recent parse exceptions. "maxSavedParseExceptions" limits how many exception instances will be saved. These saved exceptions will be made available after the task finishes in the [task completion report](../../ingestion/reports.html). Overridden if `reportParseExceptions` is set. | no, default == 0 | +| `maxSavedParseExceptions` | Integer | When a parse exception occurs, Druid can keep track of the most recent parse exceptions. "maxSavedParseExceptions" limits how many exception instances will be saved. These saved exceptions will be made available after the task finishes in the [task completion report](../../ingestion/tasks.md#reports). Overridden if `reportParseExceptions` is set. | no, default == 0 | | `maxRecordsPerPoll` | Integer | The maximum number of records/events to be fetched from buffer per poll. The actual maximum will be `Max(maxRecordsPerPoll, Max(bufferSize, 1)) | no, default == 100 | #### IndexSpec @@ -225,7 +227,7 @@ profile provider (in this order). ### Getting Supervisor Status Report -`GET /druid/indexer/v1/supervisor//status` returns a snapshot report of the current state of the tasks +`GET /druid/indexer/v1/supervisor//status` returns a snapshot report of the current state of the tasks managed by the given supervisor. This includes the latest sequence numbers as reported by Kinesis. Unlike the Kafka Indexing Service, stats about lag are not yet supported. @@ -393,7 +395,7 @@ Kinesis Indexing Service may still produce some small segments. Lets say the tas is set to an HOUR and Supervisor was started at 9:10 then after 4 hours at 13:10, new set of tasks will be started and events for the interval 13:00 - 14:00 may be split across previous and new set of tasks. If you see it becoming a problem then one can schedule re-indexing tasks be run to merge segments together into new segments of an ideal size (in the range of ~500-700 MB per segment). -Details on how to optimize the segment size can be found on [Segment size optimization](../../operations/segment-optimization.html). +Details on how to optimize the segment size can be found on [Segment size optimization](../../operations/segment-optimization.md). There is also ongoing work to support automatic segment compaction of sharded segments as well as compaction not requiring Hadoop (see [here](https://github.com/apache/incubator-druid/pull/5102)). diff --git a/docs/content/development/extensions-core/lookups-cached-global.md b/docs/development/extensions-core/lookups-cached-global.md similarity index 94% rename from docs/content/development/extensions-core/lookups-cached-global.md rename to docs/development/extensions-core/lookups-cached-global.md index 55a2c38bbbd2..4db02af8370e 100644 --- a/docs/content/development/extensions-core/lookups-cached-global.md +++ b/docs/development/extensions-core/lookups-cached-global.md @@ -1,5 +1,5 @@ --- -layout: doc_page +id: lookups-cached-global title: "Globally Cached Lookups" --- @@ -22,19 +22,14 @@ title: "Globally Cached Lookups" ~ under the License. --> -# Globally Cached Lookups -
-Lookups are an experimental feature. -
+> Lookups are an [experimental](../experimental.md) feature. -To use this Apache Druid (incubating) extension, make sure to [include](../../operations/including-extensions.html) `druid-lookups-cached-global` as an extension. +To use this Apache Druid (incubating) extension, make sure to [include](../../development/extensions.md#loading-extensions) `druid-lookups-cached-global` as an extension. ## Configuration -
-Static configuration is no longer supported. Lookups can be configured through -dynamic configuration. -
+> Static configuration is no longer supported. Lookups can be configured through +> [dynamic configuration](../../querying/lookups.md#configuration). Globally cached lookups are appropriate for lookups which are not possible to pass at query time due to their size, or are not desired to be passed at query time because the data is to reside in and be handled by the Druid servers, @@ -42,7 +37,7 @@ and are small enough to reasonably populate in-memory. This usually means tens t Globally cached lookups all draw from the same cache pool, allowing each process to have a fixed cache pool that can be used by cached lookups. -Globally cached lookups can be specified as part of the [cluster wide config for lookups](../../querying/lookups.html) as a type of `cachedNamespace` +Globally cached lookups can be specified as part of the [cluster wide config for lookups](../../querying/lookups.md) as a type of `cachedNamespace` ```json { @@ -62,7 +57,7 @@ Globally cached lookups can be specified as part of the [cluster wide config for "firstCacheTimeout": 0 } ``` - + ```json { "type": "cachedNamespace", @@ -160,7 +155,7 @@ Where the Coordinator endpoint `/druid/coordinator/v1/lookups/realtime_customer2 ## Cache Settings -Lookups are cached locally on Historical processes. The following are settings used by the processes which service queries when +Lookups are cached locally on Historical processes. The following are settings used by the processes which service queries when setting namespaces (Broker, Peon, Historical) |Property|Description|Default| @@ -169,7 +164,7 @@ setting namespaces (Broker, Peon, Historical) |`druid.lookup.namespace.numExtractionThreads`|The number of threads in the thread pool dedicated for lookup extraction and updates. This number may need to be scaled up, if you have a lot of lookups and they take long time to extract, to avoid timeouts.|2| |`druid.lookup.namespace.numBufferedEntries`|If using offHeap caching, the number of records to be stored on an on-heap buffer.|100,000| -The cache is populated in different ways depending on the settings below. In general, most namespaces employ +The cache is populated in different ways depending on the settings below. In general, most namespaces employ a `pollPeriod` at the end of which time they poll the remote resource of interest for updates. `onHeap` uses `ConcurrentMap`s in the java heap, and thus affects garbage collection and heap sizing. @@ -177,12 +172,11 @@ a `pollPeriod` at the end of which time they poll the remote resource of interes So if total number of entries in the `cachedNamespace` is in excess of the buffer's configured capacity, the extra will be kept in memory as page cache, and paged in and out by general OS tunings. It's highly recommended that `druid.lookup.namespace.numBufferedEntries` is set when using `offHeap`, the value should be chosen from the range between 10% and 50% of the number of entries in the lookup. +## Supported lookups -# Supported Lookups - -For additional lookups, please see our [extensions list](../extensions.html). +For additional lookups, please see our [extensions list](../extensions.md). -## URI lookup +### URI lookup The remapping values for each globally cached lookup can be specified by a json object as per the following examples: @@ -227,7 +221,7 @@ The `namespaceParseSpec` can be one of a number of values. Each of the examples Only ONE file which matches the search will be used. For most implementations, the discriminator for choosing the URIs is by whichever one reports the most recent timestamp for its modification time. -### csv lookupParseSpec +#### csv lookupParseSpec |Parameter|Description|Required|Default| |---------|-----------|--------|-------| |`columns`|The list of columns in the csv file|no if `hasHeaderRow` is set|`null`| @@ -259,7 +253,7 @@ truck,something3,buck } ``` -### tsv lookupParseSpec +#### tsv lookupParseSpec |Parameter|Description|Required|Default| |---------|-----------|--------|-------| |`columns`|The list of columns in the tsv file|yes|`null`| @@ -294,7 +288,7 @@ truck|something,3|buck } ``` -### customJson lookupParseSpec +#### customJson lookupParseSpec |Parameter|Description|Required|Default| |---------|-----------|--------|-------| @@ -322,11 +316,11 @@ truck|something,3|buck With customJson parsing, if the value field for a particular row is missing or null then that line will be skipped, and will not be included in the lookup. -### simpleJson lookupParseSpec +#### simpleJson lookupParseSpec The `simpleJson` lookupParseSpec does not take any parameters. It is simply a line delimited json file where the field is the key, and the field's value is the value. *example input* - + ```json {"foo": "bar"} {"baz": "bat"} @@ -341,7 +335,7 @@ The `simpleJson` lookupParseSpec does not take any parameters. It is simply a li } ``` -## JDBC lookup +### JDBC lookup The JDBC lookups will poll a database to populate its local cache. If the `tsColumn` is set it must be able to accept comparisons in the format `'2015-01-01 00:00:00'`. For example, the following must be valid sql for the table `SELECT * FROM some_lookup_table WHERE timestamp_column > '2015-01-01 00:00:00'`. If `tsColumn` is set, the caching service will attempt to only poll values that were written *after* the last sync. If `tsColumn` is not set, the entire table is pulled every time. @@ -374,6 +368,6 @@ The JDBC lookups will poll a database to populate its local cache. If the `tsCol } ``` -# Introspection +## Introspection Globally cached lookups have introspection points at `/keys` and `/values` which return a complete set of the keys and values (respectively) in the lookup. Introspection to `/` returns the entire map. Introspection to `/version` returns the version indicator for the lookup. diff --git a/docs/content/development/extensions-core/mysql.md b/docs/development/extensions-core/mysql.md similarity index 89% rename from docs/content/development/extensions-core/mysql.md rename to docs/development/extensions-core/mysql.md index 1a88b323f675..eea72eb91ffa 100644 --- a/docs/content/development/extensions-core/mysql.md +++ b/docs/development/extensions-core/mysql.md @@ -1,5 +1,5 @@ --- -layout: doc_page +id: mysql title: "MySQL Metadata Store" --- @@ -22,14 +22,11 @@ title: "MySQL Metadata Store" ~ under the License. --> -# MySQL Metadata Store -To use this Apache Druid (incubating) extension, make sure to [include](../../operations/including-extensions.html) `mysql-metadata-storage` as an extension. +To use this Apache Druid (incubating) extension, make sure to [include](../../development/extensions.md#loading-extensions) `mysql-metadata-storage` as an extension. -
-The MySQL extension requires the MySQL Connector/J library which is not included in the Druid distribution. -Refer to the following section for instructions on how to install this library. -
+> The MySQL extension requires the MySQL Connector/J library which is not included in the Druid distribution. +> Refer to the following section for instructions on how to install this library. ## Installing the MySQL connector library @@ -100,18 +97,18 @@ Copy or symlink this file to `extensions/mysql-metadata-storage` under the distr |`druid.metadata.mysql.ssl.useSSL`|Enable SSL|`false`|no| |`druid.metadata.mysql.ssl.clientCertificateKeyStoreUrl`|The file path URL to the client certificate key store.|none|no| |`druid.metadata.mysql.ssl.clientCertificateKeyStoreType`|The type of the key store where the client certificate is stored.|none|no| -|`druid.metadata.mysql.ssl.clientCertificateKeyStorePassword`|The [Password Provider](../../operations/password-provider.html) or String password for the client key store.|none|no| +|`druid.metadata.mysql.ssl.clientCertificateKeyStorePassword`|The [Password Provider](../../operations/password-provider.md) or String password for the client key store.|none|no| |`druid.metadata.mysql.ssl.verifyServerCertificate`|Enables server certificate verification.|false|no| |`druid.metadata.mysql.ssl.trustCertificateKeyStoreUrl`|The file path to the trusted root certificate key store.|Default trust store provided by MySQL|yes if `verifyServerCertificate` is set to true and a custom trust store is used| |`druid.metadata.mysql.ssl.trustCertificateKeyStoreType`|The type of the key store where trusted root certificates are stored.|JKS|yes if `verifyServerCertificate` is set to true and keystore type is not JKS| -|`druid.metadata.mysql.ssl.trustCertificateKeyStorePassword`|The [Password Provider](../../operations/password-provider.html) or String password for the trust store.|none|yes if `verifyServerCertificate` is set to true and password is not null| +|`druid.metadata.mysql.ssl.trustCertificateKeyStorePassword`|The [Password Provider](../../operations/password-provider.md) or String password for the trust store.|none|yes if `verifyServerCertificate` is set to true and password is not null| |`druid.metadata.mysql.ssl.enabledSSLCipherSuites`|Overrides the existing cipher suites with these cipher suites.|none|no| |`druid.metadata.mysql.ssl.enabledTLSProtocols`|Overrides the TLS protocols with these protocols.|none|no| ### MySQL Firehose -The MySQL extension provides an implementation of an [SqlFirehose](../../ingestion/firehose.html#SqlFirehose) which can be used to ingest data into Druid from a MySQL database. +The MySQL extension provides an implementation of an [SqlFirehose](../../ingestion/native-batch.md#firehoses) which can be used to ingest data into Druid from a MySQL database. ```json { diff --git a/docs/content/development/extensions-core/orc.md b/docs/development/extensions-core/orc.md similarity index 89% rename from docs/content/development/extensions-core/orc.md rename to docs/development/extensions-core/orc.md index 791531d9378a..3bc1483c4e21 100644 --- a/docs/content/development/extensions-core/orc.md +++ b/docs/development/extensions-core/orc.md @@ -1,5 +1,5 @@ --- -layout: doc_page +id: orc title: "ORC Extension" --- @@ -21,13 +21,12 @@ title: "ORC Extension" ~ specific language governing permissions and limitations ~ under the License. --> - -# ORC Extension -This Apache Druid (incubating) module extends [Druid Hadoop based indexing](../../ingestion/hadoop.html) to ingest data directly from offline -Apache ORC files. -To use this extension, make sure to [include](../../operations/including-extensions.html) `druid-orc-extensions`. +This Apache Druid (incubating) module extends [Druid Hadoop based indexing](../../ingestion/hadoop.md) to ingest data directly from offline +Apache ORC files. + +To use this extension, make sure to [include](../../development/extensions.md#loading-extensions) `druid-orc-extensions`. ## ORC Hadoop Parser @@ -39,25 +38,25 @@ The `inputFormat` of `inputSpec` in `ioConfig` must be set to `"org.apache.orc.m |type | String | This should say `orc` | yes| |parseSpec | JSON Object | Specifies the timestamp and dimensions of the data (`timeAndDims` and `orc` format) and a `flattenSpec` (`orc` format) | yes| -The parser supports two `parseSpec` formats: `orc` and `timeAndDims`. +The parser supports two `parseSpec` formats: `orc` and `timeAndDims`. -`orc` supports auto field discovery and flattening, if specified with a [flattenSpec](../../ingestion/flatten-json.html). -If no `flattenSpec` is specified, `useFieldDiscovery` will be enabled by default. Specifying a `dimensionSpec` is +`orc` supports auto field discovery and flattening, if specified with a [`flattenSpec`](../../ingestion/index.md#flattenspec). +If no `flattenSpec` is specified, `useFieldDiscovery` will be enabled by default. Specifying a `dimensionSpec` is optional if `useFieldDiscovery` is enabled: if a `dimensionSpec` is supplied, the list of `dimensions` it defines will be the set of ingested dimensions, if missing the discovered fields will make up the list. - + `timeAndDims` parse spec must specify which fields will be extracted as dimensions through the `dimensionSpec`. [All column types](https://orc.apache.org/docs/types.html) are supported, with the exception of `union` types. Columns of - `list` type, if filled with primitives, may be used as a multi-value dimension, or specific elements can be extracted with + `list` type, if filled with primitives, may be used as a multi-value dimension, or specific elements can be extracted with `flattenSpec` expressions. Likewise, primitive fields may be extracted from `map` and `struct` types in the same manner. -Auto field discovery will automatically create a string dimension for every (non-timestamp) primitive or `list` of +Auto field discovery will automatically create a string dimension for every (non-timestamp) primitive or `list` of primitives, as well as any flatten expressions defined in the `flattenSpec`. -### Hadoop Job Properties +### Hadoop job properties Like most Hadoop jobs, the best outcomes will add `"mapreduce.job.user.classpath.first": "true"` or `"mapreduce.job.classloader": "true"` to the `jobProperties` section of `tuningConfig`. Note that it is likely if using -`"mapreduce.job.classloader": "true"` that you will need to set `mapreduce.job.classloader.system.classes` to include +`"mapreduce.job.classloader": "true"` that you will need to set `mapreduce.job.classloader.system.classes` to include `-org.apache.hadoop.hive.` to instruct Hadoop to load `org.apache.hadoop.hive` classes from the application jars instead of system jars, e.g. @@ -264,18 +263,18 @@ setting `"mapreduce.job.user.classpath.first": "true"`, then this will not be an ``` ### Migration from 'contrib' extension -This extension, first available in version 0.15.0, replaces the previous 'contrib' extension which was available until -0.14.0-incubating. While this extension can index any data the 'contrib' extension could, the json spec for the -ingestion task is *incompatible*, and will need modified to work with the newer 'core' extension. +This extension, first available in version 0.15.0, replaces the previous 'contrib' extension which was available until +0.14.0-incubating. While this extension can index any data the 'contrib' extension could, the json spec for the +ingestion task is *incompatible*, and will need modified to work with the newer 'core' extension. To migrate to 0.15.0+: -* In `inputSpec` of `ioConfig`, `inputFormat` must be changed from `"org.apache.hadoop.hive.ql.io.orc.OrcNewInputFormat"` to +* In `inputSpec` of `ioConfig`, `inputFormat` must be changed from `"org.apache.hadoop.hive.ql.io.orc.OrcNewInputFormat"` to `"org.apache.orc.mapreduce.OrcInputFormat"` * The 'contrib' extension supported a `typeString` property, which provided the schema of the -ORC file, of which was essentially required to have the types correct, but notably _not_ the column names, which -facilitated column renaming. In the 'core' extension, column renaming can be achieved with -[`flattenSpec` expressions](../../ingestion/flatten-json.html). For example, `"typeString":"struct"` +ORC file, of which was essentially required to have the types correct, but notably _not_ the column names, which +facilitated column renaming. In the 'core' extension, column renaming can be achieved with +[`flattenSpec`](../../ingestion/index.md#flattenspec). For example, `"typeString":"struct"` with the actual schema `struct<_col0:string,_col1:string>`, to preserve Druid schema would need replaced with: ```json @@ -298,8 +297,8 @@ with the actual schema `struct<_col0:string,_col1:string>`, to preserve Druid sc * The 'contrib' extension supported a `mapFieldNameFormat` property, which provided a way to specify a dimension to flatten `OrcMap` columns with primitive types. This functionality has also been replaced with - [`flattenSpec` expressions](../../ingestion/flatten-json.html). For example: `"mapFieldNameFormat": "_"` - for a dimension `nestedData_dim1`, to preserve Druid schema could be replaced with + [`flattenSpec`](../../ingestion/index.md#flattenspec). For example: `"mapFieldNameFormat": "_"` + for a dimension `nestedData_dim1`, to preserve Druid schema could be replaced with ```json "flattenSpec": { @@ -312,4 +311,4 @@ with the actual schema `struct<_col0:string,_col1:string>`, to preserve Druid sc ] ... } -``` \ No newline at end of file +``` diff --git a/docs/content/development/extensions-core/parquet.md b/docs/development/extensions-core/parquet.md similarity index 89% rename from docs/content/development/extensions-core/parquet.md rename to docs/development/extensions-core/parquet.md index 207fae7f2996..f1f5bac50fb7 100644 --- a/docs/content/development/extensions-core/parquet.md +++ b/docs/development/extensions-core/parquet.md @@ -1,5 +1,5 @@ --- -layout: doc_page +id: parquet title: "Apache Parquet Extension" --- @@ -21,41 +21,40 @@ title: "Apache Parquet Extension" ~ specific language governing permissions and limitations ~ under the License. --> - -# Apache Parquet Extension -This Apache Druid (incubating) module extends [Druid Hadoop based indexing](../../ingestion/hadoop.html) to ingest data directly from offline -Apache Parquet files. + +This Apache Druid (incubating) module extends [Druid Hadoop based indexing](../../ingestion/hadoop.md) to ingest data directly from offline +Apache Parquet files. Note: `druid-parquet-extensions` depends on the `druid-avro-extensions` module, so be sure to - [include both](../../operations/including-extensions.html). + [include both](../../development/extensions.md#loading-extensions). ## Parquet Hadoop Parser This extension provides two ways to parse Parquet files: -* `parquet` - using a simple conversion contained within this extension +* `parquet` - using a simple conversion contained within this extension * `parquet-avro` - conversion to avro records with the `parquet-avro` library and using the `druid-avro-extensions` module to parse the avro data -Selection of conversion method is controlled by parser type, and the correct hadoop input format must also be set in +Selection of conversion method is controlled by parser type, and the correct hadoop input format must also be set in the `ioConfig`: * `org.apache.druid.data.input.parquet.DruidParquetInputFormat` for `parquet` * `org.apache.druid.data.input.parquet.DruidParquetAvroInputFormat` for `parquet-avro` - -Both parse options support auto field discovery and flattening if provided with a -[flattenSpec](../../ingestion/flatten-json.html) with `parquet` or `avro` as the format. Parquet nested list and map -[logical types](https://github.com/apache/parquet-format/blob/master/LogicalTypes.md) _should_ operate correctly with -json path expressions for all supported types. `parquet-avro` sets a hadoop job property -`parquet.avro.add-list-element-records` to `false` (which normally defaults to `true`), in order to 'unwrap' primitive + +Both parse options support auto field discovery and flattening if provided with a +[`flattenSpec`](../../ingestion/index.md#flattenspec) with `parquet` or `avro` as the format. Parquet nested list and map +[logical types](https://github.com/apache/parquet-format/blob/master/LogicalTypes.md) _should_ operate correctly with +json path expressions for all supported types. `parquet-avro` sets a hadoop job property +`parquet.avro.add-list-element-records` to `false` (which normally defaults to `true`), in order to 'unwrap' primitive list elements into multi-value dimensions. -The `parquet` parser supports `int96` Parquet values, while `parquet-avro` does not. There may also be some subtle +The `parquet` parser supports `int96` Parquet values, while `parquet-avro` does not. There may also be some subtle differences in the behavior of json path expression evaluation of `flattenSpec`. -We suggest using `parquet` over `parquet-avro` to allow ingesting data beyond the schema constraints of Avro conversion. +We suggest using `parquet` over `parquet-avro` to allow ingesting data beyond the schema constraints of Avro conversion. However, `parquet-avro` was the original basis for this extension, and as such it is a bit more mature. @@ -220,4 +219,4 @@ When the time dimension is a [DateType column](https://github.com/apache/parquet } ``` -For additional details see [hadoop ingestion](../../ingestion/hadoop.html) and [general ingestion spec](../../ingestion/ingestion-spec.html) documentation. \ No newline at end of file +For additional details see [Hadoop ingestion](../../ingestion/hadoop.md) and [general ingestion spec](../../ingestion/index.md) documentation. diff --git a/docs/content/development/extensions-core/postgresql.md b/docs/development/extensions-core/postgresql.md similarity index 94% rename from docs/content/development/extensions-core/postgresql.md rename to docs/development/extensions-core/postgresql.md index 8a70631c854a..ff4999a66029 100644 --- a/docs/content/development/extensions-core/postgresql.md +++ b/docs/development/extensions-core/postgresql.md @@ -1,5 +1,5 @@ --- -layout: doc_page +id: postgresql title: "PostgreSQL Metadata Store" --- @@ -22,9 +22,8 @@ title: "PostgreSQL Metadata Store" ~ under the License. --> -# PostgreSQL Metadata Store -To use this Apache Druid (incubating) extension, make sure to [include](../../operations/including-extensions.html) `postgresql-metadata-storage` as an extension. +To use this Apache Druid (incubating) extension, make sure to [include](../../development/extensions.md#loading-extensions) `postgresql-metadata-storage` as an extension. ## Setting up PostgreSQL @@ -75,7 +74,7 @@ In most cases, the configuration options map directly to the [postgres jdbc conn |Property|Description|Default|Required| |--------|-----------|-------|--------| | `druid.metadata.postgres.ssl.useSSL` | Enables SSL | `false` | no | -| `druid.metadata.postgres.ssl.sslPassword` | The [Password Provider](../../operations/password-provider.html) or String password for the client's key. | none | no | +| `druid.metadata.postgres.ssl.sslPassword` | The [Password Provider](../../operations/password-provider.md) or String password for the client's key. | none | no | | `druid.metadata.postgres.ssl.sslFactory` | The class name to use as the `SSLSocketFactory` | none | no | | `druid.metadata.postgres.ssl.sslFactoryArg` | An optional argument passed to the sslFactory's constructor | none | no | | `druid.metadata.postgres.ssl.sslMode` | The sslMode. Possible values are "disable", "require", "verify-ca", "verify-full", "allow" and "prefer"| none | no | @@ -88,7 +87,7 @@ In most cases, the configuration options map directly to the [postgres jdbc conn ### PostgreSQL Firehose -The PostgreSQL extension provides an implementation of an [SqlFirehose](../../ingestion/firehose.html#SqlFirehose) which can be used to ingest data into Druid from a PostgreSQL database. +The PostgreSQL extension provides an implementation of an [SqlFirehose](../../ingestion/native-batch.md#firehoses) which can be used to ingest data into Druid from a PostgreSQL database. ```json { diff --git a/docs/content/development/extensions-core/protobuf.md b/docs/development/extensions-core/protobuf.md similarity index 92% rename from docs/content/development/extensions-core/protobuf.md rename to docs/development/extensions-core/protobuf.md index 655d0c7f2acc..7bba10851aac 100644 --- a/docs/content/development/extensions-core/protobuf.md +++ b/docs/development/extensions-core/protobuf.md @@ -1,5 +1,5 @@ --- -layout: doc_page +id: protobuf title: "Protobuf" --- @@ -22,9 +22,8 @@ title: "Protobuf" ~ under the License. --> -# Protobuf -This Apache Druid (incubating) extension enables Druid to ingest and understand the Protobuf data format. Make sure to [include](../../operations/including-extensions.html) `druid-protobuf-extensions` as an extension. +This Apache Druid (incubating) extension enables Druid to ingest and understand the Protobuf data format. Make sure to [include](../../development/extensions.md#loading-extensions) `druid-protobuf-extensions` as an extension. ## Protobuf Parser @@ -34,15 +33,15 @@ This Apache Druid (incubating) extension enables Druid to ingest and understand | type | String | This should say `protobuf`. | no | | descriptor | String | Protobuf descriptor file name in the classpath or URL. | yes | | protoMessageType | String | Protobuf message type in the descriptor. Both short name and fully qualified name are accepted. The parser uses the first message type found in the descriptor if not specified. | no | -| parseSpec | JSON Object | Specifies the timestamp and dimensions of the data. The format must be json. See [JSON ParseSpec](../../ingestion/index.html) for more configuration options. Please note timeAndDims parseSpec is no longer supported. | yes | +| parseSpec | JSON Object | Specifies the timestamp and dimensions of the data. The format must be json. See [JSON ParseSpec](../../ingestion/index.md) for more configuration options. Please note timeAndDims parseSpec is no longer supported. | yes | ## Example: Load Protobuf messages from Kafka -This example demonstrates how to load Protobuf messages from Kafka. Please read the [Load from Kafka tutorial](../../tutorials/tutorial-kafka.html) first. This example will use the same "metrics" dataset. +This example demonstrates how to load Protobuf messages from Kafka. Please read the [Load from Kafka tutorial](../../tutorials/tutorial-kafka.md) first. This example will use the same "metrics" dataset. Files used in this example are found at `./examples/quickstart/protobuf` in your Druid directory. -- We will use [Kafka Indexing Service](./kafka-ingestion.html) instead of Tranquility. +- We will use [Kafka Indexing Service](./kafka-ingestion.md) instead of Tranquility. - Kafka broker host is `localhost:9092`. - Kafka topic is `metrics_pb` instead of `metrics`. - datasource name is `metrics-kafka-pb` instead of `metrics-kafka` to avoid the confusion. @@ -220,4 +219,7 @@ kafka-console-consumer --zookeeper localhost --topic metrics_pb ``` It should print messages like this -> millisecondsGETR"2017-04-06T03:23:56Z*2002/list:request/latencyBwww1.example.com + +``` +millisecondsGETR"2017-04-06T03:23:56Z*2002/list:request/latencyBwww1.example.com +``` diff --git a/docs/content/development/extensions-core/s3.md b/docs/development/extensions-core/s3.md similarity index 97% rename from docs/content/development/extensions-core/s3.md rename to docs/development/extensions-core/s3.md index 41b4b565715b..65e883ee9379 100644 --- a/docs/content/development/extensions-core/s3.md +++ b/docs/development/extensions-core/s3.md @@ -1,5 +1,5 @@ --- -layout: doc_page +id: s3 title: "S3-compatible" --- @@ -22,9 +22,8 @@ title: "S3-compatible" ~ under the License. --> -# S3-compatible -To use this Apache Druid (incubating) extension, make sure to [include](../../operations/including-extensions.html) `druid-s3-extensions` as an extension. +To use this Apache Druid (incubating) extension, make sure to [include](../../development/extensions.md#loading-extensions) `druid-s3-extensions` as an extension. ## Deep Storage @@ -83,8 +82,8 @@ To connect to your S3 bucket (whether deep storage bucket or source bucket), Dru |6|Instance profile informations|Based on the instance profile you may have attached to your druid instance| You can find more informations about authentication method [here](https://docs.aws.amazon.com/fr_fr/sdk-for-java/v1/developer-guide/credentials.html)
-**Note :** *Order is important here as it indicates the precedence of authentication methods.
-So if you are trying to use Instance profile informations, you **must not** set `druid.s3.accessKey` and `druid.s3.secretKey` in your Druid runtime.properties* +**Note :** *Order is important here as it indicates the precedence of authentication methods.
+So if you are trying to use Instance profile informations, you **must not** set `druid.s3.accessKey` and `druid.s3.secretKey` in your Druid runtime.properties* ## Server-side encryption @@ -95,10 +94,12 @@ You can enable [server-side encryption](https://docs.aws.amazon.com/AmazonS3/lat - kms: [Server-side encryption with AWS KMS–Managed Keys](https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingKMSEncryption.html) - custom: [Server-side encryption with Customer-Provided Encryption Keys](https://docs.aws.amazon.com/AmazonS3/latest/dev/ServerSideEncryptionCustomerKeys.html) + + ## StaticS3Firehose This firehose ingests events from a predefined list of S3 objects. -This firehose is _splittable_ and can be used by [native parallel index tasks](../../ingestion/native_tasks.html#parallel-index-task). +This firehose is _splittable_ and can be used by [native parallel index tasks](../../ingestion/native-batch.md#parallel-task). Since each split represents an object in this firehose, each worker task of `index_parallel` will read an object. Sample spec: diff --git a/docs/content/development/extensions-core/simple-client-sslcontext.md b/docs/development/extensions-core/simple-client-sslcontext.md similarity index 86% rename from docs/content/development/extensions-core/simple-client-sslcontext.md rename to docs/development/extensions-core/simple-client-sslcontext.md index 7247f2697a92..ca957bb2a95e 100644 --- a/docs/content/development/extensions-core/simple-client-sslcontext.md +++ b/docs/development/extensions-core/simple-client-sslcontext.md @@ -1,5 +1,5 @@ --- -layout: doc_page +id: simple-client-sslcontext title: "Simple SSLContext Provider Module" --- @@ -22,13 +22,11 @@ title: "Simple SSLContext Provider Module" ~ under the License. --> -# Simple SSLContext Provider Module This Apache Druid (incubating) module contains a simple implementation of [SSLContext](http://docs.oracle.com/javase/8/docs/api/javax/net/ssl/SSLContext.html) that will be injected to be used with HttpClient that Druid processes use internally to communicate with each other. To learn more about Java's SSL support, please refer to [this](http://docs.oracle.com/javase/8/docs/technotes/guides/security/jsse/JSSERefGuide.html) guide. -# Configuration |Property|Description|Default|Required| |--------|-----------|-------|--------| @@ -36,7 +34,7 @@ Java's SSL support, please refer to [this](http://docs.oracle.com/javase/8/docs/ |`druid.client.https.trustStoreType`|The type of the key store where trusted root certificates are stored.|`java.security.KeyStore.getDefaultType()`|no| |`druid.client.https.trustStorePath`|The file path or URL of the TLS/SSL Key store where trusted root certificates are stored.|none|yes| |`druid.client.https.trustStoreAlgorithm`|Algorithm to be used by TrustManager to validate certificate chains|`javax.net.ssl.TrustManagerFactory.getDefaultAlgorithm()`|no| -|`druid.client.https.trustStorePassword`|The [Password Provider](../../operations/password-provider.html) or String password for the Trust Store.|none|yes| +|`druid.client.https.trustStorePassword`|The [Password Provider](../../operations/password-provider.md) or String password for the Trust Store.|none|yes| The following table contains optional parameters for supporting client certificate authentication: @@ -45,10 +43,10 @@ The following table contains optional parameters for supporting client certifica |`druid.client.https.keyStorePath`|The file path or URL of the TLS/SSL Key store containing the client certificate that Druid will use when communicating with other Druid services. If this is null, the other properties in this table are ignored.|none|yes| |`druid.client.https.keyStoreType`|The type of the key store.|none|yes| |`druid.client.https.certAlias`|Alias of TLS client certificate in the keystore.|none|yes| -|`druid.client.https.keyStorePassword`|The [Password Provider](../../operations/password-provider.html) or String password for the Key Store.|none|no| +|`druid.client.https.keyStorePassword`|The [Password Provider](../../operations/password-provider.md) or String password for the Key Store.|none|no| |`druid.client.https.keyManagerFactoryAlgorithm`|Algorithm to use for creating KeyManager, more details [here](https://docs.oracle.com/javase/7/docs/technotes/guides/security/jsse/JSSERefGuide.html#KeyManager).|`javax.net.ssl.KeyManagerFactory.getDefaultAlgorithm()`|no| -|`druid.client.https.keyManagerPassword`|The [Password Provider](../../operations/password-provider.html) or String password for the Key Manager.|none|no| -|`druid.client.https.validateHostnames`|Validate the hostname of the server. This should not be disabled unless you are using [custom TLS certificate checks](../../operations/tls-support.html#custom-tls-certificate-checks) and know that standard hostname validation is not needed.|true|no| +|`druid.client.https.keyManagerPassword`|The [Password Provider](../../operations/password-provider.md) or String password for the Key Manager.|none|no| +|`druid.client.https.validateHostnames`|Validate the hostname of the server. This should not be disabled unless you are using [custom TLS certificate checks](../../operations/tls-support.md) and know that standard hostname validation is not needed.|true|no| This [document](http://docs.oracle.com/javase/8/docs/technotes/guides/security/StandardNames.html) lists all the possible values for the above mentioned configs among others provided by Java implementation. diff --git a/docs/content/development/extensions-core/stats.md b/docs/development/extensions-core/stats.md similarity index 94% rename from docs/content/development/extensions-core/stats.md rename to docs/development/extensions-core/stats.md index 0b3b4e35970b..0dbbf3a0ffee 100644 --- a/docs/content/development/extensions-core/stats.md +++ b/docs/development/extensions-core/stats.md @@ -1,5 +1,5 @@ --- -layout: doc_page +id: stats title: "Stats aggregator" --- @@ -22,9 +22,8 @@ title: "Stats aggregator" ~ under the License. --> -# Stats aggregator -This Apache Druid (incubating) extension includes stat-related aggregators, including variance and standard deviations, etc. Make sure to [include](../../operations/including-extensions.html) `druid-stats` as an extension. +This Apache Druid (incubating) extension includes stat-related aggregators, including variance and standard deviations, etc. Make sure to [include](../../development/extensions.md#loading-extensions) `druid-stats` as an extension. ## Variance aggregator @@ -79,7 +78,7 @@ To query for results, "variance" aggregator with "variance" input type or simply |`estimator`|Set "population" to get variance_pop rather than variance_sample, which is default.|null| -### Standard Deviation post-aggregator +### Standard deviation post-aggregator To acquire standard deviation from variance, user can use "stddev" post aggregator. @@ -92,9 +91,9 @@ To acquire standard deviation from variance, user can use "stddev" post aggregat } ``` -## Query Examples: +## Query examples: -### Timeseries Query +### Timeseries query ```json { @@ -114,7 +113,7 @@ To acquire standard deviation from variance, user can use "stddev" post aggregat } ``` -### TopN Query +### TopN query ```json { @@ -143,7 +142,7 @@ To acquire standard deviation from variance, user can use "stddev" post aggregat } ``` -### GroupBy Query +### GroupBy query ```json { diff --git a/docs/content/development/extensions-core/test-stats.md b/docs/development/extensions-core/test-stats.md similarity index 97% rename from docs/content/development/extensions-core/test-stats.md rename to docs/development/extensions-core/test-stats.md index 156052fb1ae3..a860d423d12e 100644 --- a/docs/content/development/extensions-core/test-stats.md +++ b/docs/development/extensions-core/test-stats.md @@ -1,5 +1,5 @@ --- -layout: doc_page +id: test-stats title: "Test Stats Aggregators" --- @@ -22,7 +22,6 @@ title: "Test Stats Aggregators" ~ under the License. --> -# Test Stats Aggregators This Apache Druid (incubating) extension incorporates test statistics related aggregators, including z-score and p-value. Please refer to [https://www.paypal-engineering.com/2017/06/29/democratizing-experimentation-data-for-product-innovations/](https://www.paypal-engineering.com/2017/06/29/democratizing-experimentation-data-for-product-innovations/) for math background and details. @@ -35,7 +34,7 @@ Please refer to [https://www.isixsigma.com/tools-templates/hypothesis-testing/ma z = (p1 - p2) / S.E. (assuming null hypothesis is true) Please see below for p1 and p2. -Please note S.E. stands for standard error where +Please note S.E. stands for standard error where S.E. = sqrt{ p1 * ( 1 - p1 )/n1 + p2 * (1 - p2)/n2) } @@ -74,7 +73,7 @@ p2 = (successCount2) / (sample size 2) "zScore": } ``` - + ## Example Usage In this example, we use zscore2sample post aggregator to calculate z-score, and then feed the z-score to pvalue2tailedZtest post aggregator to calculate p-value. @@ -87,7 +86,7 @@ A JSON query example can be as follows: "postAggregations" : { "type" : "pvalue2tailedZtest", "name" : "pvalue", - "zScore" : + "zScore" : { "type" : "zscore2sample", "name" : "zscore", diff --git a/docs/content/development/extensions.md b/docs/development/extensions.md similarity index 67% rename from docs/content/development/extensions.md rename to docs/development/extensions.md index 5ac1832d2967..c0fa27d35a7d 100644 --- a/docs/content/development/extensions.md +++ b/docs/development/extensions.md @@ -1,6 +1,6 @@ --- -layout: doc_page -title: "Apache Druid (incubating) extensions" +id: extensions +title: "Extensions" --- -# Apache Druid (incubating) extensions Druid implements an extension system that allows for adding functionality at runtime. Extensions are commonly used to add support for deep storages (like HDFS and S3), metadata stores (like MySQL @@ -31,19 +30,15 @@ and PostgreSQL), new aggregators, new input formats, and so on. Production clusters will generally use at least two extensions; one for deep storage and one for a metadata store. Many clusters will also use additional extensions. -## Including extensions - -Please see [here](../operations/including-extensions.html). - ## Core extensions Core extensions are maintained by Druid committers. |Name|Description|Docs| |----|-----------|----| -|druid-avro-extensions|Support for data in Apache Avro data format.|[link](../development/extensions-core/avro.html)| -|druid-basic-security|Support for Basic HTTP authentication and role-based access control.|[link](../development/extensions-core/druid-basic-security.html)| -|druid-bloom-filter|Support for providing Bloom filters in druid queries.|[link](../development/extensions-core/bloom-filter.html)| +|druid-avro-extensions|Support for data in Apache Avro data format.|[link](../development/extensions-core/avro.md)| +|druid-basic-security|Support for Basic HTTP authentication and role-based access control.|[link](../development/extensions-core/druid-basic-security.md)| +|druid-bloom-filter|Support for providing Bloom filters in druid queries.|[link](../development/extensions-core/bloom-filter.md)| |druid-caffeine-cache|A local cache implementation backed by Caffeine.|[link](../configuration/index.html#cache-configuration)| |druid-datasketches|Support for approximate counts and set operations with [DataSketches](https://datasketches.github.io/).|[link](../development/extensions-core/datasketches-extension.html)| |druid-hdfs-storage|HDFS deep storage.|[link](../development/extensions-core/hdfs.html)| @@ -59,16 +54,14 @@ Core extensions are maintained by Druid committers. |druid-protobuf-extensions| Support for data in Protobuf data format.|[link](../development/extensions-core/protobuf.html)| |druid-s3-extensions|Interfacing with data in AWS S3, and using S3 as deep storage.|[link](../development/extensions-core/s3.html)| |druid-ec2-extensions|Interfacing with AWS EC2 for autoscaling middle managers|UNDOCUMENTED| -|druid-stats|Statistics related module including variance and standard deviation.|[link](../development/extensions-core/stats.html)| -|mysql-metadata-storage|MySQL metadata store.|[link](../development/extensions-core/mysql.html)| -|postgresql-metadata-storage|PostgreSQL metadata store.|[link](../development/extensions-core/postgresql.html)| -|simple-client-sslcontext|Simple SSLContext provider module to be used by Druid's internal HttpClient when talking to other Druid processes over HTTPS.|[link](../development/extensions-core/simple-client-sslcontext.html)| +|druid-stats|Statistics related module including variance and standard deviation.|[link](../development/extensions-core/stats.md)| +|mysql-metadata-storage|MySQL metadata store.|[link](../development/extensions-core/mysql.md)| +|postgresql-metadata-storage|PostgreSQL metadata store.|[link](../development/extensions-core/postgresql.md)| +|simple-client-sslcontext|Simple SSLContext provider module to be used by Druid's internal HttpClient when talking to other Druid processes over HTTPS.|[link](../development/extensions-core/simple-client-sslcontext.md)| -# Community Extensions +## Community extensions -
-Community extensions are not maintained by Druid committers, although we accept patches from community members using these extensions. They may not have been as extensively tested as the core extensions. -
+> Community extensions are not maintained by Druid committers, although we accept patches from community members using these extensions. They may not have been as extensively tested as the core extensions. A number of community members have contributed their own extensions to Druid that are not packaged with the default Druid tarball. If you'd like to take on maintenance for a community extension, please post on [dev@druid.apache.org](https://lists.apache.org/list.html?dev@druid.apache.org) to let us know! @@ -97,11 +90,65 @@ All of these community extensions can be downloaded using [pull-deps](../operati |druid-momentsketch|Support for approximate quantile queries using the [momentsketch](https://github.com/stanford-futuredata/momentsketch) library|[link](../development/extensions-contrib/momentsketch-quantiles.html)| |druid-tdigestsketch|Support for approximate sketch aggregators based on [T-Digest](https://github.com/tdunning/t-digest)|[link](../development/extensions-contrib/tdigestsketch-quantiles.html)| -## Promoting Community Extension to Core Extension +## Promoting community extensions to core extensions Please post on [dev@druid.apache.org](https://lists.apache.org/list.html?dev@druid.apache.org) if you'd like an extension to be promoted to core. If we see a community extension actively supported by the community, we can promote it to core based on community feedback. -# Creating your own Extensions -For information how to create your own extension, please see [here](../development/modules.html). +For information how to create your own extension, please see [here](../development/modules.md). + +## Loading extensions + +### Loading core extensions + +Apache Druid (incubating) bundles all [core extensions](../development/extensions.html#core-extensions) out of the box. +See the [list of extensions](../development/extensions.html#core-extensions) for your options. You +can load bundled extensions by adding their names to your common.runtime.properties +`druid.extensions.loadList` property. For example, to load the *postgresql-metadata-storage* and +*druid-hdfs-storage* extensions, use the configuration: + +``` +druid.extensions.loadList=["postgresql-metadata-storage", "druid-hdfs-storage"] +``` + +These extensions are located in the `extensions` directory of the distribution. + +> Druid bundles two sets of configurations: one for the [quickstart](../tutorials/index.md) and +> one for a [clustered configuration](../tutorials/cluster.md). Make sure you are updating the correct +> common.runtime.properties for your setup. + +> Because of licensing, the mysql-metadata-storage extension does not include the required MySQL JDBC driver. For instructions +> on how to install this library, see the [MySQL extension page](../development/extensions-core/mysql.md). + +### Loading community extensions + +You can also load community and third-party extensions not already bundled with Druid. To do this, first download the extension and +then install it into your `extensions` directory. You can download extensions from their distributors directly, or +if they are available from Maven, the included [pull-deps](../operations/pull-deps.md) can download them for you. To use *pull-deps*, +specify the full Maven coordinate of the extension in the form `groupId:artifactId:version`. For example, +for the (hypothetical) extension *com.example:druid-example-extension:1.0.0*, run: + +``` +java \ + -cp "lib/*" \ + -Ddruid.extensions.directory="extensions" \ + -Ddruid.extensions.hadoopDependenciesDir="hadoop-dependencies" \ + org.apache.druid.cli.Main tools pull-deps \ + --no-default-hadoop \ + -c "com.example:druid-example-extension:1.0.0" +``` + +You only have to install the extension once. Then, add `"druid-example-extension"` to +`druid.extensions.loadList` in common.runtime.properties to instruct Druid to load the extension. + +> Please make sure all the Extensions related configuration properties listed [here](../configuration/index.md#extensions) are set correctly. + +> The Maven groupId for almost every [community extension](../development/extensions.md#community-extensions) is org.apache.druid.extensions.contrib. The artifactId is the name +> of the extension, and the version is the latest Druid stable version. + +### Loading extensions from the classpath + +If you add your extension jar to the classpath at runtime, Druid will also load it into the system. This mechanism is relatively easy to reason about, +but it also means that you have to ensure that all dependency jars on the classpath are compatible. That is, Druid makes no provisions while using +this method to maintain class loader isolation so you must make sure that the jars on your classpath are mutually compatible. \ No newline at end of file diff --git a/docs/content/development/geo.md b/docs/development/geo.md similarity index 94% rename from docs/content/development/geo.md rename to docs/development/geo.md index 8d6a6cfd7442..1f411f603389 100644 --- a/docs/content/development/geo.md +++ b/docs/development/geo.md @@ -1,6 +1,6 @@ --- -layout: doc_page -title: "Geographic Queries" +id: geo +title: "Spatial filters" --- -# Geographic Queries - Apache Druid (incubating) supports filtering specially spatially indexed columns based on an origin and a bound. -# Spatial Indexing +## Spatial indexing + In any of the data specs, there is the option of providing spatial dimensions. For example, for a JSON data spec, spatial dimensions can be specified as follows: ```json @@ -55,12 +54,13 @@ In any of the data specs, there is the option of providing spatial dimensions. F } ``` +## Spatial filters + |property|description|required?| |--------|-----------|---------| |dimName|The name of the spatial dimension. A spatial dimension may be constructed from multiple other dimensions or it may already exist as part of an event. If a spatial dimension already exists, it must be an array of coordinate values.|yes| |dims|A list of dimension names that comprise a spatial dimension.|no| -# Spatial Filters The grammar for a spatial filter is as follows: ```json @@ -75,24 +75,23 @@ The grammar for a spatial filter is as follows: } ``` -Bounds ------- +### Bound types -### Rectangular +#### `rectangular` |property|description|required?| |--------|-----------|---------| |minCoords|List of minimum dimension coordinates for coordinates [x, y, z, …]|yes| |maxCoords|List of maximum dimension coordinates for coordinates [x, y, z, …]|yes| -### Radius +#### `radius` |property|description|required?| |--------|-----------|---------| |coords|Origin coordinates in the form [x, y, z, …]|yes| |radius|The float radius value|yes| -### PolygonBound +#### `polygon` |property|description|required?| |--------|-----------|---------| diff --git a/docs/content/development/integrating-druid-with-other-technologies.md b/docs/development/integrating-druid-with-other-technologies.md similarity index 79% rename from docs/content/development/integrating-druid-with-other-technologies.md rename to docs/development/integrating-druid-with-other-technologies.md index 873cdbdeb74e..96056ed45a15 100644 --- a/docs/content/development/integrating-druid-with-other-technologies.md +++ b/docs/development/integrating-druid-with-other-technologies.md @@ -1,6 +1,7 @@ --- -layout: doc_page -title: "Integrating Apache Druid (incubating) With Other Technologies" +id: integrating-druid-with-other-technologies +title: "Integrating Apache Druid with other technologies" +sidebar_label: "Integrating with other technologies" --- -# Integrating Apache Druid (incubating) With Other Technologies -This page discusses how we can integrate Druid with other technologies. +This page discusses how we can integrate Druid with other technologies. ## Integrating with Open Source Streaming Technologies -Event streams can be stored in a distributed message bus such as Kafka and further processed via a distributed stream -processor system such as Storm, Samza, or Spark Streaming. Data processed by the stream processor can feed into Druid using +Event streams can be stored in a distributed message bus such as Kafka and further processed via a distributed stream +processor system such as Storm, Samza, or Spark Streaming. Data processed by the stream processor can feed into Druid using the [Tranquility](https://github.com/druid-io/tranquility) library. - + ## Integrating with SQL-on-Hadoop Technologies diff --git a/docs/content/development/javascript.md b/docs/development/javascript.md similarity index 95% rename from docs/content/development/javascript.md rename to docs/development/javascript.md index ae0aad4213d1..a50d7abaed68 100644 --- a/docs/content/development/javascript.md +++ b/docs/development/javascript.md @@ -1,6 +1,7 @@ --- -layout: doc_page -title: "JavaScript Programming Guide" +id: javascript +title: "JavaScript programming guide" +sidebar_label: "JavaScript functionality" --- -# JavaScript Programming Guide This page discusses how to use JavaScript to extend Apache Druid (incubating). @@ -35,7 +35,7 @@ JavaScript can be used to extend Druid in a variety of ways: - [Filters](../querying/filters.html#javascript-filter) - [Post-aggregators](../querying/post-aggregations.html#javascript-post-aggregator) - [Input parsers](../ingestion/data-formats.html#javascript) -- [Router strategy](../development/router.html#javascript) +- [Router strategy](../design/router.html#javascript) - [Worker select strategy](../configuration/index.html#javascript-worker-select-strategy) JavaScript can be injected dynamically at runtime, making it convenient to rapidly prototype new functionality diff --git a/docs/content/development/modules.md b/docs/development/modules.md similarity index 96% rename from docs/content/development/modules.md rename to docs/development/modules.md index 44ce7bd964f9..1d7977c3915d 100644 --- a/docs/content/development/modules.md +++ b/docs/development/modules.md @@ -1,6 +1,6 @@ --- -layout: doc_page -title: "Extending Apache Druid (incubating) With Custom Modules" +id: modules +title: "Creating extensions" --- -# Extending Druid With Custom Modules Druid uses a module system that allows for the addition of extensions at runtime. ## Writing your own extensions -Druid's extensions leverage Guice in order to add things at runtime. Basically, Guice is a framework for Dependency Injection, but we use it to hold the expected object graph of the Druid process. Extensions can make any changes they want/need to the object graph via adding Guice bindings. While the extensions actually give you the capability to change almost anything however you want, in general, we expect people to want to extend one of the things listed below. This means that we honor our [versioning strategy](./versioning.html) for changes that affect the interfaces called out on this page, but other interfaces are deemed "internal" and can be changed in an incompatible manner even between patch releases. +Druid's extensions leverage Guice in order to add things at runtime. Basically, Guice is a framework for Dependency Injection, but we use it to hold the expected object graph of the Druid process. Extensions can make any changes they want/need to the object graph via adding Guice bindings. While the extensions actually give you the capability to change almost anything however you want, in general, we expect people to want to extend one of the things listed below. This means that we honor our [versioning strategy](./versioning.md) for changes that affect the interfaces called out on this page, but other interfaces are deemed "internal" and can be changed in an incompatible manner even between patch releases. 1. Add a new deep storage implementation by extending the `org.apache.druid.segment.loading.DataSegment*` and `org.apache.druid.tasklogs.TaskLog*` classes. @@ -53,7 +52,7 @@ Extensions are added to the system via an implementation of `org.apache.druid.in The DruidModule class is has two methods -1. A `configure(Binder)` method +1. A `configure(Binder)` method 2. A `getJacksonModules()` method The `configure(Binder)` method is the same method that a normal Guice module would have. @@ -100,16 +99,16 @@ Binders.dataSegmentPusherBinder(binder) In addition to DataSegmentPusher and DataSegmentPuller, you can also bind: -* DataSegmentKiller: Removes segments, used as part of the Kill Task to delete unused segments, i.e. perform garbage collection of segments that are either superseded by newer versions or that have been dropped from the cluster. -* DataSegmentMover: Allow migrating segments from one place to another, currently this is only used as part of the MoveTask to move unused segments to a different S3 bucket or prefix, typically to reduce storage costs of unused data (e.g. move to glacier or cheaper storage) -* DataSegmentArchiver: Just a wrapper around Mover, but comes with a pre-configured target bucket/path, so it doesn't have to be specified at runtime as part of the ArchiveTask. +* DataSegmentKiller: Removes segments, used as part of the Kill Task to delete unused segments, i.e. perform garbage collection of segments that are either superseded by newer versions or that have been dropped from the cluster. +* DataSegmentMover: Allow migrating segments from one place to another, currently this is only used as part of the MoveTask to move unused segments to a different S3 bucket or prefix, typically to reduce storage costs of unused data (e.g. move to glacier or cheaper storage) +* DataSegmentArchiver: Just a wrapper around Mover, but comes with a pre-configured target bucket/path, so it doesn't have to be specified at runtime as part of the ArchiveTask. ### Validating your deep storage implementation **WARNING!** This is not a formal procedure, but a collection of hints to validate if your new deep storage implementation is able do push, pull and kill segments. It's recommended to use batch ingestion tasks to validate your implementation. -The segment will be automatically rolled up to Historical note after ~20 seconds. +The segment will be automatically rolled up to Historical note after ~20 seconds. In this way, you can validate both push (at realtime process) and pull (at Historical process) segments. * DataSegmentPusher @@ -173,7 +172,7 @@ Note that inside of Druid, we have made the @JacksonInject annotation for Jackso Adding AggregatorFactory objects is very similar to Firehose objects. They operate purely through Jackson and thus should just be additions to the Jackson modules returned by your DruidModule. -### Adding Complex Metrics +### Adding Complex Metrics Adding ComplexMetrics is a little ugly in the current version. The method of getting at complex metrics is through registration with the `ComplexMetrics.registerSerde()` method. There is no special Guice stuff to get this working, just in your `configure(Binder)` method register the serde. @@ -191,7 +190,7 @@ Registering these uses the same general strategy as a deep storage mechanism doe DruidBinders.queryToolChestBinder(binder) .addBinding(SegmentMetadataQuery.class) .to(SegmentMetadataQueryQueryToolChest.class); - + DruidBinders.queryRunnerFactoryBinder(binder) .addBinding(SegmentMetadataQuery.class) .to(SegmentMetadataQueryRunnerFactory.class); @@ -231,7 +230,7 @@ When you do `mvn install`, Druid extensions will be packaged within the Druid ta If you want your extension to be included, you can add your extension's maven coordinate as an argument at [distribution/pom.xml](https://github.com/apache/incubator-druid/blob/master/distribution/pom.xml#L95) -During `mvn install`, maven will install your extension to the local maven repository, and then call [pull-deps](../operations/pull-deps.html) to pull your extension from +During `mvn install`, maven will install your extension to the local maven repository, and then call [pull-deps](../operations/pull-deps.md) to pull your extension from there. In the end, you should see your extension underneath `distribution/target/extensions` and within Druid tarball. ### Managing dependencies diff --git a/docs/content/development/overview.md b/docs/development/overview.md similarity index 80% rename from docs/content/development/overview.md rename to docs/development/overview.md index db89fce6a81e..5ff77af07cf4 100644 --- a/docs/content/development/overview.md +++ b/docs/development/overview.md @@ -1,6 +1,7 @@ --- -layout: doc_page -title: "Developing on Apache Druid (incubating)" +id: overview +title: "Developing on Apache Druid" +sidebar_label: "Developing on Druid" --- -# Developing on Apache Druid (incubating) -Druid's codebase consists of several major components. For developers interested in learning the code, this document provides +Druid's codebase consists of several major components. For developers interested in learning the code, this document provides a high level overview of the main components that make up Druid and the relevant classes to start from to learn the code. -## Storage Format +## Storage format -Data in Druid is stored in a custom column format known as a [segment](../design/segments.html). Segments are composed of +Data in Druid is stored in a custom column format known as a [segment](../design/segments.md). Segments are composed of different types of columns. `Column.java` and the classes that extend it is a great place to looking into the storage format. -## Segment Creation +## Segment creation Raw data is ingested in `IncrementalIndex.java`, and segments are created in `IndexMerger.java`. -## Storage Engine +## Storage engine Druid segments are memory mapped in `IndexIO.java` to be exposed for querying. -## Query Engine +## Query engine -Most of the logic related to Druid queries can be found in the Query* classes. Druid leverages query runners to run queries. -Query runners often embed other query runners and each query runner adds on a layer of logic. A good starting point to trace +Most of the logic related to Druid queries can be found in the Query* classes. Druid leverages query runners to run queries. +Query runners often embed other query runners and each query runner adds on a layer of logic. A good starting point to trace the query logic is to start from `QueryResource.java`. ## Coordination -Most of the coordination logic for Historical processes is on the Druid Coordinator. The starting point here is `DruidCoordinator.java`. +Most of the coordination logic for Historical processes is on the Druid Coordinator. The starting point here is `DruidCoordinator.java`. Most of the coordination logic for (real-time) ingestion is in the Druid indexing service. The starting point here is `OverlordResource.java`. ## Real-time Ingestion -Druid loads data through `FirehoseFactory.java` classes. Firehoses often wrap other firehoses, where, similar to the design of the +Druid loads data through `FirehoseFactory.java` classes. Firehoses often wrap other firehoses, where, similar to the design of the query runners, each firehose adds a layer of logic, and the persist and hand-off logic is in `RealtimePlumber.java`. ## Hadoop-based Batch Ingestion -The two main Hadoop indexing classes are `HadoopDruidDetermineConfigurationJob.java` for the job to determine how many Druid +The two main Hadoop indexing classes are `HadoopDruidDetermineConfigurationJob.java` for the job to determine how many Druid segments to create, and `HadoopDruidIndexerJob.java`, which creates Druid segments. At some point in the future, we may move the Hadoop ingestion code out of core Druid. @@ -69,7 +69,8 @@ Druid currently has two internal UIs. One is for the Coordinator and one is for At some point in the future, we will likely move the internal UI code out of core Druid. -## Client Libraries +## Client libraries -We welcome contributions for new client libraries to interact with Druid. See client -[libraries](/libraries.html) for existing client libraries. +We welcome contributions for new client libraries to interact with Druid. See the +[Community and third-party libraries](https://druid.apache.org/libraries.html) page for links to existing client +libraries. diff --git a/docs/content/development/versioning.md b/docs/development/versioning.md similarity index 96% rename from docs/content/development/versioning.md rename to docs/development/versioning.md index c0227c1866c6..aa48ce677a1a 100644 --- a/docs/content/development/versioning.md +++ b/docs/development/versioning.md @@ -1,6 +1,6 @@ --- -layout: doc_page -title: "Versioning Apache Druid (incubating)" +id: versioning +title: "Versioning" --- -# Versioning Apache Druid (incubating) This page discusses how we do versioning and provides information on our stable releases. diff --git a/docs/content/ingestion/data-formats.md b/docs/ingestion/data-formats.md similarity index 64% rename from docs/content/ingestion/data-formats.md rename to docs/ingestion/data-formats.md index 73ad2ae8a456..1649b5b79b5b 100644 --- a/docs/content/ingestion/data-formats.md +++ b/docs/ingestion/data-formats.md @@ -1,6 +1,6 @@ --- -layout: doc_page -title: "Data Formats for Ingestion" +id: data-formats +title: "Data formats" --- -# Data Formats for Ingestion - Apache Druid (incubating) can ingest denormalized data in JSON, CSV, or a delimited form such as TSV, or any custom format. While most examples in the documentation use data in JSON format, it is not difficult to configure Druid to ingest any other delimited data. We welcome any contributions to new formats. -For additional data formats, please see our [extensions list](../development/extensions.html). +For additional data formats, please see our [extensions list](../development/extensions.md). ## Formatting the Data @@ -56,18 +54,18 @@ _CSV_ _TSV (Delimited)_ ``` -2013-08-31T01:02:33Z "Gypsy Danger" "en" "nuclear" "true" "true" "false" "false" "article" "North America" "United States" "Bay Area" "San Francisco" 57 200 -143 -2013-08-31T03:32:45Z "Striker Eureka" "en" "speed" "false" "true" "true" "false" "wikipedia" "Australia" "Australia" "Cantebury" "Syndey" 459 129 330 -2013-08-31T07:11:21Z "Cherno Alpha" "ru" "masterYi" "false" "true" "true" "false" "article" "Asia" "Russia" "Oblast" "Moscow" 123 12 111 -2013-08-31T11:58:39Z "Crimson Typhoon" "zh" "triplets" "true" "false" "true" "false" "wikipedia" "Asia" "China" "Shanxi" "Taiyuan" 905 5 900 -2013-08-31T12:41:27Z "Coyote Tango" "ja" "cancer" "true" "false" "true" "false" "wikipedia" "Asia" "Japan" "Kanto" "Tokyo" 1 10 -9 +2013-08-31T01:02:33Z "Gypsy Danger" "en" "nuclear" "true" "true" "false" "false" "article" "North America" "United States" "Bay Area" "San Francisco" 57 200 -143 +2013-08-31T03:32:45Z "Striker Eureka" "en" "speed" "false" "true" "true" "false" "wikipedia" "Australia" "Australia" "Cantebury" "Syndey" 459 129 330 +2013-08-31T07:11:21Z "Cherno Alpha" "ru" "masterYi" "false" "true" "true" "false" "article" "Asia" "Russia" "Oblast" "Moscow" 123 12 111 +2013-08-31T11:58:39Z "Crimson Typhoon" "zh" "triplets" "true" "false" "true" "false" "wikipedia" "Asia" "China" "Shanxi" "Taiyuan" 905 5 900 +2013-08-31T12:41:27Z "Coyote Tango" "ja" "cancer" "true" "false" "true" "false" "wikipedia" "Asia" "Japan" "Kanto" "Tokyo" 1 10 -9 ``` Note that the CSV and TSV data do not contain column heads. This becomes important when you specify the data for ingesting. ## Custom Formats -Druid supports custom data formats and can use the `Regex` parser or the `JavaScript` parsers to parse these formats. Please note that using any of these parsers for +Druid supports custom data formats and can use the `Regex` parser or the `JavaScript` parsers to parse these formats. Please note that using any of these parsers for parsing data will not be as efficient as writing a native Java parser or using an external stream processor. We welcome contributions of new Parsers. ## Configuration @@ -88,7 +86,7 @@ All forms of Druid ingestion require some form of schema object. The format of t } ``` -If you have nested JSON, [Druid can automatically flatten it for you](flatten-json.html). +If you have nested JSON, [Druid can automatically flatten it for you](index.md#flattenspec). ### CSV @@ -164,7 +162,7 @@ The `columns` field must be included and and ensure that the order of the fields "format" : "regex", "timestampSpec" : { "column" : "timestamp" - }, + }, "dimensionsSpec" : { "dimensions" : [] }, @@ -173,8 +171,8 @@ The `columns` field must be included and and ensure that the order of the fields } ``` -The `columns` field must match the columns of your regex matching groups in the same order. If columns are not provided, default -columns names ("column_1", "column2", ... "column_n") will be assigned. Ensure that your column names include all your dimensions. +The `columns` field must match the columns of your regex matching groups in the same order. If columns are not provided, default +columns names ("column_1", "column2", ... "column_n") will be assigned. Ensure that your column names include all your dimensions. ### JavaScript @@ -183,7 +181,7 @@ columns names ("column_1", "column2", ... "column_n") will be assigned. Ensure t "format" : "javascript", "timestampSpec" : { "column" : "timestamp" - }, + }, "dimensionsSpec" : { "dimensions" : ["page","language","user","unpatrolled","newPage","robot","anonymous","namespace","continent","country","region","city"] }, @@ -194,12 +192,91 @@ columns names ("column_1", "column2", ... "column_n") will be assigned. Ensure t Note with the JavaScript parser that data must be fully parsed and returned as a `{key:value}` format in the JS logic. This means any flattening or parsing multi-dimensional values must be done here. -
-JavaScript-based functionality is disabled by default. Please refer to the Druid JavaScript programming guide for guidelines about using Druid's JavaScript functionality, including instructions on how to enable it. -
+> JavaScript-based functionality is disabled by default. Please refer to the Druid [JavaScript programming guide](../development/javascript.md) for guidelines about using Druid's JavaScript functionality, including instructions on how to enable it. ### Multi-value dimensions Dimensions can have multiple values for TSV and CSV data. To specify the delimiter for a multi-value dimension, set the `listDelimiter` in the `parseSpec`. JSON data can contain multi-value dimensions as well. The multiple values for a dimension must be formatted as a JSON array in the ingested data. No additional `parseSpec` configuration is needed. + +## Parser + +The default parser type is `string`, though a handful of extensions provide additional parser types. `string` typed parsers operate on text based inputs that can be split into individual records by newlines. For additional data formats, please see our [extensions list](../development/extensions.html). + +### String Parser + +| Field | Type | Description | Required | +|-------|------|-------------|----------| +| type | String | This should say `string` in general, or `hadoopyString` when used in a Hadoop indexing job. | no | +| parseSpec | JSON Object | Specifies the format, timestamp, and dimensions of the data. | yes | + +### ParseSpec + +ParseSpecs serve two purposes: + +- The String Parser use them to determine the format (i.e. JSON, CSV, TSV) of incoming rows. +- All Parsers use them to determine the timestamp and dimensions of incoming rows. + +If `format` is not included, the parseSpec defaults to `tsv`. + +#### JSON ParseSpec + +Use this with the String Parser to load JSON. + +| Field | Type | Description | Required | +|-------|------|-------------|----------| +| format | String | This should say `json`. | no | +| timestampSpec | JSON Object | Specifies the column and format of the timestamp. | yes | +| dimensionsSpec | JSON Object | Specifies the dimensions of the data. | yes | +| flattenSpec | JSON Object | Specifies flattening configuration for nested JSON data. See [`flattenSpec`](index.md#flattenspec) for more info. | no | + +#### JSON Lowercase ParseSpec + +> The _jsonLowercase_ parser is deprecated and may be removed in a future version of Druid. + +This is a special variation of the JSON ParseSpec that lower cases all the column names in the incoming JSON data. This parseSpec is required if you are updating to Druid 0.7.x from Druid 0.6.x, are directly ingesting JSON with mixed case column names, do not have any ETL in place to lower case those column names, and would like to make queries that include the data you created using 0.6.x and 0.7.x. + +| Field | Type | Description | Required | +|-------|------|-------------|----------| +| format | String | This should say `jsonLowercase`. | yes | +| timestampSpec | JSON Object | Specifies the column and format of the timestamp. | yes | +| dimensionsSpec | JSON Object | Specifies the dimensions of the data. | yes | + +#### CSV ParseSpec + +Use this with the String Parser to load CSV. Strings are parsed using the com.opencsv library. + +| Field | Type | Description | Required | +|-------|------|-------------|----------| +| format | String | This should say `csv`. | yes | +| timestampSpec | JSON Object | Specifies the column and format of the timestamp. | yes | +| dimensionsSpec | JSON Object | Specifies the dimensions of the data. | yes | +| listDelimiter | String | A custom delimiter for multi-value dimensions. | no (default == ctrl+A) | +| columns | JSON array | Specifies the columns of the data. | yes | + +#### TSV / Delimited ParseSpec + +Use this with the String Parser to load any delimited text that does not require special escaping. By default, +the delimiter is a tab, so this will load TSV. + +| Field | Type | Description | Required | +|-------|------|-------------|----------| +| format | String | This should say `tsv`. | yes | +| timestampSpec | JSON Object | Specifies the column and format of the timestamp. | yes | +| dimensionsSpec | JSON Object | Specifies the dimensions of the data. | yes | +| delimiter | String | A custom delimiter for data values. | no (default == \t) | +| listDelimiter | String | A custom delimiter for multi-value dimensions. | no (default == ctrl+A) | +| columns | JSON String array | Specifies the columns of the data. | yes | + +#### TimeAndDims ParseSpec + +Use this with non-String Parsers to provide them with timestamp and dimensions information. Non-String Parsers +handle all formatting decisions on their own, without using the ParseSpec. + +| Field | Type | Description | Required | +|-------|------|-------------|----------| +| format | String | This should say `timeAndDims`. | yes | +| timestampSpec | JSON Object | Specifies the column and format of the timestamp. | yes | +| dimensionsSpec | JSON Object | Specifies the dimensions of the data. | yes | + diff --git a/docs/ingestion/data-management.md b/docs/ingestion/data-management.md new file mode 100644 index 000000000000..07dc89a4cd6e --- /dev/null +++ b/docs/ingestion/data-management.md @@ -0,0 +1,256 @@ +--- +id: data-management +title: "Data management" +--- + + + + + + +## Schema changes + +Schemas for datasources can change at any time and Apache Druid (incubating) supports different schemas among segments. + +### Replacing segments + +Druid uniquely +identifies segments using the datasource, interval, version, and partition number. The partition number is only visible in the segment id if +there are multiple segments created for some granularity of time. For example, if you have hourly segments, but you +have more data in an hour than a single segment can hold, you can create multiple segments for the same hour. These segments will share +the same datasource, interval, and version, but have linearly increasing partition numbers. + +``` +foo_2015-01-01/2015-01-02_v1_0 +foo_2015-01-01/2015-01-02_v1_1 +foo_2015-01-01/2015-01-02_v1_2 +``` + +In the example segments above, the dataSource = foo, interval = 2015-01-01/2015-01-02, version = v1, partitionNum = 0. +If at some later point in time, you reindex the data with a new schema, the newly created segments will have a higher version id. + +``` +foo_2015-01-01/2015-01-02_v2_0 +foo_2015-01-01/2015-01-02_v2_1 +foo_2015-01-01/2015-01-02_v2_2 +``` + +Druid batch indexing (either Hadoop-based or IndexTask-based) guarantees atomic updates on an interval-by-interval basis. +In our example, until all `v2` segments for `2015-01-01/2015-01-02` are loaded in a Druid cluster, queries exclusively use `v1` segments. +Once all `v2` segments are loaded and queryable, all queries ignore `v1` segments and switch to the `v2` segments. +Shortly afterwards, the `v1` segments are unloaded from the cluster. + +Note that updates that span multiple segment intervals are only atomic within each interval. They are not atomic across the entire update. +For example, you have segments such as the following: + +``` +foo_2015-01-01/2015-01-02_v1_0 +foo_2015-01-02/2015-01-03_v1_1 +foo_2015-01-03/2015-01-04_v1_2 +``` + +`v2` segments will be loaded into the cluster as soon as they are built and replace `v1` segments for the period of time the +segments overlap. Before v2 segments are completely loaded, your cluster may have a mixture of `v1` and `v2` segments. + +``` +foo_2015-01-01/2015-01-02_v1_0 +foo_2015-01-02/2015-01-03_v2_1 +foo_2015-01-03/2015-01-04_v1_2 +``` + +In this case, queries may hit a mixture of `v1` and `v2` segments. + +### Different schemas among segments + +Druid segments for the same datasource may have different schemas. If a string column (dimension) exists in one segment but not +another, queries that involve both segments still work. Queries for the segment missing the dimension will behave as if the dimension has only null values. +Similarly, if one segment has a numeric column (metric) but another does not, queries on the segment missing the +metric will generally "do the right thing". Aggregations over this missing metric behave as if the metric were missing. + + + +## Compaction and reindexing + +Compaction is a type of overwrite operation, which reads an existing set of segments, combines them into a new set with larger but fewer segments, and overwrites the original set with the new compacted set, without changing the data that is stored. + +For performance reasons, it is sometimes beneficial to compact a set of segments into a set of larger but fewer segments, as there is some per-segment processing and memory overhead in both the ingestion and querying paths. + +Compaction tasks merge all segments of the given interval. The syntax is: + +```json +{ + "type": "compact", + "id": , + "dataSource": , + "interval": , + "dimensions" , + "segmentGranularity": , + "targetCompactionSizeBytes": + "tuningConfig" , + "context": +} +``` + +|Field|Description|Required| +|-----|-----------|--------| +|`type`|Task type. Should be `compact`|Yes| +|`id`|Task id|No| +|`dataSource`|DataSource name to be compacted|Yes| +|`interval`|Interval of segments to be compacted|Yes| +|`dimensionsSpec`|Custom dimensionsSpec. Compaction task will use this dimensionsSpec if exist instead of generating one. See below for more details.|No| +|`metricsSpec`|Custom metricsSpec. Compaction task will use this metricsSpec if specified rather than generating one.|No| +|`segmentGranularity`|If this is set, compactionTask will change the segment granularity for the given interval. See `segmentGranularity` of [`granularitySpec`](index.md#granularityspec) for more details. See the below table for the behavior.|No| +|`targetCompactionSizeBytes`|Target segment size after comapction. Cannot be used with `maxRowsPerSegment`, `maxTotalRows`, and `numShards` in tuningConfig.|No| +|`tuningConfig`|[Index task tuningConfig](../ingestion/native-batch.md#tuningconfig)|No| +|`context`|[Task context](../ingestion/tasks.md#context)|No| + + +An example of compaction task is + +```json +{ + "type" : "compact", + "dataSource" : "wikipedia", + "interval" : "2017-01-01/2018-01-01" +} +``` + +This compaction task reads _all segments_ of the interval `2017-01-01/2018-01-01` and results in new segments. +Since `segmentGranularity` is null, the original segment granularity will be remained and not changed after compaction. +To control the number of result segments per time chunk, you can set [maxRowsPerSegment](../configuration/index.html#compaction-dynamic-configuration) or [numShards](../ingestion/native-batch.md#tuningconfig). +Please note that you can run multiple compactionTasks at the same time. For example, you can run 12 compactionTasks per month instead of running a single task for the entire year. + +A compaction task internally generates an `index` task spec for performing compaction work with some fixed parameters. +For example, its `firehose` is always the [ingestSegmentFirehose](native-batch.md#segment-firehose), and `dimensionsSpec` and `metricsSpec` +include all dimensions and metrics of the input segments by default. + +Compaction tasks will exit with a failure status code, without doing anything, if the interval you specify has no +data segments loaded in it (or if the interval you specify is empty). + +The output segment can have different metadata from the input segments unless all input segments have the same metadata. + +- Dimensions: since Apache Druid (incubating) supports schema change, the dimensions can be different across segments even if they are a part of the same dataSource. +If the input segments have different dimensions, the output segment basically includes all dimensions of the input segments. +However, even if the input segments have the same set of dimensions, the dimension order or the data type of dimensions can be different. For example, the data type of some dimensions can be +changed from `string` to primitive types, or the order of dimensions can be changed for better locality. +In this case, the dimensions of recent segments precede that of old segments in terms of data types and the ordering. +This is because more recent segments are more likely to have the new desired order and data types. If you want to use +your own ordering and types, you can specify a custom `dimensionsSpec` in the compaction task spec. +- Roll-up: the output segment is rolled up only when `rollup` is set for all input segments. +See [Roll-up](../ingestion/index.html#rollup) for more details. +You can check that your segments are rolled up or not by using [Segment Metadata Queries](../querying/segmentmetadataquery.html#analysistypes). + + + +## Adding new data + +Druid can insert new data to an existing datasource by appending new segments to existing segment sets. It can also add new data by merging an existing set of segments with new data and overwriting the original set. + +Druid does not support single-record updates by primary key. + + + +## Updating existing data + +Once you ingest some data in a dataSource for an interval and create Apache Druid (incubating) segments, you might want to make changes to +the ingested data. There are several ways this can be done. + +### Using lookups + +If you have a dimension where values need to be updated frequently, try first using [lookups](../querying/lookups.md). A +classic use case of lookups is when you have an ID dimension stored in a Druid segment, and want to map the ID dimension to a +human-readable String value that may need to be updated periodically. + +### Reingesting data + +If lookup-based techniques are not sufficient, you will need to reingest data into Druid for the time chunks that you +want to update. This can be done using one of the [batch ingestion methods](index.md#batch) in overwrite mode (the +default mode). It can also be done using [streaming ingestion](index.md#streaming), provided you drop data for the +relevant time chunks first. + +If you do the reingestion in batch mode, Druid's atomic update mechanism means that queries will flip seamlessly from +the old data to the new data. + +We recommend keeping a copy of your raw data around in case you ever need to reingest it. + +### With Hadoop-based ingestion + +This section assumes the reader understands how to do batch ingestion using Hadoop. See +[Hadoop batch ingestion](./hadoop.md) for more information. Hadoop batch-ingestion can be used for reindexing and delta ingestion. + +Druid uses an `inputSpec` in the `ioConfig` to know where the data to be ingested is located and how to read it. +For simple Hadoop batch ingestion, `static` or `granularity` spec types allow you to read data stored in deep storage. + +There are other types of `inputSpec` to enable reindexing and delta ingestion. + +### Reindexing with Native Batch Ingestion + +This section assumes the reader understands how to do batch ingestion without Hadoop using [native batch indexing](../ingestion/native-batch.md), +which uses a "firehose" to know where and how to read the input data. The [`ingestSegment` firehose](native-batch.md#segment-firehose) +can be used to read data from segments inside Druid. Note that IndexTask is to be used for prototyping purposes only as +it has to do all processing inside a single process and can't scale. Please use Hadoop batch ingestion for production +scenarios dealing with more than 1GB of data. + + + +## Deleting data + +Druid supports permanent deletion of segments that are in an "unused" state (see the +[Segment lifecycle](../design/architecture.html#segment-lifecycle) section of the Architecture page). + +The Kill Task deletes unused segments within a specified interval from metadata storage and deep storage. + +For more information, please see [Kill Task](../ingestion/tasks.html#kill). + +Permanent deletion of a segment in Apache Druid (incubating) has two steps: + +1. The segment must first be marked as "unused". This occurs when a segment is dropped by retention rules, and when a user manually disables a segment through the Coordinator API. +2. After segments have been marked as "unused", a Kill Task will delete any "unused" segments from Druid's metadata store as well as deep storage. + +For documentation on retention rules, please see [Data Retention](../operations/rule-configuration.md). + +For documentation on disabling segments using the Coordinator API, please see the +[Coordinator Datasources API](../operations/api-reference.html#coordinator-datasources) reference. + +A data deletion tutorial is available at [Tutorial: Deleting data](../tutorials/tutorial-delete-data.md) + +## Kill Task + +Kill tasks delete all information about a segment and removes it from deep storage. Segments to kill must be unused (used==0) in the Druid segment table. The available grammar is: + +```json +{ + "type": "kill", + "id": , + "dataSource": , + "interval" : , + "context": +} +``` + +## Retention + +Druid supports retention rules, which are used to define intervals of time where data should be preserved, and intervals where data should be discarded. + +Druid also supports separating Historical processes into tiers, and the retention rules can be configured to assign data for specific intervals to specific tiers. + +These features are useful for performance/cost management; a common use case is separating Historical processes into a "hot" tier and a "cold" tier. + +For more information, please see [Load rules](../operations/rule-configuration.md). diff --git a/docs/content/ingestion/faq.md b/docs/ingestion/faq.md similarity index 79% rename from docs/content/ingestion/faq.md rename to docs/ingestion/faq.md index e134c8230439..5ce15d900e76 100644 --- a/docs/content/ingestion/faq.md +++ b/docs/ingestion/faq.md @@ -1,6 +1,7 @@ --- -layout: doc_page -title: "Apache Druid (incubating) FAQ" +id: faq +title: "Ingestion troubleshooting FAQ" +sidebar_label: "Troubleshooting FAQ" --- -# Apache Druid (incubating) FAQ +### Realtime ingestion -### Realtime Ingestion +The most common cause of this is because events being ingested are out of band of Druid's `windowPeriod`. Druid realtime ingestion +only accepts events within a configurable windowPeriod of the current time. You can verify this is what is happening by looking at the logs of your real-time process for log lines containing `ingest/events/*`. These metrics will indicate the events ingested, rejected, etc. + +We recommend using batch ingestion methods for historical data in production. -The most common cause of this is because events being ingested are out of band of Druid's `windowPeriod`. Druid realtime ingestion -only accepts events within a configurable windowPeriod of the current time. You can verify this is what is happening by looking at the logs of your real-time process for log lines containing "ingest/events/*". These metrics will indicate the events ingested, rejected, etc. -We recommend using batch ingestion methods for historical data in production. - ### Batch Ingestion - -If you are trying to batch load historical data but no events are being loaded, make sure the interval of your ingestion spec actually encapsulates the interval of your data. Events outside this interval are dropped. + +If you are trying to batch load historical data but no events are being loaded, make sure the interval of your ingestion spec actually encapsulates the interval of your data. Events outside this interval are dropped. ## What types of data does Druid support? @@ -40,13 +40,13 @@ Druid can ingest JSON, CSV, TSV and other delimited data out of the box. Druid s ## Not all of my events were ingested -Druid will reject events outside of a window period. The best way to see if events are being rejected is to check the [Druid ingest metrics](../operations/metrics.html). +Druid will reject events outside of a window period. The best way to see if events are being rejected is to check the [Druid ingest metrics](../operations/metrics.md). -If the number of ingested events seem correct, make sure your query is correctly formed. If you included a `count` aggregator in your ingestion spec, you will need to query for the results of this aggregate with a `longSum` aggregator. Issuing a query with a count aggregator will count the number of Druid rows, which includes [roll-up](../design/index.html). +If the number of ingested events seem correct, make sure your query is correctly formed. If you included a `count` aggregator in your ingestion spec, you will need to query for the results of this aggregate with a `longSum` aggregator. Issuing a query with a count aggregator will count the number of Druid rows, which includes [roll-up](../design/index.md). ## Where do my Druid segments end up after ingestion? -Depending on what `druid.storage.type` is set to, Druid will upload segments to some [Deep Storage](../dependencies/deep-storage.html). Local disk is used as the default deep storage. +Depending on what `druid.storage.type` is set to, Druid will upload segments to some [Deep Storage](../dependencies/deep-storage.md). Local disk is used as the default deep storage. ## My stream ingest is not handing segments off @@ -64,11 +64,11 @@ Other common reasons that hand-off fails are as follows: ## How do I get HDFS to work? -Make sure to include the `druid-hdfs-storage` and all the hadoop configuration, dependencies (that can be obtained by running command `hadoop classpath` on a machine where hadoop has been setup) in the classpath. And, provide necessary HDFS settings as described in [Deep Storage](../dependencies/deep-storage.html) . +Make sure to include the `druid-hdfs-storage` and all the hadoop configuration, dependencies (that can be obtained by running command `hadoop classpath` on a machine where hadoop has been setup) in the classpath. And, provide necessary HDFS settings as described in [deep storage](../dependencies/deep-storage.md) . ## I don't see my Druid segments on my Historical processes -You can check the Coordinator console located at `:`. Make sure that your segments have actually loaded on [Historical processes](../design/historical.html). If your segments are not present, check the Coordinator logs for messages about capacity of replication errors. One reason that segments are not downloaded is because Historical processes have maxSizes that are too small, making them incapable of downloading more data. You can change that with (for example): +You can check the Coordinator console located at `:`. Make sure that your segments have actually loaded on [Historical processes](../design/historical.md). If your segments are not present, check the Coordinator logs for messages about capacity of replication errors. One reason that segments are not downloaded is because Historical processes have maxSizes that are too small, making them incapable of downloading more data. You can change that with (for example): ``` -Ddruid.segmentCache.locations=[{"path":"/tmp/druid/storageLocation","maxSize":"500000000000"}] @@ -77,15 +77,15 @@ You can check the Coordinator console located at `:`. Make ## My queries are returning empty results -You can use a [segment metadata query](../querying/segmentmetadataquery.html) for the dimensions and metrics that have been created for your datasource. Make sure that the name of the aggregators you use in your query match one of these metrics. Also make sure that the query interval you specify match a valid time range where data exists. +You can use a [segment metadata query](../querying/segmentmetadataquery.md) for the dimensions and metrics that have been created for your datasource. Make sure that the name of the aggregators you use in your query match one of these metrics. Also make sure that the query interval you specify match a valid time range where data exists. ## How can I Reindex existing data in Druid with schema changes? You can use IngestSegmentFirehose with index task to ingest existing druid segments using a new schema and change the name, dimensions, metrics, rollup, etc. of the segment. -See [Firehose](../ingestion/firehose.html) for more details on IngestSegmentFirehose. +See [Firehose](../ingestion/native-batch.md#firehoses) for more details on IngestSegmentFirehose. Or, if you use hadoop based ingestion, then you can use "dataSource" input spec to do reindexing. -See [Update Existing Data](../ingestion/update-existing-data.html) for more details. +See the [Update existing data](../ingestion/data-management.md#update) section of the data management page for more details. ## How can I change the granularity of existing data in Druid? @@ -95,11 +95,11 @@ To do this use the IngestSegmentFirehose and run an indexer task. The IngestSegm Typically the above will be run as a batch job to say everyday feed in a chunk of data and aggregate it. Or, if you use hadoop based ingestion, then you can use "dataSource" input spec to do reindexing. -See [Update Existing Data](../ingestion/update-existing-data.html) for more details. +See the [Update existing data](../ingestion/data-management.md#update) section of the data management page for more details. ## Real-time ingestion seems to be stuck -There are a few ways this can occur. Druid will throttle ingestion to prevent out of memory problems if the intermediate persists are taking too long or if hand-off is taking too long. If your process logs indicate certain columns are taking a very long time to build (for example, if your segment granularity is hourly, but creating a single column takes 30 minutes), you should re-evaluate your configuration or scale up your real-time ingestion. +There are a few ways this can occur. Druid will throttle ingestion to prevent out of memory problems if the intermediate persists are taking too long or if hand-off is taking too long. If your process logs indicate certain columns are taking a very long time to build (for example, if your segment granularity is hourly, but creating a single column takes 30 minutes), you should re-evaluate your configuration or scale up your real-time ingestion. ## More information diff --git a/docs/content/ingestion/hadoop.md b/docs/ingestion/hadoop.md similarity index 62% rename from docs/content/ingestion/hadoop.md rename to docs/ingestion/hadoop.md index 100526043db7..c62cbe397110 100644 --- a/docs/content/ingestion/hadoop.md +++ b/docs/ingestion/hadoop.md @@ -1,6 +1,7 @@ --- -layout: doc_page -title: "Hadoop-based Batch Ingestion" +id: hadoop +title: "Hadoop-based ingestion" +sidebar_label: "Hadoop-based" --- -# Hadoop-based Batch Ingestion - Apache Hadoop-based batch ingestion in Apache Druid (incubating) is supported via a Hadoop-ingestion task. These tasks can be posted to a running -instance of a Druid [Overlord](../design/overlord.html). +instance of a Druid [Overlord](../design/overlord.md). Please refer to our [Hadoop-based vs. native batch comparison table](index.md#batch) for +comparisons between Hadoop-based, native batch (simple), and native batch (parallel) ingestion. -Please check [Hadoop-based Batch Ingestion VS Native Batch Ingestion](./hadoop-vs-native-batch.html) for differences between native batch ingestion and Hadoop-based ingestion. +To run a Hadoop-based ingestion task, write an ingestion spec as specified below. Then POST it to the +[`/druid/indexer/v1/task`](../operations/api-reference.html#tasks) endpoint on the Overlord, or use the +`bin/post-index-task` script included with Druid. -## Command Line Hadoop Indexer +## Tutorial -If you don't want to use a full indexing service to use Hadoop to get data into Druid, you can also use the standalone command line Hadoop indexer. -See [here](../ingestion/command-line-hadoop-indexer.html) for more info. +This page contains reference documentation for Hadoop-based ingestion. +For a walk-through instead, check out the [Loading from Apache Hadoop](../tutorials/tutorial-batch-hadoop.md) tutorial. ## Task syntax @@ -105,17 +107,18 @@ A sample task is shown below: |property|description|required?| |--------|-----------|---------| |type|The task type, this should always be "index_hadoop".|yes| -|spec|A Hadoop Index Spec. See [Ingestion](../ingestion/ingestion-spec.html)|yes| +|spec|A Hadoop Index Spec. See [Ingestion](../ingestion/index.md)|yes| |hadoopDependencyCoordinates|A JSON array of Hadoop dependency coordinates that Druid will use, this property will override the default Hadoop coordinates. Once specified, Druid will look for those Hadoop dependencies from the location specified by `druid.extensions.hadoopDependenciesDir`|no| |classpathPrefix|Classpath that will be pre-appended for the Peon process.|no| -also note that, druid automatically computes the classpath for hadoop job containers that run in hadoop cluster. But, in case of conflicts between hadoop and druid's dependencies, you can manually specify the classpath by setting `druid.extensions.hadoopContainerDruidClasspath` property. See the extensions config in [base druid configuration](../configuration/index.html#extensions). +Also note that Druid automatically computes the classpath for Hadoop job containers that run in the Hadoop cluster. But in case of conflicts between Hadoop and Druid's dependencies, you can manually specify the classpath by setting `druid.extensions.hadoopContainerDruidClasspath` property. See the extensions config in [base druid configuration](../configuration/index.html#extensions). -## DataSchema +## `dataSchema` -This field is required. See [Ingestion Spec DataSchema](../ingestion/ingestion-spec.html#dataschema). +This field is required. See the [`dataSchema`](index.md#dataschema) section of the main ingestion page for details on +what it should contain. -## IOConfig +## `ioConfig` This field is required. @@ -123,10 +126,10 @@ This field is required. |-----|----|-----------|--------| |type|String|This should always be 'hadoop'.|yes| |inputSpec|Object|A specification of where to pull the data in from. See below.|yes| -|segmentOutputPath|String|The path to dump segments into.|Only used by the [CLI Hadoop Indexer](../ingestion/command-line-hadoop-indexer.html). This field must be null otherwise.| -|metadataUpdateSpec|Object|A specification of how to update the metadata for the druid cluster these segments belong to.|Only used by the [CLI Hadoop Indexer](../ingestion/command-line-hadoop-indexer.html). This field must be null otherwise.| +|segmentOutputPath|String|The path to dump segments into.|Only used by the [Command-line Hadoop indexer](#cli). This field must be null otherwise.| +|metadataUpdateSpec|Object|A specification of how to update the metadata for the druid cluster these segments belong to.|Only used by the [Command-line Hadoop indexer](#cli). This field must be null otherwise.| -### InputSpec specification +### `inputSpec` There are multiple types of inputSpecs: @@ -168,21 +171,109 @@ s3n://billy-bucket/the/data/is/here/y=2012/m=06/d=01/H=23 #### `dataSource` -Read Druid segments. See [here](../ingestion/update-existing-data.html) for more information. +This is a type of `inputSpec` that reads data already stored inside Druid. This is used to allow "re-indexing" data and for "delta-ingestion" described later in `multi` type inputSpec. + +|Field|Type|Description|Required| +|-----|----|-----------|--------| +|type|String.|This should always be 'dataSource'.|yes| +|ingestionSpec|JSON object.|Specification of Druid segments to be loaded. See below.|yes| +|maxSplitSize|Number|Enables combining multiple segments into single Hadoop InputSplit according to size of segments. With -1, druid calculates max split size based on user specified number of map task(mapred.map.tasks or mapreduce.job.maps). By default, one split is made for one segment. maxSplitSize is specified in bytes.|no| +|useNewAggs|Boolean|If "false", then list of aggregators in "metricsSpec" of hadoop indexing task must be same as that used in original indexing task while ingesting raw data. Default value is "false". This field can be set to "true" when "inputSpec" type is "dataSource" and not "multi" to enable arbitrary aggregators while reindexing. See below for "multi" type support for delta-ingestion.|no| + +Here is what goes inside `ingestionSpec`: + +|Field|Type|Description|Required| +|-----|----|-----------|--------| +|dataSource|String|Druid dataSource name from which you are loading the data.|yes| +|intervals|List|A list of strings representing ISO-8601 Intervals.|yes| +|segments|List|List of segments from which to read data from, by default it is obtained automatically. You can obtain list of segments to put here by making a POST query to Coordinator at url /druid/coordinator/v1/metadata/datasources/segments?full with list of intervals specified in the request paylod e.g. ["2012-01-01T00:00:00.000/2012-01-03T00:00:00.000", "2012-01-05T00:00:00.000/2012-01-07T00:00:00.000"]. You may want to provide this list manually in order to ensure that segments read are exactly same as they were at the time of task submission, task would fail if the list provided by the user does not match with state of database when the task actually runs.|no| +|filter|JSON|See [Filters](../querying/filters.md)|no| +|dimensions|Array of String|Name of dimension columns to load. By default, the list will be constructed from parseSpec. If parseSpec does not have an explicit list of dimensions then all the dimension columns present in stored data will be read.|no| +|metrics|Array of String|Name of metric columns to load. By default, the list will be constructed from the "name" of all the configured aggregators.|no| +|ignoreWhenNoSegments|boolean|Whether to ignore this ingestionSpec if no segments were found. Default behavior is to throw error when no segments were found.|no| + +For example + +```json +"ioConfig" : { + "type" : "hadoop", + "inputSpec" : { + "type" : "dataSource", + "ingestionSpec" : { + "dataSource": "wikipedia", + "intervals": ["2014-10-20T00:00:00Z/P2W"] + } + }, + ... +} +``` #### `multi` -Read multiple sources of data. See [here](../ingestion/update-existing-data.html) for more information. +This is a composing inputSpec to combine other inputSpecs. This inputSpec is used for delta ingestion. You can also use a `multi` inputSpec to combine data from multiple dataSources. However, each particular dataSource can only be specified one time. +Note that, "useNewAggs" must be set to default value false to support delta-ingestion. -## TuningConfig +|Field|Type|Description|Required| +|-----|----|-----------|--------| +|children|Array of JSON objects|List of JSON objects containing other inputSpecs.|yes| + +For example: + +```json +"ioConfig" : { + "type" : "hadoop", + "inputSpec" : { + "type" : "multi", + "children": [ + { + "type" : "dataSource", + "ingestionSpec" : { + "dataSource": "wikipedia", + "intervals": ["2012-01-01T00:00:00.000/2012-01-03T00:00:00.000", "2012-01-05T00:00:00.000/2012-01-07T00:00:00.000"], + "segments": [ + { + "dataSource": "test1", + "interval": "2012-01-01T00:00:00.000/2012-01-03T00:00:00.000", + "version": "v2", + "loadSpec": { + "type": "local", + "path": "/tmp/index1.zip" + }, + "dimensions": "host", + "metrics": "visited_sum,unique_hosts", + "shardSpec": { + "type": "none" + }, + "binaryVersion": 9, + "size": 2, + "identifier": "test1_2000-01-01T00:00:00.000Z_3000-01-01T00:00:00.000Z_v2" + } + ] + } + }, + { + "type" : "static", + "paths": "/path/to/more/wikipedia/data/" + } + ] + }, + ... +} +``` + +It is STRONGLY RECOMMENDED to provide list of segments in `dataSource` inputSpec explicitly so that your delta ingestion task is idempotent. You can obtain that list of segments by making following call to the Coordinator. +POST `/druid/coordinator/v1/metadata/datasources/{dataSourceName}/segments?full` +Request Body: [interval1, interval2,...] for example ["2012-01-01T00:00:00.000/2012-01-03T00:00:00.000", "2012-01-05T00:00:00.000/2012-01-07T00:00:00.000"] + +## `tuningConfig` The tuningConfig is optional and default parameters will be used if no tuningConfig is specified. |Field|Type|Description|Required| |-----|----|-----------|--------| -|workingPath|String|The working path to use for intermediate results (results between Hadoop jobs).|Only used by the [CLI Hadoop Indexer](../ingestion/command-line-hadoop-indexer.html). The default is '/tmp/druid-indexing'. This field must be null otherwise.| +|workingPath|String|The working path to use for intermediate results (results between Hadoop jobs).|Only used by the [Command-line Hadoop indexer](#cli). The default is '/tmp/druid-indexing'. This field must be null otherwise.| |version|String|The version of created segments. Ignored for HadoopIndexTask unless useExplicitVersion is set to true|no (default == datetime that indexing starts at)| -|partitionsSpec|Object|A specification of how to partition each time bucket into segments. Absence of this property means no partitioning will occur. See 'Partitioning specification' below.|no (default == 'hadoop_hashed_partitions')| +|partitionsSpec|Object|A specification of how to partition each time bucket into segments. Absence of this property means no partitioning will occur. See [`partitionsSpec`](#partitionsspec) below.|no (default == 'hadoop_hashed_partitions')| |maxRowsInMemory|Integer|The number of rows to aggregate before persisting. Note that this is the number of post-aggregation rows which may not be equal to the number of input events due to roll-up. This is used to manage the required JVM heap size. Normally user does not need to set this, but depending on the nature of data, if rows are short in terms of bytes, user may not want to store a million rows in memory and this value should be set.|no (default == 1000000)| |maxBytesInMemory|Long|The number of bytes to aggregate in heap memory before persisting. Normally this is computed internally and user does not need to set it. This is based on a rough estimate of memory usage and not actual usage. The maximum heap memory usage for indexing is maxBytesInMemory * (2 + maxPendingPersists).|no (default == One-sixth of max JVM memory)| |leaveIntermediate|Boolean|Leave behind intermediate files (for debugging) in the workingPath when a job completes, whether it passes or fails.|no (default == false)| @@ -192,16 +283,16 @@ The tuningConfig is optional and default parameters will be used if no tuningCon |combineText|Boolean|Use CombineTextInputFormat to combine multiple files into a file split. This can speed up Hadoop jobs when processing a large number of small files.|no (default == false)| |useCombiner|Boolean|Use Hadoop combiner to merge rows at mapper if possible.|no (default == false)| |jobProperties|Object|A map of properties to add to the Hadoop job configuration, see below for details.|no (default == null)| -|indexSpec|Object|Tune how data is indexed. See [IndexSpec](#indexspec) for more information.|no| -|indexSpecForIntermediatePersists|defines segment storage format options to be used at indexing time for intermediate persisted temporary segments. this can be used to disable dimension/metric compression on intermediate segments to reduce memory required for final merging. however, disabling compression on intermediate segments might increase page cache use while they are used before getting merged into final segment published, see [IndexSpec](#indexspec) for possible values.|no (default = same as indexSpec)| +|indexSpec|Object|Tune how data is indexed. See [`indexSpec`](index.md#indexspec) on the main ingestion page for more information.|no| +|indexSpecForIntermediatePersists|defines segment storage format options to be used at indexing time for intermediate persisted temporary segments. this can be used to disable dimension/metric compression on intermediate segments to reduce memory required for final merging. however, disabling compression on intermediate segments might increase page cache use while they are used before getting merged into final segment published, see [`indexSpec`](index.md#indexspec) for possible values.|no (default = same as indexSpec)| |numBackgroundPersistThreads|Integer|The number of new background threads to use for incremental persists. Using this feature causes a notable increase in memory pressure and cpu usage but will make the job finish more quickly. If changing from the default of 0 (use current thread for persists), we recommend setting it to 1.|no (default == 0)| -|forceExtendableShardSpecs|Boolean|Forces use of extendable shardSpecs. Hash-based partitioning always uses an extendable shardSpec. For single-dimension partitioning, this option should be set to true to use an extendable shardSpec. For partitioning, please check [Partitioning specification](#partitioning-specification). This option can be useful when you need to append more data to existing dataSource.|no (default = false)| +|forceExtendableShardSpecs|Boolean|Forces use of extendable shardSpecs. Hash-based partitioning always uses an extendable shardSpec. For single-dimension partitioning, this option should be set to true to use an extendable shardSpec. For partitioning, please check [Partitioning specification](#partitionsspec). This option can be useful when you need to append more data to existing dataSource.|no (default = false)| |useExplicitVersion|Boolean|Forces HadoopIndexTask to use version.|no (default = false)| |logParseExceptions|Boolean|If true, log an error message when a parsing exception occurs, containing information about the row where the error occurred.|false|no| |maxParseExceptions|Integer|The maximum number of parse exceptions that can occur before the task halts ingestion and fails. Overrides `ignoreInvalidRows` if `maxParseExceptions` is defined.|unlimited|no| |useYarnRMJobStatusFallback|Boolean|If the Hadoop jobs created by the indexing task are unable to retrieve their completion status from the JobHistory server, and this parameter is true, the indexing task will try to fetch the application status from `http:///ws/v1/cluster/apps/`, where `` is the value of `yarn.resourcemanager.webapp.address` in your Hadoop configuration. This flag is intended as a fallback for cases where an indexing task's jobs succeed, but the JobHistory server is unavailable, causing the indexing task to fail because it cannot determine the job statuses.|no (default = true)| -### jobProperties field of TuningConfig +### `jobProperties` ```json "tuningConfig" : { @@ -216,34 +307,10 @@ The tuningConfig is optional and default parameters will be used if no tuningCon Hadoop's [MapReduce documentation](https://hadoop.apache.org/docs/stable/hadoop-mapreduce-client/hadoop-mapreduce-client-core/mapred-default.xml) lists the possible configuration parameters. With some Hadoop distributions, it may be necessary to set `mapreduce.job.classpath` or `mapreduce.job.user.classpath.first` -to avoid class loading issues. See the [working with different Hadoop versions documentation](../operations/other-hadoop.html) +to avoid class loading issues. See the [working with different Hadoop versions documentation](../operations/other-hadoop.md) for more details. -### IndexSpec - -|Field|Type|Description|Required| -|-----|----|-----------|--------| -|bitmap|Object|Compression format for bitmap indexes. Should be a JSON object; see below for options.|no (defaults to Concise)| -|dimensionCompression|String|Compression format for dimension columns. Choose from `LZ4`, `LZF`, or `uncompressed`.|no (default == `LZ4`)| -|metricCompression|String|Compression format for metric columns. Choose from `LZ4`, `LZF`, `uncompressed`, or `none`.|no (default == `LZ4`)| -|longEncoding|String|Encoding format for metric and dimension columns with type long. Choose from `auto` or `longs`. `auto` encodes the values using offset or lookup table depending on column cardinality, and store them with variable size. `longs` stores the value as is with 8 bytes each.|no (default == `longs`)| - -#### Bitmap types - -For Concise bitmaps: - -|Field|Type|Description|Required| -|-----|----|-----------|--------| -|type|String|Must be `concise`.|yes| - -For Roaring bitmaps: - -|Field|Type|Description|Required| -|-----|----|-----------|--------| -|type|String|Must be `roaring`.|yes| -|compressRunOnSerialization|Boolean|Use a run-length encoding where it is estimated as more space efficient.|no (default == `true`)| - -## Partitioning specification +## `partitionsSpec` Segments are always partitioned based on timestamp (according to the granularitySpec) and may be further partitioned in some other way depending on partition type. Druid supports two types of partitioning strategies: `hadoop_hashed_partitions` (based on the @@ -299,13 +366,13 @@ The configuration options are: |partitionDimension|The dimension to partition on. Leave blank to select a dimension automatically.|no| |assumeGrouped|Assume that input data has already been grouped on time and dimensions. Ingestion will run faster, but may choose sub-optimal partitions if this assumption is violated.|no| -## Remote Hadoop Cluster +## Remote Hadoop clusters -If you have a remote Hadoop cluster, make sure to include the folder holding your configuration `*.xml` files in your Druid `_common` configuration folder. +If you have a remote Hadoop cluster, make sure to include the folder holding your configuration `*.xml` files in your Druid `_common` configuration folder. -If you are having dependency problems with your version of Hadoop and the version compiled with Druid, please see [these docs](../operations/other-hadoop.html). +If you are having dependency problems with your version of Hadoop and the version compiled with Druid, please see [these docs](../operations/other-hadoop.md). -## Using Elastic MapReduce +## Elastic MapReduce If your cluster is running on Amazon Web Services, you can use Elastic MapReduce (EMR) to index data from S3. To do this: @@ -318,17 +385,17 @@ should be in advanced mode under "Edit software settings": classification=yarn-site,properties=[mapreduce.reduce.memory.mb=6144,mapreduce.reduce.java.opts=-server -Xms2g -Xmx2g -Duser.timezone=UTC -Dfile.encoding=UTF-8 -XX:+PrintGCDetails -XX:+PrintGCTimeStamps,mapreduce.map.java.opts=758,mapreduce.map.java.opts=-server -Xms512m -Xmx512m -Duser.timezone=UTC -Dfile.encoding=UTF-8 -XX:+PrintGCDetails -XX:+PrintGCTimeStamps,mapreduce.task.timeout=1800000] ``` -- Follow the instructions under "[Configure Hadoop for data -loads](../tutorials/cluster.html#configure-cluster-for-hadoop-data-loads)" using the XML files from -`/etc/hadoop/conf` on your EMR master. +- Follow the instructions under +[Configure for connecting to Hadoop](../tutorials/cluster.md#hadoop) using the XML files from `/etc/hadoop/conf` +on your EMR master. -## Secured Hadoop Cluster +## Kerberized Hadoop clusters By default druid can use the exisiting TGT kerberos ticket available in local kerberos key cache. -Although TGT ticket has a limited life cycle, +Although TGT ticket has a limited life cycle, therefore you need to call `kinit` command periodically to ensure validity of TGT ticket. To avoid this extra external cron job script calling `kinit` periodically, - you can provide the principal name and keytab location and druid will do the authentication transparently at startup and job launching time. + you can provide the principal name and keytab location and druid will do the authentication transparently at startup and job launching time. |Property|Possible Values|Description|Default| |--------|---------------|-----------|-------| @@ -361,5 +428,79 @@ mechanisms described in the [Using other Hadoop distributions](#using-other-hado Druid works out of the box with many Hadoop distributions. If you are having dependency conflicts between Druid and your version of Hadoop, you can try -searching for a solution in the [Druid user groups](https://groups.google.com/forum/#!forum/druid- -user), or reading the Druid [Different Hadoop Versions](../operations/other-hadoop.html) documentation. +searching for a solution in the [Druid user groups](https://groups.google.com/forum/#!forum/druid-user), or reading the +Druid [Different Hadoop Versions](../operations/other-hadoop.md) documentation. + + + +## Command line (non-task) version + +To run: + +``` +java -Xmx256m -Duser.timezone=UTC -Dfile.encoding=UTF-8 -classpath lib/*: org.apache.druid.cli.Main index hadoop +``` + +### Options + +- "--coordinate" - provide a version of Apache Hadoop to use. This property will override the default Hadoop coordinates. Once specified, Apache Druid (incubating) will look for those Hadoop dependencies from the location specified by `druid.extensions.hadoopDependenciesDir`. +- "--no-default-hadoop" - don't pull down the default hadoop version + +### Spec file + +The spec file needs to contain a JSON object where the contents are the same as the "spec" field in the Hadoop index task. See [Hadoop Batch Ingestion](../ingestion/hadoop.md) for details on the spec format. + +In addition, a `metadataUpdateSpec` and `segmentOutputPath` field needs to be added to the ioConfig: + +``` + "ioConfig" : { + ... + "metadataUpdateSpec" : { + "type":"mysql", + "connectURI" : "jdbc:mysql://localhost:3306/druid", + "password" : "diurd", + "segmentTable" : "druid_segments", + "user" : "druid" + }, + "segmentOutputPath" : "/MyDirectory/data/index/output" + }, +``` + +and a `workingPath` field needs to be added to the tuningConfig: + +``` + "tuningConfig" : { + ... + "workingPath": "/tmp", + ... + } +``` + +#### Metadata Update Job Spec + +This is a specification of the properties that tell the job how to update metadata such that the Druid cluster will see the output segments and load them. + +|Field|Type|Description|Required| +|-----|----|-----------|--------| +|type|String|"metadata" is the only value available.|yes| +|connectURI|String|A valid JDBC url to metadata storage.|yes| +|user|String|Username for db.|yes| +|password|String|password for db.|yes| +|segmentTable|String|Table to use in DB.|yes| + +These properties should parrot what you have configured for your [Coordinator](../design/coordinator.md). + +#### segmentOutputPath Config + +|Field|Type|Description|Required| +|-----|----|-----------|--------| +|segmentOutputPath|String|the path to dump segments into.|yes| + +#### workingPath Config + +|Field|Type|Description|Required| +|-----|----|-----------|--------| +|workingPath|String|the working path to use for intermediate results (results between Hadoop jobs).|no (default == '/tmp/druid-indexing')| + +Please note that the command line Hadoop indexer doesn't have the locking capabilities of the indexing service, so if you choose to use it, +you have to take caution to not override segments created by real-time processing (if you that a real-time pipeline set up). diff --git a/docs/ingestion/index.md b/docs/ingestion/index.md new file mode 100644 index 000000000000..66de3811a916 --- /dev/null +++ b/docs/ingestion/index.md @@ -0,0 +1,769 @@ +--- +id: index +title: "Ingestion" +--- + + + +## Overview + +All data in Druid is organized into _segments_, which are data files that generally have up to a few million rows each. +Loading data in Druid is called _ingestion_ or _indexing_ and consists of reading data from a source system and creating +segments based on that data. + +In most ingestion methods, the work of loading data is done by Druid MiddleManager processes. One exception is +Hadoop-based ingestion, where this work is instead done using a Hadoop MapReduce job on YARN (although MiddleManager +processes are still involved in starting and monitoring the Hadoop jobs). Once segments have been generated and stored +in [deep storage](../dependencies/deep-storage.md), they will be loaded by Historical processes. For more details on +how this works under the hood, see the [Storage design](../design/architecture.md#storage-design) section of Druid's design +documentation. + +## How to use this documentation + +This **page you are currently reading** provides information about universal Druid ingestion concepts, and about +configurations that are common to all [ingestion methods](#ingestion-methods). + +The **individual pages for each ingestion method** provide additional information about concepts and configurations +that are unique to each ingestion method. + +We recommend reading (or at least skimming) this universal page first, and then referring to the page for the +ingestion method or methods that you have chosen. + +## Ingestion methods + +The table below lists Druid's most common data ingestion methods, along with comparisons to help you choose +the best one for your situation. Each ingestion method supports its own set of source systems to pull from. For details +about how each method works, as well as configuration properties specific to that method, check out its documentation +page. + +### Streaming + +The most recommended, and most popular, method of streaming ingestion is the +[Kafka indexing service](../development/extensions-core/kafka-ingestion.md) that reads directly from Kafka. The Kinesis +indexing service also works well if you prefer Kinesis. + +This table compares the major available options: + +| **Method** | [Kafka](../development/extensions-core/kafka-ingestion.md) | [Kinesis](../development/extensions-core/kinesis-ingestion.md) | [Tranquility](tranquility.md) | +|---|-----|--------------|------------| +| **Supervisor type** | `kafka` | `kinesis` | N/A | +| **How it works** | Druid reads directly from Apache Kafka. | Druid reads directly from Amazon Kinesis. | Tranquility, a library that ships separately from Druid, is used to push data into Druid. | +| **Can ingest late data?** | Yes | Yes | No (late data is dropped based on the `windowPeriod` config) | +| **Exactly-once guarantees?** | Yes | Yes | No | + +### Batch + +When doing batch loads from files, you should use one-time [tasks](tasks.md), and you have three options: `index` +(native batch; single-task), `index_parallel` (native batch; parallel), or `index_hadoop` (Hadoop-based). + +In general, we recommend native batch whenever it meets your needs, since the setup is simpler (it does not depend on +an external Hadoop cluster). However, there are still scenarios where Hadoop-based batch ingestion is the right choice, +especially due to its support for custom partitioning options and reading binary data formats. + +This table compares the three available options: + +| **Method** | [Native batch (simple)](native-batch.html#simple-task) | [Native batch (parallel)](native-batch.html#parallel-task) | [Hadoop-based](hadoop.html) | +|---|-----|--------------|------------| +| **Task type** | `index` | `index_parallel` | `index_hadoop` | +| **Parallel?** | No. Each task is single-threaded. | Yes, if firehose is splittable and `maxNumConcurrentSubTasks` > 1 in tuningConfig. See [firehose documentation](native-batch.md#firehoses) for details. | Yes, always. | +| **Can append or overwrite?** | Yes, both. | Yes, both. | Overwrite only. | +| **External dependencies** | None. | None. | Hadoop cluster (Druid submits Map/Reduce jobs). | +| **Input locations** | Any [firehose](native-batch.md#firehoses). | Any [firehose](native-batch.md#firehoses). | Any Hadoop FileSystem or Druid datasource. | +| **File formats** | Text file formats (CSV, TSV, JSON). Support for binary formats is coming in a future release. | Text file formats (CSV, TSV, JSON). Support for binary formats is coming in a future release. | Any Hadoop InputFormat. | +| **[Rollup modes](#rollup)** | Perfect if `forceGuaranteedRollup` = true in the [`tuningConfig`](native-batch.md#tuningconfig).| Perfect if `forceGuaranteedRollup` = true in the [`tuningConfig`](native-batch.md#tuningconfig). | Always perfect. | +| **Partitioning options** | Hash-based partitioning is supported when `forceGuaranteedRollup` = true in the [`tuningConfig`](native-batch.md#tuningconfig). | Hash-based partitioning (when `forceGuaranteedRollup` = true). | Hash-based or range-based partitioning via [`partitionsSpec`](hadoop.md#partitionsspec). | + + + +## Druid's data model + +### Datasources + +Druid data is stored in [datasources](index.html#datasources), which are similar to tables in a traditional RDBMS. Druid +offers a unique data modeling system that bears similarity to both relational and timeseries models. + +### Primary timestamp + +Druid schemas must always include a primary timestamp. The primary timestamp is used for +[partitioning and sorting](#partitioning) your data. Druid queries are able to rapidly identify and retrieve data +corresponding to time ranges of the primary timestamp column. Druid is also able to use the primary timestamp column +for time-based [data management operations](data-management.html) such as dropping time chunks, overwriting time chunks, +and time-based retention rules. + +The primary timestamp is parsed based on the [`timestampSpec`](#timestampspec). In addition, the +[`granularitySpec`](#granularityspec) controls other important operations that are based on the primary timestamp. +Regardless of which input field the primary timestamp is read from, it will always be stored as a column named `__time` +in your Druid datasource. + +If you have more than one timestamp column, you can store the others as +[secondary timestamps](schema-design.md#secondary-timestamps). + +### Dimensions + +Dimensions are columns that are stored as-is and can be used for any purpose. You can group, filter, or apply +aggregators to dimensions at query time in an ad-hoc manner. If you run with [rollup](#rollup) disabled, then the set of +dimensions is simply treated like a set of columns to ingest, and behaves exactly as you would expect from a typical +database that does not support a rollup feature. + +Dimensions are configured through the [`dimensionsSpec`](#dimensionsspec). + +### Metrics + +Metrics are columns that are stored in an aggregated form. They are most useful when [rollup](#rollup) is enabled. +Specifying a metric allows you to choose an aggregation function for Druid to apply to each row during ingestion. This +has two benefits: + +1. If [rollup](#rollup) is enabled, multiple rows can be collapsed into one row even while retaining summary +information. In the [rollup tutorial](../tutorials/tutorial-rollup.md), this is used to collapse netflow data to a +single row per `(minute, srcIP, dstIP)` tuple, while retaining aggregate information about total packet and byte counts. +2. Some aggregators, especially approximate ones, can be computed faster at query time even on non-rolled-up data if +they are partially computed at ingestion time. + +Metrics are configured through the [`metricsSpec`](#metricsspec). + +## Rollup + +### What is rollup? + +Druid can roll up data as it is ingested to minimize the amount of raw data that needs to be stored. Rollup is +a form of summarization or pre-aggregation. In practice, rolling up data can dramatically reduce the size of data that +needs to be stored, reducing row counts by potentially orders of magnitude. This storage reduction does come at a cost: +as we roll up data, we lose the ability to query individual events. + +When rollup is disabled, Druid loads each row as-is without doing any form of pre-aggregation. This mode is similar +to what you would expect from a typical database that does not support a rollup feature. + +When rollup is enabled, then any rows that have identical [dimensions](#dimensions) and [timestamp](#primary-timestamp) +to each other (after [`queryGranularity`-based truncation](#granularityspec)) can be collapsed, or _rolled up_, into a +single row in Druid. + +By default, rollup is enabled. + +### Enabling or disabling rollup + +Rollup is controlled by the `rollup` setting in the [`granularitySpec`](#granularityspec). By default, it is `true` +(enabled). Set this to `false` if you want Druid to store each record as-is, without any rollup summarization. + +### Example of rollup + +For an example of how to configure rollup, and of how the feature will modify your data, check out the +[rollup tutorial](../tutorials/tutorial-rollup.md). + +### Maximizing rollup ratio + +You can measure the rollup ratio of a datasource by comparing the number of rows in Druid with the number of ingested +events. The higher this number, the more benefit you are gaining from rollup. One way to do this is with a +[Druid SQL](../querying/sql.md) query like: + +```sql +SELECT SUM("cnt") / COUNT(*) * 1.0 FROM datasource +``` + +In this query, `cnt` should refer to a "count" type metric specified at ingestion time. See +[Counting the number of ingested events](schema-design.md#counting) on the "Schema design" page for more details about +how counting works when rollup is enabled. + +Tips for maximizing rollup: + +- Generally, the fewer dimensions you have, and the lower the cardinality of your dimensions, the better rollup ratios +you will achieve. +- Use [sketches](schema-design.html#sketches) to avoid storing high cardinality dimensions, which harm rollup ratios. +- Adjusting `queryGranularity` at ingestion time (for example, using `PT5M` instead of `PT1M`) increases the +likelihood of two rows in Druid having matching timestamps, and can improve your rollup ratios. +- It can be beneficial to load the same data into more than one Druid datasource. Some users choose to create a "full" +datasource that has rollup disabled (or enabled, but with a minimal rollup ratio) and an "abbreviated" datasource that +has fewer dimensions and a higher rollup ratio. When queries only involve dimensions in the "abbreviated" set, using +that datasource leads to much faster query times. This can often be done with just a small increase in storage +footprint, since abbreviated datasources tend to be substantially smaller. +- If you are using a [best-effort rollup](#best-effort-rollup) ingestion configuration that does not guarantee perfect +rollup, you can potentially improve your rollup ratio by switching to a guaranteed perfect rollup option, or by +[reindexing](data-management.md#compaction-and-reindexing) your data in the background after initial ingestion. + +### Best-effort rollup + +Some Druid ingestion methods guarantee _perfect rollup_, meaning that input data are perfectly aggregated at ingestion +time. Others offer _best-effort rollup_, meaning that input data might not be perfectly aggregated and thus there could +be multiple segments holding rows with the same timestamp and dimension values. + +In general, ingestion methods that offer best-effort rollup do this because they are either parallelizing ingestion +without a shuffling step (which would be required for perfect rollup), or because they are finalizing and publishing +segments before all data for a time chunk has been received, which we call _incremental publishing_. In both of these +cases, records that could theoretically be rolled up may end up in different segments. All types of streaming ingestion +run in this mode. + +Ingestion methods that guarantee perfect rollup do it with an additional preprocessing step to determine intervals +and partitioning before the actual data ingestion stage. This preprocessing step scans the entire input dataset, which +generally increases the time required for ingestion, but provides information necessary for perfect rollup. + +The following table shows how each method handles rollup: + +|Method|How it works| +|------|------------| +|[Native batch](native-batch.html)|`index_parallel` type is best-effort. `index` type may be either perfect or best-effort, based on configuration.| +|[Hadoop](hadoop.html)|Always perfect.| +|[Kafka indexing service](../development/extensions-core/kafka-ingestion.md)|Always best-effort.| +|[Kinesis indexing service](../development/extensions-core/kinesis-ingestion.md)|Always best-effort.| + +## Partitioning + +### Why partition? + +Optimal partitioning and sorting of segments within your datasources can have substantial impact on footprint and +performance. + +Druid datasources are always partitioned by time into _time chunks_, and each time chunk contains one or more segments. +This partitioning happens for all ingestion methods, and is based on the `segmentGranularity` parameter of your +ingestion spec's `dataSchema`. + +The segments within a particular time chunk may also be partitioned further, using options that vary based on the +ingestion method you have chosen. In general, doing this secondary partitioning using a particular dimension will +improve locality, meaning that rows with the same value for that dimension are stored together and can be accessed +quickly. + +You will usually get the best performance and smallest overall footprint by partitioning your data on some "natural" +dimension that you often filter by, if one exists. This will often improve compression - users have reported threefold +storage size decreases - and it also tends to improve query performance as well. + +> Partitioning and sorting are best friends! If you do have a "natural" partitioning dimension, you should also consider +> placing it first in the `dimensions` list of your `dimensionsSpec`, which tells Druid to sort rows within each segment +> by that column. This will often improve compression even more, beyond the improvement gained by partitioning alone. +> +> However, note that currently, Druid always sorts rows within a segment by timestamp first, even before the first +> dimension listed in your `dimensionsSpec`. This can prevent dimension sorting from being maximally effective. If +> necessary, you can work around this limitation by setting `queryGranularity` equal to `segmentGranularity` in your +> [`granularitySpec`](#granularityspec), which will set all timestamps within the segment to the same value, and by saving +> your "real" timestamp as a [secondary timestamp](schema-design.md#secondary-timestamps). This limitation may be removed +> in a future version of Druid. + +### How to set up partitioning + +Not all ingestion methods support an explicit partitioning configuration, and not all have equivalent levels of +flexibility. As of current Druid versions, If you are doing initial ingestion through a less-flexible method (like +Kafka) then you can use [reindexing techniques](data-management.html#compaction-and-reindexing) to repartition your data after it +is initially ingested. This is a powerful technique: you can use it to ensure that any data older than a certain +threshold is optimally partitioned, even as you continuously add new data from a stream. + +The following table shows how each ingestion method handles partitioning: + +|Method|How it works| +|------|------------| +|[Native batch](native-batch.html)|Configured using [`partitionsSpec`](native-batch.html#partitionsspec) inside the `tuningConfig`.| +|[Hadoop](hadoop.html)|Configured using [`partitionsSpec`](hadoop.html#partitionsspec) inside the `tuningConfig`.| +|[Kafka indexing service](../development/extensions-core/kafka-ingestion.md)|Partitioning in Druid is guided by how your Kafka topic is partitioned. You can also [reindex](data-management.html#compaction-and-reindexing) to repartition after initial ingestion.| +|[Kinesis indexing service](../development/extensions-core/kinesis-ingestion.md)|Partitioning in Druid is guided by how your Kinesis stream is sharded. You can also [reindex](data-management.html#compaction-and-reindexing) to repartition after initial ingestion.| + +> Note that, of course, one way to partition data is to load it into separate datasources. This is a perfectly viable +> approach and works very well when the number of datasources does not lead to excessive per-datasource overheads. If +> you go with this approach, then you can ignore this section, since it is describing how to set up partitioning +> _within a single datasource_. +> +> For more details on splitting data up into separate datasources, and potential operational considerations, refer +> to the [Multitenancy considerations](../querying/multitenancy.md) page. + + + +## Ingestion specs + +No matter what ingestion method you use, data is loaded into Druid using either one-time [tasks](tasks.html) or +ongoing "supervisors" (which run and supervised a set of tasks over time). In any case, part of the task or supervisor +definition is an _ingestion spec_. + +Ingestion specs consists of three main components: + +- [`dataSchema`](#dataschema), which configures the [datasource name](#datasource), [input row parser](#parser), + [primary timestamp](#timestampspec), [flattening of nested data](#flattenspec) (if needed), + [dimensions](#dimensionsspec), [metrics](#metricsspec), and [transforms and filters](#transformspec) (if needed). +- [`ioConfig`](#ioconfig), which tells Druid how to connect to the source system and . For more information, see the + documentation for each [ingestion method](#ingestion-methods). +- [`tuningConfig`](#tuningconfig), which controls various tuning parameters specific to each + [ingestion method](#ingestion-methods). + +Example ingestion spec for task type "index" (native batch): + +``` +{ + "type": "index", + "spec": { + "dataSchema": { + "dataSource": "wikipedia", + "parser": { + "type": "string", + "parseSpec": { + "format": "json", + "flattenSpec": { + "useFieldDiscovery": true, + "fields": [ + { "type": "path", "name": "userId", "expr": "$.user.id" } + ] + }, + "timestampSpec": { + "column": "timestamp", + "format": "auto" + }, + "dimensionsSpec": { + "dimensions": [ + { "type": "string", "page" }, + { "type": "string", "language" }, + { "type": "long", "name": "userId" } + ] + } + } + }, + "metricsSpec": [ + { "type": "count", "name": "count" }, + { "type": "doubleSum", "name": "bytes_added_sum", "fieldName": "bytes_added" }, + { "type": "doubleSum", "name": "bytes_deleted_sum", "fieldName": "bytes_deleted" } + ], + "granularitySpec": { + "segmentGranularity": "day", + "queryGranularity": "none", + "intervals": [ + "2013-08-31/2013-09-01" + ] + } + }, + "ioConfig": { + "type": "index", + "firehose": { + "type": "local", + "baseDir": "examples/indexing/", + "filter": "wikipedia_data.json" + } + }, + "tuningConfig": { + "type": "index" + } + } +} +``` + +The specific options supported by these sections will depend on the [ingestion method](#ingestion-methods) you have chosen. +For more examples, refer to the documentation for each ingestion method. + +You can also load data visually, without the need to write an ingestion spec, using the "Load data" functionality +available in Druid's [web console](../operations/druid-console.md). Druid's visual data loader supports +[Kafka](../development/extensions-core/kafka-ingestion.md), +[Kinesis](../development/extensions-core/kinesis-ingestion.md), and +[native batch](native-batch.html) mode. + +## `dataSchema` + +The `dataSchema` is a holder for the following components: + +- [datasource name](#datasource), [input row parser](#parser), + [primary timestamp](#timestampspec), [flattening of nested data](#flattenspec) (if needed), + [dimensions](#dimensionsspec), [metrics](#metricsspec), and [transforms and filters](#transformspec) (if needed). + +An example `dataSchema` is: + +``` +"dataSchema": { + "dataSource": "wikipedia", + "parser": { + "type": "string", + "parseSpec": { + "format": "json", + "flattenSpec": { + "useFieldDiscovery": true, + "fields": [ + { "type": "path", "name": "userId", "expr": "$.user.id" } + ] + }, + "timestampSpec": { + "column": "timestamp", + "format": "auto" + }, + "dimensionsSpec": { + "dimensions": [ + { "type": "string", "page" }, + { "type": "string", "language" }, + { "type": "long", "name": "userId" } + ] + } + } + }, + "metricsSpec": [ + { "type": "count", "name": "count" }, + { "type": "doubleSum", "name": "bytes_added_sum", "fieldName": "bytes_added" }, + { "type": "doubleSum", "name": "bytes_deleted_sum", "fieldName": "bytes_deleted" } + ], + "granularitySpec": { + "segmentGranularity": "day", + "queryGranularity": "none", + "intervals": [ + "2013-08-31/2013-09-01" + ] + } +} +``` + +### `dataSource` + +The `dataSource` is located in `dataSchema` → `dataSource` and is simply the name of the +[datasource](../design/architecture.html#datasources-and-segments) that data will be written to. An example +`dataSource` is: + +``` +"dataSource": "my-first-datasource" +``` + +### `parser` + +The `parser` is located in `dataSchema` → `parser` and is responsible for configuring a wide variety of +items related to parsing input records. + +For details about supported data formats, see the ["Data formats" page](data-formats.md). + +For details about major components of the `parseSpec`, refer to their subsections: + +- [`timestampSpec`](#timestampspec), responsible for configuring the [primary timestamp](#primary-timestamp). +- [`dimensionsSpec`](#dimensionsspec), responsible for configuring [dimensions](#dimensions). +- [`flattenSpec`](#flattenspec), responsible for flattening nested data formats. + +An example `parser` is: + +``` +"parser": { + "type": "string", + "parseSpec": { + "format": "json", + "flattenSpec": { + "useFieldDiscovery": true, + "fields": [ + { "type": "path", "name": "userId", "expr": "$.user.id" } + ] + }, + "timestampSpec": { + "column": "timestamp", + "format": "auto" + }, + "dimensionsSpec": { + "dimensions": [ + { "type": "string", "page" }, + { "type": "string", "language" }, + { "type": "long", "name": "userId" } + ] + } + } +} +``` + +### `timestampSpec` + +The `timestampSpec` is located in `dataSchema` → `parser` → `parseSpec` → `timestampSpec` and is responsible for +configuring the [primary timestamp](#primary-timestamp). An example `timestampSpec` is: + +``` +"timestampSpec": { + "column": "timestamp", + "format": "auto" +} +``` + +> Conceptually, after input data records are read, Druid applies ingestion spec components in a particular order: +> first [`flattenSpec`](#flattenspec), then [`timestampSpec`](#timestampspec), then [`transformSpec`](#transformspec), +> and finally [`dimensionsSpec`](#dimensionsspec) and [`metricsSpec`](#metricsspec). Keep this in mind when writing +> your ingestion spec. + +A `timestampSpec` can have the following components: + +|Field|Description|Default| +|-----|-----------|-------| +|column|Input row field to read the primary timestamp from.

Regardless of the name of this input field, the primary timestamp will always be stored as a column named `__time` in your Druid datasource.|timestamp| +|format|Timestamp format. Options are:
  • `iso`: ISO8601 with 'T' separator, like "2000-01-01T01:02:03.456"
  • `posix`: seconds since epoch
  • `millis`: milliseconds since epoch
  • `micro`: microseconds since epoch
  • `nano`: nanoseconds since epoch
  • `auto`: automatically detects iso (either 'T' or space separator) or millis format
  • any [Joda DateTimeFormat string](http://joda-time.sourceforge.net/apidocs/org/joda/time/format/DateTimeFormat.html)
|auto| +|missingValue|Timestamp to use for input records that have a null or missing timestamp `column`. Should be in ISO8601 format, like `"2000-01-01T01:02:03.456"`, even if you have specified something else for `format`. Since Druid requires a primary timestamp, this setting can be useful for ingesting datasets that do not have any per-record timestamps at all. |none| + +### `dimensionsSpec` + +The `dimensionsSpec` is located in `dataSchema` → `parser` → `parseSpec` → `dimensionsSpec` and is responsible for +configuring [dimensions](#dimensions). An example `dimensionsSpec` is: + +``` +"dimensionsSpec" : { + "dimensions": [ + "page", + "language", + { "type": "long", "name": "userId" } + ], + "dimensionExclusions" : [], + "spatialDimensions" : [] +} +``` + +> Conceptually, after input data records are read, Druid applies ingestion spec components in a particular order: +> first [`flattenSpec`](#flattenspec), then [`timestampSpec`](#timestampspec), then [`transformSpec`](#transformspec), +> and finally [`dimensionsSpec`](#dimensionsspec) and [`metricsSpec`](#metricsspec). Keep this in mind when writing +> your ingestion spec. + +A `dimensionsSpec` can have the following components: + +| Field | Description | Default | +|-------|-------------|---------| +| dimensions | A list of [dimension names or objects](#dimension-objects).

If this is an empty array, Druid will treat all non-timestamp, non-metric columns that do not appear in `dimensionExclusions` as String-typed dimension columns (see [inclusions and exclusions](#inclusions-and-exclusions) below). | `[]` | +| dimensionExclusions | The names of dimensions to exclude from ingestion. Only names are supported here, not objects. | `[]` | +| spatialDimensions | An array of [spatial dimensions](../development/geo.md). | `[]` | + +#### Dimension objects + +Each dimension in the `dimensions` list can either be a name or an object. Providing a name is equivalent to providing +a `string` type dimension object with the given name, e.g. `"page"` is equivalent to `{"name": "page", "type": "string"}`. + +Dimension objects can have the following components: + +| Field | Description | Default | +|-------|-------------|---------| +| type | Either `string`, `long`, `float`, or `double`. | `string` | +| name | The name of the dimension. This will be used as the field name to read from input records, as well as the column name stored in generated segments.

Note that you can use a [`transformSpec`](#transformspec) if you want to rename columns during ingestion time. | none (required) | +| createBitmapIndex | For `string` typed dimensions, whether or not bitmap indexes should be created for the column in generated segments. Creating a bitmap index requires more storage, but speeds up certain kinds of filtering (especially equality and prefix filtering). Only supported for `string` typed dimensions. | `true` | + +#### Inclusions and exclusions + +Druid will interpret a `dimensionsSpec` in two possible ways: _normal_ or _schemaless_. + +Normal interpretation occurs when either `dimensions` or `spatialDimensions` is non-empty. In this case, the combination of the two lists will be taken as the set of dimensions to be ingested, and `dimensionExclusions` is ignored. + +Schemaless interpretation occurs when both `dimensions` and `spatialDimensions` are empty or null. In this case, the set of dimensions is determined in the following way: + +1. First, start from the set of all input fields from the [`parser`](#parser) (or the [`flattenSpec`](#flattenspec), if one is being used). +2. Any field listed in `dimensionExclusions` is excluded. +3. The field listed as `column` in the [`timestampSpec`](#timestampspec) is excluded. +4. Any field used as an input to an aggregator from the [metricsSpec](#metricsspec) is excluded. +5. Any field with the same name as an aggregator from the [metricsSpec](#metricsspec) is excluded. +6. All other fields are ingested as `string` typed dimensions with the [default settings](#dimension-objects). + +> Note: Fields generated by a [`transformSpec`](#transformspec) are not currently considered candidates for +> schemaless dimension interpretation. + +### `flattenSpec` + +The `flattenSpec` is located in `dataSchema` → `parser` → `parseSpec` → `flattenSpec` and is responsible for +bridging the gap between potentially nested input data (such as JSON, Avro, etc) and Druid's flat data model. +An example `flattenSpec` is: + +``` +"flattenSpec": { + "useFieldDiscovery": true, + "fields": [ + { "name": "baz", "type": "root" }, + { "name": "foo_bar", "type": "path", "expr": "$.foo.bar" }, + { "name": "first_food", "type": "jq", "expr": ".thing.food[1]" } + ] +} +``` + +> Conceptually, after input data records are read, Druid applies ingestion spec components in a particular order: +> first [`flattenSpec`](#flattenspec), then [`timestampSpec`](#timestampspec), then [`transformSpec`](#transformspec), +> and finally [`dimensionsSpec`](#dimensionsspec) and [`metricsSpec`](#metricsspec). Keep this in mind when writing +> your ingestion spec. + + +Flattening is only supported for [data formats](data-formats.md) that support nesting, including `avro`, `json`, `orc`, +and `parquet`. Flattening is _not_ supported for the `timeAndDims` parseSpec type. + +A `flattenSpec` can have the following components: + +| Field | Description | Default | +|-------|-------------|---------| +| useFieldDiscovery | If true, interpret all root-level fields as available fields for usage by [`timestampSpec`](#timestampspec), [`transformSpec`](#transformspec), [`dimensionsSpec`](#dimensionsspec), and [`metricsSpec`](#metricsspec).

If false, only explicitly specified fields (see `fields`) will be available for use. | `true` | +| fields | Specifies the fields of interest and how they are accessed. [See below for details.](#field-flattening-specifications) | `[]` | + +#### Field flattening specifications + +Each entry in the `fields` list can have the following components: + +| Field | Description | Default | +|-------|-------------|---------| +| type | Options are as follows:

  • `root`, referring to a field at the root level of the record. Only really useful if `useFieldDiscovery` is false.
  • `path`, referring to a field using [JsonPath](https://github.com/jayway/JsonPath) notation. Supported by most data formats that offer nesting, including `avro`, `json`, `orc`, and `parquet`.
  • `jq`, referring to a field using [jackson-jq](https://github.com/eiiches/jackson-jq) notation. Only supported for the `json` format.
| none (required) | +| name | Name of the field after flattening. This name can be referred to by the [`timestampSpec`](#timestampspec), [`transformSpec`](#transformspec), [`dimensionsSpec`](#dimensionsspec), and [`metricsSpec`](#metricsspec).| none (required) | +| expr | Expression for accessing the field while flattening. For type `path`, this should be [JsonPath](https://github.com/jayway/JsonPath). For type `jq`, this should be [jackson-jq](https://github.com/eiiches/jackson-jq) notation. For other types, this parameter is ignored. | none (required for types `path` and `jq`) | + +#### Notes on flattening + +* For convenience, when defining a root-level field, it is possible to define only the field name, as a string, instead of a JSON object. For example, `{"name": "baz", "type": "root"}` is equivalent to `"baz"`. +* Enabling `useFieldDiscovery` will only autodetect "simple" fields at the root level that correspond to data types that Druid supports. This includes strings, numbers, and lists of strings or numbers. Other types will not be automatically detected, and must be specified explicitly in the `fields` list. +* Duplicate field `name`s are not allowed. An exception will be thrown. +* If `useFieldDiscovery` is enabled, any discovered field with the same name as one already defined in the `fields` list will be skipped, rather than added twice. +* [http://jsonpath.herokuapp.com/](http://jsonpath.herokuapp.com/) is useful for testing `path`-type expressions. +* jackson-jq supports a subset of the full [jq](https://stedolan.github.io/jq/) syntax. Please refer to the [jackson-jq documentation](https://github.com/eiiches/jackson-jq) for details. + +### `metricsSpec` + +The `metricsSpec` is located in `dataSchema` → `metricsSpec` and is a list of [aggregators](../querying/aggregations.md) +to apply at ingestion time. This is most useful when [rollup](#rollup) is enabled, since it's how you configure +ingestion-time aggregation. + +An example `metricsSpec` is: + +``` +"metricsSpec": [ + { "type": "count", "name": "count" }, + { "type": "doubleSum", "name": "bytes_added_sum", "fieldName": "bytes_added" }, + { "type": "doubleSum", "name": "bytes_deleted_sum", "fieldName": "bytes_deleted" } +] +``` + +> Generally, when [rollup](#rollup) is disabled, you should have an empty `metricsSpec` (because without rollup, +> Druid does not do any ingestion-time aggregation, so there is little reason to include an ingestion-time aggregator). However, +> in some cases, it can still make sense to define metrics: for example, if you want to create a complex column as a way of +> pre-computing part of an [approximate aggregation](../querying/aggregations.md#approximate-aggregations), this can only +> be done by defining a metric in a `metricsSpec`. + +### `granularitySpec` + +The `granularitySpec` is located in `dataSchema` → `granularitySpec` and is responsible for configuring +the following operations: + +1. Partitioning a datasource into [time chunks](../design/architecture.html#datasources-and-segments) (via `segmentGranularity`). +2. Truncating the timestamp, if desired (via `queryGranularity`). +3. Specifying which time chunks of segments should be created, for batch ingestion (via `intervals`). +4. Specifying whether ingestion-time [rollup](#rollup) should be used or not (via `rollup`). + +Other than `rollup`, these operations are all based on the [primary timestamp](#primary-timestamp). + +An example `granularitySpec` is: + +``` +"granularitySpec": { + "segmentGranularity": "day", + "queryGranularity": "none", + "intervals": [ + "2013-08-31/2013-09-01" + ], + "rollup": true +} +``` + +A `granularitySpec` can have the following components: + +| Field | Description | Default | +|-------|-------------|---------| +| type | Either `uniform` or `arbitrary`. In most cases you want to use `uniform`.| `uniform` | +| segmentGranularity | [Time chunking](../design/architecture.html#datasources-and-segments) granularity for this datasource. Multiple segments can be created per time chunk. For example, when set to `day`, the events of the same day fall into the same time chunk which can be optionally further partitioned into multiple segments based on other configurations and input size. Any [granularity](../querying/granularities.md) can be provided here.

Ignored if `type` is set to `arbitrary`.| `day` | +| queryGranularity | The resolution of timestamp storage within each segment. This must be equal to, or finer, than `segmentGranularity`. This will be the finest granularity that you can query at and still receive sensible results, but note that you can still query at anything coarser than this granularity. E.g., a value of `minute` will mean that records will be stored at minutely granularity, and can be sensibly queried at any multiple of minutes (including minutely, 5-minutely, hourly, etc).

Any [granularity](../querying/granularities.md) can be provided here. Use `none` to store timestamps as-is, without any truncation.| `none` | +| rollup | Whether to use ingestion-time [rollup](#rollup) or not. | `true` | +| intervals | A list of intervals describing what time chunks of segments should be created. If `type` is set to `uniform`, this list will be broken up and rounded-off based on the `segmentGranularity`. If `type` is set to `arbitrary`, this list will be used as-is.

If `null` or not provided, batch ingestion tasks will generally determine which time chunks to output based on what timestamps are found in the input data.

If specified, batch ingestion tasks may be able to skip a determining-partitions phase, which can result in faster ingestion. Batch ingestion tasks may also be able to request all their locks up-front instead of one by one. Batch ingestion tasks will throw away any records with timestamps outside of the specified intervals.

Ignored for any form of streaming ingestion. | `null` | + +### `transformSpec` + +The `transformSpec` is located in `dataSchema` → `transformSpec` and is responsible for transforming and filtering +records during ingestion time. It is optional. An example `transformSpec` is: + +``` +"transformSpec": { + "transforms": [ + { "type": "expression", "name": "countryUpper", "expression": "upper(country)" } + ], + "filter": { + "type": "selector", + "dimension": "country", + "value": "San Serriffe" + } +} +``` + +> Conceptually, after input data records are read, Druid applies ingestion spec components in a particular order: +> first [`flattenSpec`](#flattenspec), then [`timestampSpec`](#timestampspec), then [`transformSpec`](#transformspec), +> and finally [`dimensionsSpec`](#dimensionsspec) and [`metricsSpec`](#metricsspec). Keep this in mind when writing +> your ingestion spec. + +#### Transforms + +The `transforms` list allows you to specify a set of expressions to evaluate on top of input data. Each transform has a +"name" which can be referred to by your `dimensionsSpec`, `metricsSpec`, etc. + +If a transform has the same name as a field in an input row, then it will shadow the original field. Transforms that +shadow fields may still refer to the fields they shadow. This can be used to transform a field "in-place". + +Transforms do have some limitations. They can only refer to fields present in the actual input rows; in particular, +they cannot refer to other transforms. And they cannot remove fields, only add them. However, they can shadow a field +with another field containing all nulls, which will act similarly to removing the field. + +Transforms can refer to the [timestamp](#timestampspec) of an input row by referring to `__time` as part of the expression. +They can also _replace_ the timestamp if you set their "name" to `__time`. In both cases, `__time` should be treated as +a millisecond timestamp (number of milliseconds since Jan 1, 1970 at midnight UTC). Transforms are applied _after_ the +`timestampSpec`. + +Druid currently includes one kind of built-in transform, the expression transform. It has the following syntax: + +``` +{ + "type": "expression", + "name": "", + "expression": "" +} +``` + +The `expression` is a [Druid query expression](../misc/math-expr.md). + +#### Filter + +The `filter` conditionally filters input rows during ingestion. Only rows that pass the filter will be +ingested. Any of Druid's standard [query filters](../querying/filters.md) can be used. Note that within a +`transformSpec`, the `transforms` are applied before the `filter`, so the filter can refer to a transform. + +## `ioConfig` + +The `ioConfig` influences how data is read from a source system, such as Apache Kafka, Amazon S3, a mounted +filesystem, or any other supported source system. For details, see the documentation provided by each +[ingestion method](#ingestion-methods). + +## `tuningConfig` + +Tuning properties are specified in a `tuningConfig`, which goes at the top level of an ingestion spec. Some +properties apply to all [ingestion methods](#ingestion-methods), but most are specific to each individual +ingestion method. An example `tuningConfig` that sets all of the shared, common properties to their defaults +is: + +```plaintext +"tuningConfig": { + "type": "", + "maxRowsInMemory": 1000000, + "maxBytesInMemory": , + "indexSpec": { + "bitmap": { "type": "concise" }, + "dimensionCompression": "lz4", + "metricCompression": "lz4", + "longEncoding": "longs" + }, + +} +``` + +|Field|Description|Default| +|-----|-----------|-------| +|type|Each ingestion method has its own tuning type code. You must specify the type code that matches your ingestion method. Common options are `index`, `hadoop`, `kafka`, and `kinesis`.|| +|maxRowsInMemory|The maximum number of records to store in memory before persisting to disk. Note that this is the number of rows post-rollup, and so it may not be equal to the number of input records. Ingested records will be persisted to disk when either `maxRowsInMemory` or `maxBytesInMemory` are reached (whichever happens first).|`1000000`| +|maxBytesInMemory|The maximum aggregate size of records, in bytes, to store in the JVM heap before persisting. This is based on a rough estimate of memory usage. Ingested records will be persisted to disk when either `maxRowsInMemory` or `maxBytesInMemory` are reached (whichever happens first).

Setting maxBytesInMemory to -1 disables this check, meaning Druid will rely entirely on maxRowsInMemory to control memory usage. Setting it to zero means the default value will be used (one-sixth of JVM heap size).

Note that the estimate of memory usage is designed to be an overestimate, and can be especially high when using complex ingest-time aggregators, including sketches. If this causes your indexing workloads to persist to disk too often, you can set maxBytesInMemory to -1 and rely on maxRowsInMemory instead.|One-sixth of max JVM heap size| +|indexSpec|Tune how data is indexed. See below for more information.|See table below| +|Other properties|Each ingestion method has its own list of additional tuning properties. See the documentation for each method for a full list: [Kafka indexing service](../development/extensions-core/kafka-ingestion.md#tuningconfig), [Kinesis indexing service](../development/extensions-core/kinesis-ingestion.md#tuningconfig), [Native batch](native-batch.md#tuningconfig), and [Hadoop-based](hadoop.md#tuningconfig).|| + +#### `indexSpec` + +The `indexSpec` object can include the following properties: + +|Field|Description|Default| +|-----|-----------|-------| +|bitmap|Compression format for bitmap indexes. Should be a JSON object with `type` set to `concise` or `roaring`. For type `roaring`, the boolean property `compressRunOnSerialization` (defaults to true) controls whether or not run-length encoding will be used when it is determined to be more space-efficient.|`{"type": "concise"}`| +|dimensionCompression|Compression format for dimension columns. Options are `lz4`, `lzf`, or `uncompressed`.|`lz4`| +|metricCompression|Compression format for metric columns. Options are `lz4`, `lzf`, `uncompressed`, or `none` (which is more efficient than `uncompressed`, but not supported by older versions of Druid).|`lz4`| +|longEncoding|Encoding format for long-typed columns. Applies regardless of whether they are dimensions or metrics. Options are `auto` or `longs`. `auto` encodes the values using offset or lookup table depending on column cardinality, and store them with variable size. `longs` stores the value as-is with 8 bytes each.|`longs`| + +Beyond these properties, each ingestion method has its own specific tuning properties. See the documentation for each +[ingestion method](#ingestion-methods) for details. diff --git a/docs/content/ingestion/native_tasks.md b/docs/ingestion/native-batch.md similarity index 70% rename from docs/content/ingestion/native_tasks.md rename to docs/ingestion/native-batch.md index 1960373df88b..7d6bbbe28e45 100644 --- a/docs/content/ingestion/native_tasks.md +++ b/docs/ingestion/native-batch.md @@ -1,6 +1,7 @@ --- -layout: doc_page -title: "Native Index Tasks" +id: native-batch +title: "Native batch ingestion" +sidebar_label: "Native batch" --- -# Native Index Tasks -Apache Druid (incubating) currently has two types of native batch indexing tasks, `index_parallel` which runs tasks -in parallel on multiple MiddleManager processes, and `index` which will run a single indexing task locally on a single -MiddleManager. - -Please check [Hadoop-based Batch Ingestion VS Native Batch Ingestion](./hadoop-vs-native-batch.html) for differences between native batch ingestion and Hadoop-based ingestion. +Apache Druid (incubating) currently has two types of native batch indexing tasks, `index_parallel` which can run +multiple tasks in parallel, and `index` which will run a single indexing task. Please refer to our +[Hadoop-based vs. native batch comparison table](index.md#batch) for comparisons between Hadoop-based, native batch +(simple), and native batch (parallel) ingestion. To run either kind of native batch indexing task, write an ingestion spec as specified below. Then POST it to the -[`/druid/indexer/v1/task` endpoint on the Overlord](../operations/api-reference.html#tasks), or use the `post-index-task` script included with Druid. +[`/druid/indexer/v1/task`](../operations/api-reference.html#tasks) endpoint on the Overlord, or use the +`bin/post-index-task` script included with Druid. + +## Tutorial -Parallel Index Task -------------------- +This page contains reference documentation for native batch ingestion. +For a walk-through instead, check out the [Loading a file](../tutorials/tutorial-batch.md) tutorial, which +demonstrates the "simple" (single-task) mode. -The Parallel Index Task is a task for parallel batch indexing. This task only uses Druid's resource and +## Parallel task + +The Parallel task (type `index_parallel`) is a task for parallel batch indexing. This task only uses Druid's resource and doesn't depend on other external systems like Hadoop. `index_parallel` task is a supervisor task which basically generates multiple worker tasks and submits them to the Overlord. Each worker task reads input data and creates segments. Once they successfully generate segments for all input data, they report the generated segment list to the supervisor task. @@ -50,7 +55,7 @@ each sub task creates segments individually and reports them to the supervisor t If `forceGuaranteedRollup` = true, it's executed in two phases with data shuffle which is similar to [MapReduce](https://en.wikipedia.org/wiki/MapReduce). In the first phase, each sub task partitions input data based on `segmentGranularity` (primary partition key) in `granularitySpec` and `partitionDimensions` (secondary partition key) in `partitionsSpec`. The partitioned data is served by -the [middleManager](../design/middlemanager.html) or the [indexer](../development/indexer.html) +the [middleManager](../design/middlemanager.md) or the [indexer](../design/indexer.md) where the first phase tasks ran. In the second phase, each sub task fetches partitioned data from middleManagers or indexers and merges them to create the final segments. As in the single phase execution, the created segments are reported to the supervisor task to publish at once. @@ -58,13 +63,13 @@ As in the single phase execution, the created segments are reported to the super To use this task, the `firehose` in `ioConfig` should be _splittable_ and `maxNumConcurrentSubTasks` should be set something larger than 1 in `tuningConfig`. Otherwise, this task runs sequentially. Here is the list of currently splittable fireshoses. -- [`LocalFirehose`](./firehose.html#localfirehose) -- [`IngestSegmentFirehose`](./firehose.html#ingestsegmentfirehose) -- [`HttpFirehose`](./firehose.html#httpfirehose) -- [`StaticS3Firehose`](../development/extensions-core/s3.html#statics3firehose) -- [`StaticAzureBlobStoreFirehose`](../development/extensions-contrib/azure.html#staticazureblobstorefirehose) -- [`StaticGoogleBlobStoreFirehose`](../development/extensions-contrib/google.html#staticgoogleblobstorefirehose) -- [`StaticCloudFilesFirehose`](../development/extensions-contrib/cloudfiles.html#staticcloudfilesfirehose) +- [`LocalFirehose`](#local-firehose) +- [`IngestSegmentFirehose`](#segment-firehose) +- [`HttpFirehose`](#http-firehose) +- [`StaticS3Firehose`](../development/extensions-core/s3.html#firehose) +- [`StaticAzureBlobStoreFirehose`](../development/extensions-contrib/azure.html#firehose) +- [`StaticGoogleBlobStoreFirehose`](../development/extensions-contrib/google.html#firehose) +- [`StaticCloudFilesFirehose`](../development/extensions-contrib/cloudfiles.html#firehose) The splittable firehose is responsible for generating _splits_. The supervisor task generates _worker task specs_ containing a split and submits worker tasks using those specs. As a result, the number of worker tasks depends on @@ -78,11 +83,12 @@ You may want to consider the below things: This may affect to other ingestion performance. See the below [Capacity Planning](#capacity-planning) section for more details. - By default, batch ingestion replaces all data in any segment that it writes to. If you'd like to add to the segment instead, set the `appendToExisting` flag in `ioConfig`. Note that it only replaces data in segments where it actively adds - data: if there are segments in your granularitySpec's intervals that have no data written by this task, they will be + data: if there are segments in your `granularitySpec`'s intervals that have no data written by this task, they will be left alone. +### Task syntax -An example ingestion spec is: +A sample task is shown below: ```json { @@ -157,8 +163,6 @@ An example ingestion spec is: } ``` -#### Task Properties - |property|description|required?| |--------|-----------|---------| |type|The task type, this should always be `index_parallel`.|yes| @@ -166,11 +170,11 @@ An example ingestion spec is: |spec|The ingestion spec including the data schema, IOConfig, and TuningConfig. See below for more details. |yes| |context|Context containing various task configuration parameters. See below for more details.|no| -#### DataSchema +### `dataSchema` This field is required. -See [Ingestion Spec DataSchema](../ingestion/ingestion-spec.html#dataschema) +See [Ingestion Spec DataSchema](../ingestion/index.md#dataschema) If you specify `intervals` explicitly in your dataSchema's granularitySpec, batch ingestion will lock the full intervals specified when it starts up, and you will learn quickly if the specified interval overlaps with locks held by other @@ -180,15 +184,15 @@ rows outside the specified intervals will be thrown away. We recommend setting ` time range of the data so that locking failure happens faster, and so that you don't accidentally replace data outside that range if there's some stray data with unexpected timestamps. -#### IOConfig +### `ioConfig` |property|description|default|required?| |--------|-----------|-------|---------| |type|The task type, this should always be `index_parallel`.|none|yes| -|firehose|Specify a [Firehose](../ingestion/firehose.html) here.|none|yes| +|firehose|Specify a [Firehose](#firehoses) here.|none|yes| |appendToExisting|Creates segments as additional shards of the latest version, effectively appending to the segment set instead of replacing it. This will only work if the existing segment set has extendable-type shardSpecs.|false|no| -#### TuningConfig +### `tuningConfig` The tuningConfig is optional and default parameters will be used if no tuningConfig is specified. See below for more details. @@ -198,13 +202,13 @@ The tuningConfig is optional and default parameters will be used if no tuningCon |maxRowsInMemory|Used in determining when intermediate persists to disk should occur. Normally user does not need to set this, but depending on the nature of data, if rows are short in terms of bytes, user may not want to store a million rows in memory and this value should be set.|1000000|no| |maxBytesInMemory|Used in determining when intermediate persists to disk should occur. Normally this is computed internally and user does not need to set it. This value represents number of bytes to aggregate in heap memory before persisting. This is based on a rough estimate of memory usage and not actual usage. The maximum heap memory usage for indexing is maxBytesInMemory * (2 + maxPendingPersists)|1/6 of max JVM memory|no| |partitionsSpec|Defines how to partition the segments in a timeChunk, see [PartitionsSpec](#partitionsspec)|`dynamic` if `forceGuaranteedRollup` = false, `hashed` if `forceGuaranteedRollup` = true|no| -|indexSpec|Defines segment storage format options to be used at indexing time, see [IndexSpec](#indexspec)|null|no| -|indexSpecForIntermediatePersists|Defines segment storage format options to be used at indexing time for intermediate persisted temporary segments. this can be used to disable dimension/metric compression on intermediate segments to reduce memory required for final merging. however, disabling compression on intermediate segments might increase page cache use while they are used before getting merged into final segment published, see [IndexSpec](#indexspec) for possible values.|same as indexSpec|no| +|indexSpec|Defines segment storage format options to be used at indexing time, see [IndexSpec](index.html#indexspec)|null|no| +|indexSpecForIntermediatePersists|Defines segment storage format options to be used at indexing time for intermediate persisted temporary segments. this can be used to disable dimension/metric compression on intermediate segments to reduce memory required for final merging. however, disabling compression on intermediate segments might increase page cache use while they are used before getting merged into final segment published, see [IndexSpec](index.html#indexspec) for possible values.|same as indexSpec|no| |maxPendingPersists|Maximum number of persists that can be pending but not started. If this limit would be exceeded by a new intermediate persist, ingestion will block until the currently-running persist finishes. Maximum heap memory usage for indexing scales with maxRowsInMemory * (2 + maxPendingPersists).|0 (meaning one persist can be running concurrently with ingestion, and none can be queued up)|no| -|forceGuaranteedRollup|Forces guaranteeing the [perfect rollup](../ingestion/index.html#roll-up-modes). The perfect rollup optimizes the total size of generated segments and querying time while indexing time will be increased. If this is set to true, `numShards` in `tuningConfig` and `intervals` in `granularitySpec` must be set. Note that the result segments would be hash-partitioned. This flag cannot be used with `appendToExisting` of IOConfig. For more details, see the below __Segment pushing modes__ section.|false|no| +|forceGuaranteedRollup|Forces guaranteeing the [perfect rollup](../ingestion/index.html#rollup). The perfect rollup optimizes the total size of generated segments and querying time while indexing time will be increased. If this is set to true, `numShards` in `tuningConfig` and `intervals` in `granularitySpec` must be set. Note that the result segments would be hash-partitioned. This flag cannot be used with `appendToExisting` of IOConfig. For more details, see the below __Segment pushing modes__ section.|false|no| |reportParseExceptions|If true, exceptions encountered during parsing will be thrown and will halt ingestion; if false, unparseable rows and fields will be skipped.|false|no| |pushTimeout|Milliseconds to wait for pushing segments. It must be >= 0, where 0 means to wait forever.|0|no| -|segmentWriteOutMediumFactory|Segment write-out medium to use when creating segments. See [SegmentWriteOutMediumFactory](#segmentWriteOutMediumFactory).|Not specified, the value from `druid.peon.defaultSegmentWriteOutMediumFactory.type` is used|no| +|segmentWriteOutMediumFactory|Segment write-out medium to use when creating segments. See [SegmentWriteOutMediumFactory](#segmentwriteoutmediumfactory).|Not specified, the value from `druid.peon.defaultSegmentWriteOutMediumFactory.type` is used|no| |maxNumConcurrentSubTasks|Maximum number of tasks which can be run in parallel at the same time. The supervisor task would spawn worker tasks up to `maxNumConcurrentSubTasks` regardless of the current available task slots. If this value is set to 1, the supervisor task processes data ingestion on its own instead of spawning worker tasks. If this value is set to too large, too many worker tasks can be created which might block other ingestion. Check [Capacity Planning](#capacity-planning) for more details.|1|no| |maxRetry|Maximum number of retries on task failures.|3|no| |maxNumSegmentsToMerge|Max limit for the number of segments that a single task can merge at the same time in the second phase. Used only `forceGuaranteedRollup` is set.|100|no| @@ -213,10 +217,10 @@ The tuningConfig is optional and default parameters will be used if no tuningCon |chatHandlerTimeout|Timeout for reporting the pushed segments in worker tasks.|PT10S|no| |chatHandlerNumRetries|Retries for reporting the pushed segments in worker tasks.|5|no| -#### PartitionsSpec +### `partitionsSpec` PartitionsSpec is to describe the secondary partitioning method. -You should use different partitionsSpec depending on the [rollup mode](../ingestion/index.html#roll-up-modes) you want. +You should use different partitionsSpec depending on the [rollup mode](../ingestion/index.html#rollup) you want. For perfect rollup, you should use `hashed`. |property|description|default|required?| @@ -234,7 +238,7 @@ For best-effort rollup, you should use `dynamic`. |maxRowsPerSegment|Used in sharding. Determines how many rows are in each segment.|5000000|no| |maxTotalRows|Total number of rows in segments waiting for being pushed. Used in determining when intermediate segment push should occur.|20000000|no| -#### HTTP Endpoints +### HTTP status endpoints The supervisor task provides some HTTP endpoints to get running status. @@ -466,7 +470,7 @@ An example of the result is Returns the task attempt history of the worker task spec of the given id, or HTTP 404 Not Found error if the supervisor task is running in the sequential mode. -### Capacity Planning +### Capacity planning The supervisor task can create up to `maxNumConcurrentSubTasks` worker tasks no matter how many task slots are currently available. As a result, total number of tasks which can be run at the same time is `(maxNumConcurrentSubTasks + 1)` (including the supervisor task). @@ -487,10 +491,13 @@ If you have some tasks of a higher priority than others, you may set their This may help the higher priority tasks to finish earlier than lower priority tasks by assigning more task slots to them. -Local Index Task ----------------- +## Simple task -The Local Index Task is designed to be used for smaller data sets. The task executes within the indexing service. The grammar of the index task is as follows: +The simple task (type `index`) is designed to be used for smaller data sets. The task executes within the indexing service. + +### Task syntax + +A sample task is shown below: ```json { @@ -558,25 +565,18 @@ The Local Index Task is designed to be used for smaller data sets. The task exec } ``` -By default, batch ingestion replaces all data in any segment that it writes to. If you'd like to add to the segment -instead, set the appendToExisting flag in ioConfig. Note that it only replaces data in segments where it actively adds -data: if there are segments in your granularitySpec's intervals that have no data written by this task, they will be -left alone. - -#### Task Properties - |property|description|required?| |--------|-----------|---------| -|type|The task type, this should always be "index".|yes| +|type|The task type, this should always be `index`.|yes| |id|The task ID. If this is not explicitly specified, Druid generates the task ID using task type, data source name, interval, and date-time stamp. |no| |spec|The ingestion spec including the data schema, IOConfig, and TuningConfig. See below for more details. |yes| |context|Context containing various task configuration parameters. See below for more details.|no| -#### DataSchema +### `dataSchema` This field is required. -See [Ingestion Spec DataSchema](../ingestion/ingestion-spec.html#dataschema) +See the [`dataSchema`](../ingestion/index.md#dataschema) section of the ingestion docs for details. If you do not specify `intervals` explicitly in your dataSchema's granularitySpec, the Local Index Task will do an extra pass over the data to determine the range to lock when it starts up. If you specify `intervals` explicitly, any rows @@ -584,15 +584,15 @@ outside the specified intervals will be thrown away. We recommend setting `inter range of the data because it allows the task to skip the extra pass, and so that you don't accidentally replace data outside that range if there's some stray data with unexpected timestamps. -#### IOConfig +### `ioConfig` |property|description|default|required?| |--------|-----------|-------|---------| |type|The task type, this should always be "index".|none|yes| -|firehose|Specify a [Firehose](../ingestion/firehose.html) here.|none|yes| +|firehose|Specify a [Firehose](#firehoses) here.|none|yes| |appendToExisting|Creates segments as additional shards of the latest version, effectively appending to the segment set instead of replacing it. This will only work if the existing segment set has extendable-type shardSpecs.|false|no| -#### TuningConfig +### `tuningConfig` The tuningConfig is optional and default parameters will be used if no tuningConfig is specified. See below for more details. @@ -602,21 +602,21 @@ The tuningConfig is optional and default parameters will be used if no tuningCon |maxRowsInMemory|Used in determining when intermediate persists to disk should occur. Normally user does not need to set this, but depending on the nature of data, if rows are short in terms of bytes, user may not want to store a million rows in memory and this value should be set.|1000000|no| |maxBytesInMemory|Used in determining when intermediate persists to disk should occur. Normally this is computed internally and user does not need to set it. This value represents number of bytes to aggregate in heap memory before persisting. This is based on a rough estimate of memory usage and not actual usage. The maximum heap memory usage for indexing is maxBytesInMemory * (2 + maxPendingPersists)|1/6 of max JVM memory|no| |partitionsSpec|Defines how to partition the segments in a timeChunk, see [PartitionsSpec](#partitionsspec)|`dynamic` if `forceGuaranteedRollup` = false, `hashed` if `forceGuaranteedRollup` = true|no| -|indexSpec|Defines segment storage format options to be used at indexing time, see [IndexSpec](#indexspec)|null|no| -|indexSpecForIntermediatePersists|Defines segment storage format options to be used at indexing time for intermediate persisted temporary segments. this can be used to disable dimension/metric compression on intermediate segments to reduce memory required for final merging. however, disabling compression on intermediate segments might increase page cache use while they are used before getting merged into final segment published, see [IndexSpec](#indexspec) for possible values.|same as indexSpec|no| +|indexSpec|Defines segment storage format options to be used at indexing time, see [IndexSpec](index.html#indexspec)|null|no| +|indexSpecForIntermediatePersists|Defines segment storage format options to be used at indexing time for intermediate persisted temporary segments. this can be used to disable dimension/metric compression on intermediate segments to reduce memory required for final merging. however, disabling compression on intermediate segments might increase page cache use while they are used before getting merged into final segment published, see [IndexSpec](index.html#indexspec) for possible values.|same as indexSpec|no| |maxPendingPersists|Maximum number of persists that can be pending but not started. If this limit would be exceeded by a new intermediate persist, ingestion will block until the currently-running persist finishes. Maximum heap memory usage for indexing scales with maxRowsInMemory * (2 + maxPendingPersists).|0 (meaning one persist can be running concurrently with ingestion, and none can be queued up)|no| -|forceGuaranteedRollup|Forces guaranteeing the [perfect rollup](../ingestion/index.html#roll-up-modes). The perfect rollup optimizes the total size of generated segments and querying time while indexing time will be increased. If this is set to true, the index task will read the entire input data twice: one for finding the optimal number of partitions per time chunk and one for generating segments. Note that the result segments would be hash-partitioned. This flag cannot be used with `appendToExisting` of IOConfig. For more details, see the below __Segment pushing modes__ section.|false|no| +|forceGuaranteedRollup|Forces guaranteeing the [perfect rollup](../ingestion/index.html#rollup). The perfect rollup optimizes the total size of generated segments and querying time while indexing time will be increased. If this is set to true, the index task will read the entire input data twice: one for finding the optimal number of partitions per time chunk and one for generating segments. Note that the result segments would be hash-partitioned. This flag cannot be used with `appendToExisting` of IOConfig. For more details, see the below __Segment pushing modes__ section.|false|no| |reportParseExceptions|DEPRECATED. If true, exceptions encountered during parsing will be thrown and will halt ingestion; if false, unparseable rows and fields will be skipped. Setting `reportParseExceptions` to true will override existing configurations for `maxParseExceptions` and `maxSavedParseExceptions`, setting `maxParseExceptions` to 0 and limiting `maxSavedParseExceptions` to no more than 1.|false|no| |pushTimeout|Milliseconds to wait for pushing segments. It must be >= 0, where 0 means to wait forever.|0|no| -|segmentWriteOutMediumFactory|Segment write-out medium to use when creating segments. See [SegmentWriteOutMediumFactory](#segmentWriteOutMediumFactory).|Not specified, the value from `druid.peon.defaultSegmentWriteOutMediumFactory.type` is used|no| +|segmentWriteOutMediumFactory|Segment write-out medium to use when creating segments. See [SegmentWriteOutMediumFactory](#segmentwriteoutmediumfactory).|Not specified, the value from `druid.peon.defaultSegmentWriteOutMediumFactory.type` is used|no| |logParseExceptions|If true, log an error message when a parsing exception occurs, containing information about the row where the error occurred.|false|no| |maxParseExceptions|The maximum number of parse exceptions that can occur before the task halts ingestion and fails. Overridden if `reportParseExceptions` is set.|unlimited|no| -|maxSavedParseExceptions|When a parse exception occurs, Druid can keep track of the most recent parse exceptions. "maxSavedParseExceptions" limits how many exception instances will be saved. These saved exceptions will be made available after the task finishes in the [task completion report](../ingestion/reports.html). Overridden if `reportParseExceptions` is set.|0|no| +|maxSavedParseExceptions|When a parse exception occurs, Druid can keep track of the most recent parse exceptions. "maxSavedParseExceptions" limits how many exception instances will be saved. These saved exceptions will be made available after the task finishes in the [task completion report](tasks.md#task-reports). Overridden if `reportParseExceptions` is set.|0|no| -#### PartitionsSpec +### `partitionsSpec` PartitionsSpec is to describe the secondary partitioning method. -You should use different partitionsSpec depending on the [rollup mode](../ingestion/index.html#roll-up-modes) you want. +You should use different partitionsSpec depending on the [rollup mode](../ingestion/index.html#rollup) you want. For perfect rollup, you should use `hashed`. |property|description|default|required?| @@ -634,44 +634,17 @@ For best-effort rollup, you should use `dynamic`. |maxRowsPerSegment|Used in sharding. Determines how many rows are in each segment.|5000000|no| |maxTotalRows|Total number of rows in segments waiting for being pushed. Used in determining when intermediate segment push should occur.|20000000|no| -#### IndexSpec - -The indexSpec defines segment storage format options to be used at indexing time, such as bitmap type and column -compression formats. The indexSpec is optional and default parameters will be used if not specified. - -|Field|Type|Description|Required| -|-----|----|-----------|--------| -|bitmap|Object|Compression format for bitmap indexes. Should be a JSON object; see below for options.|no (defaults to Concise)| -|dimensionCompression|String|Compression format for dimension columns. Choose from `LZ4`, `LZF`, or `uncompressed`.|no (default == `LZ4`)| -|metricCompression|String|Compression format for metric columns. Choose from `LZ4`, `LZF`, `uncompressed`, or `none`.|no (default == `LZ4`)| -|longEncoding|String|Encoding format for metric and dimension columns with type long. Choose from `auto` or `longs`. `auto` encodes the values using offset or lookup table depending on column cardinality, and store them with variable size. `longs` stores the value as is with 8 bytes each.|no (default == `longs`)| - -##### Bitmap types - -For Concise bitmaps: - -|Field|Type|Description|Required| -|-----|----|-----------|--------| -|type|String|Must be `concise`.|yes| - -For Roaring bitmaps: - -|Field|Type|Description|Required| -|-----|----|-----------|--------| -|type|String|Must be `roaring`.|yes| -|compressRunOnSerialization|Boolean|Use a run-length encoding where it is estimated as more space efficient.|no (default == `true`)| - -#### SegmentWriteOutMediumFactory +### `segmentWriteOutMediumFactory` |Field|Type|Description|Required| |-----|----|-----------|--------| |type|String|See [Additional Peon Configuration: SegmentWriteOutMediumFactory](../configuration/index.html#segmentwriteoutmediumfactory) for explanation and available options.|yes| -#### Segment pushing modes +### Segment pushing modes While ingesting data using the Index task, it creates segments from the input data and pushes them. For segment pushing, the Index task supports two segment pushing modes, i.e., _bulk pushing mode_ and _incremental pushing mode_ for -[perfect rollup and best-effort rollup](../ingestion/index.html#roll-up-modes), respectively. +[perfect rollup and best-effort rollup](../ingestion/index.md#rollup), respectively. In the bulk pushing mode, every segment is pushed at the very end of the index task. Until then, created segments are stored in the memory and local storage of the process running the index task. As a result, this mode might cause a @@ -685,3 +658,209 @@ continues to ingest remaining data. To enable bulk pushing mode, `forceGuaranteedRollup` should be set in the TuningConfig. Note that this option cannot be used with `appendToExisting` of IOConfig. + +Firehoses are pluggable and thus the configuration schema can and will vary based on the `type` of the firehose. + +| Field | Type | Description | Required | +|-------|------|-------------|----------| +| type | String | Specifies the type of firehose. Each value will have its own configuration schema, firehoses packaged with Druid are described below. | yes | + +## Firehoses + +There are several firehoses readily available in Druid, some are meant for examples, others can be used directly in a production environment. + +For additional firehoses, please see our [extensions list](../development/extensions.md). + + + +### LocalFirehose + +This Firehose can be used to read the data from files on local disk, and is mainly intended for proof-of-concept testing, and works with `string` typed parsers. +This Firehose is _splittable_ and can be used by [native parallel index tasks](native-batch.md#parallel-task). +Since each split represents a file in this Firehose, each worker task of `index_parallel` will read a file. +A sample local Firehose spec is shown below: + +```json +{ + "type": "local", + "filter" : "*.csv", + "baseDir": "/data/directory" +} +``` + +|property|description|required?| +|--------|-----------|---------| +|type|This should be "local".|yes| +|filter|A wildcard filter for files. See [here](http://commons.apache.org/proper/commons-io/apidocs/org/apache/commons/io/filefilter/WildcardFileFilter.html) for more information.|yes| +|baseDir|directory to search recursively for files to be ingested. |yes| + + + +### HttpFirehose + +This Firehose can be used to read the data from remote sites via HTTP, and works with `string` typed parsers. +This Firehose is _splittable_ and can be used by [native parallel index tasks](native-batch.md#parallel-task). +Since each split represents a file in this Firehose, each worker task of `index_parallel` will read a file. +A sample HTTP Firehose spec is shown below: + +```json +{ + "type": "http", + "uris": ["http://example.com/uri1", "http://example2.com/uri2"] +} +``` + +The below configurations can be optionally used if the URIs specified in the spec require a Basic Authentication Header. +Omitting these fields from your spec will result in HTTP requests with no Basic Authentication Header. + +|property|description|default| +|--------|-----------|-------| +|httpAuthenticationUsername|Username to use for authentication with specified URIs|None| +|httpAuthenticationPassword|PasswordProvider to use with specified URIs|None| + +Example with authentication fields using the DefaultPassword provider (this requires the password to be in the ingestion spec): + +```json +{ + "type": "http", + "uris": ["http://example.com/uri1", "http://example2.com/uri2"], + "httpAuthenticationUsername": "username", + "httpAuthenticationPassword": "password123" +} +``` + +You can also use the other existing Druid PasswordProviders. Here is an example using the EnvironmentVariablePasswordProvider: + +```json +{ + "type": "http", + "uris": ["http://example.com/uri1", "http://example2.com/uri2"], + "httpAuthenticationUsername": "username", + "httpAuthenticationPassword": { + "type": "environment", + "variable": "HTTP_FIREHOSE_PW" + } +} +``` + +The below configurations can optionally be used for tuning the Firehose performance. + +|property|description|default| +|--------|-----------|-------| +|maxCacheCapacityBytes|Maximum size of the cache space in bytes. 0 means disabling cache. Cached files are not removed until the ingestion task completes.|1073741824| +|maxFetchCapacityBytes|Maximum size of the fetch space in bytes. 0 means disabling prefetch. Prefetched files are removed immediately once they are read.|1073741824| +|prefetchTriggerBytes|Threshold to trigger prefetching HTTP objects.|maxFetchCapacityBytes / 2| +|fetchTimeout|Timeout for fetching an HTTP object.|60000| +|maxFetchRetry|Maximum retries for fetching an HTTP object.|3| + + + +### IngestSegmentFirehose + +This Firehose can be used to read the data from existing druid segments, potentially using a new schema and changing the name, dimensions, metrics, rollup, etc. of the segment. +This Firehose is _splittable_ and can be used by [native parallel index tasks](native-batch.md#parallel-task). +This firehose will accept any type of parser, but will only utilize the list of dimensions and the timestamp specification. + A sample ingest Firehose spec is shown below: + +```json +{ + "type": "ingestSegment", + "dataSource": "wikipedia", + "interval": "2013-01-01/2013-01-02" +} +``` + +|property|description|required?| +|--------|-----------|---------| +|type|This should be "ingestSegment".|yes| +|dataSource|A String defining the data source to fetch rows from, very similar to a table in a relational database|yes| +|interval|A String representing the ISO-8601 interval. This defines the time range to fetch the data over.|yes| +|dimensions|The list of dimensions to select. If left empty, no dimensions are returned. If left null or not defined, all dimensions are returned. |no| +|metrics|The list of metrics to select. If left empty, no metrics are returned. If left null or not defined, all metrics are selected.|no| +|filter| See [Filters](../querying/filters.html)|no| +|maxInputSegmentBytesPerTask|When used with the native parallel index task, the maximum number of bytes of input segments to process in a single task. If a single segment is larger than this number, it will be processed by itself in a single task (input segments are never split across tasks). Defaults to 150MB.|no| + + + +### SqlFirehose + +This Firehose can be used to ingest events residing in an RDBMS. The database connection information is provided as part of the ingestion spec. +For each query, the results are fetched locally and indexed. +If there are multiple queries from which data needs to be indexed, queries are prefetched in the background, up to `maxFetchCapacityBytes` bytes. +This firehose will accept any type of parser, but will only utilize the list of dimensions and the timestamp specification. See the extension documentation for more detailed ingestion examples. + +Requires one of the following extensions: + * [MySQL Metadata Store](../development/extensions-core/mysql.html). + * [PostgreSQL Metadata Store](../development/extensions-core/postgresql.html). + + +```json +{ + "type": "sql", + "database": { + "type": "mysql", + "connectorConfig": { + "connectURI": "jdbc:mysql://host:port/schema", + "user": "user", + "password": "password" + } + }, + "sqls": ["SELECT * FROM table1", "SELECT * FROM table2"] +} +``` + +|property|description|default|required?| +|--------|-----------|-------|---------| +|type|This should be "sql".||Yes| +|database|Specifies the database connection details.||Yes| +|maxCacheCapacityBytes|Maximum size of the cache space in bytes. 0 means disabling cache. Cached files are not removed until the ingestion task completes.|1073741824|No| +|maxFetchCapacityBytes|Maximum size of the fetch space in bytes. 0 means disabling prefetch. Prefetched files are removed immediately once they are read.|1073741824|No| +|prefetchTriggerBytes|Threshold to trigger prefetching SQL result objects.|maxFetchCapacityBytes / 2|No| +|fetchTimeout|Timeout for fetching the result set.|60000|No| +|foldCase|Toggle case folding of database column names. This may be enabled in cases where the database returns case insensitive column names in query results.|false|No| +|sqls|List of SQL queries where each SQL query would retrieve the data to be indexed.||Yes| + +#### Database + +|property|description|default|required?| +|--------|-----------|-------|---------| +|type|The type of database to query. Valid values are `mysql` and `postgresql`_||Yes| +|connectorConfig|Specify the database connection properties via `connectURI`, `user` and `password`||Yes| + + + +### InlineFirehose + +This Firehose can be used to read the data inlined in its own spec. +It can be used for demos or for quickly testing out parsing and schema, and works with `string` typed parsers. +A sample inline Firehose spec is shown below: + +```json +{ + "type": "inline", + "data": "0,values,formatted\n1,as,CSV" +} +``` + +|property|description|required?| +|--------|-----------|---------| +|type|This should be "inline".|yes| +|data|Inlined data to ingest.|yes| + + + +### CombiningFirehose + +This Firehose can be used to combine and merge data from a list of different Firehoses. + +```json +{ + "type": "combining", + "delegates": [ { firehose1 }, { firehose2 }, ... ] +} +``` + +|property|description|required?| +|--------|-----------|---------| +|type|This should be "combining"|yes| +|delegates|List of Firehoses to combine data from|yes| diff --git a/docs/content/ingestion/schema-design.md b/docs/ingestion/schema-design.md similarity index 65% rename from docs/content/ingestion/schema-design.md rename to docs/ingestion/schema-design.md index 0f344e9cae04..7ecc95a81563 100644 --- a/docs/content/ingestion/schema-design.md +++ b/docs/ingestion/schema-design.md @@ -1,6 +1,6 @@ --- -layout: doc_page -title: "Schema Design" +id: schema-design +title: "Schema design tips" --- -# Schema Design +## Druid's data model -This page is meant to assist users in designing a schema for data to be ingested in Apache Druid (incubating). Druid offers a unique data -modeling system that bears similarity to both relational and timeseries models. The key factors are: +For general information, check out the documentation on [Druid's data model](index.md#data-model) on the main +ingestion overview page. The rest of this page discusses tips for users coming from other kinds of systems, as well as +general tips and common practices. -* Druid data is stored in [datasources](index.html#datasources), which are similar to tables in a traditional RDBMS. +* Druid data is stored in [datasources](index.md#datasources), which are similar to tables in a traditional RDBMS. * Druid datasources can be ingested with or without [rollup](#rollup). With rollup enabled, Druid partially aggregates your data during ingestion, potentially reducing its row count, decreasing storage footprint, and improving query performance. With rollup disabled, Druid stores one row for each row in your input data, without any pre-aggregation. * Every row in Druid must have a timestamp. Data is always partitioned by time, and every query has a time filter. Query results can also be broken down by time buckets like minutes, hours, days, and so on. * All columns in Druid datasources, other than the timestamp column, are either dimensions or metrics. This follows the [standard naming convention](https://en.wikipedia.org/wiki/Online_analytical_processing#Overview_of_OLAP_systems) of OLAP data. * Typical production datasources have tens to hundreds of columns. -* [Dimension columns](ingestion-spec.html#dimensions) are stored as-is, so they can be filtered on, grouped by, or aggregated at query time. They are always single Strings, [arrays of Strings](../querying/multi-value-dimensions.html), single Longs, single Doubles or single Floats. -* Metric columns are stored [pre-aggregated](../querying/aggregations.html), so they can only be aggregated at query time (not filtered or grouped by). They are often stored as numbers (integers or floats) but can also be stored as complex objects like [HyperLogLog sketches or approximate quantile sketches](../querying/aggregations.html#approx). Metrics can be configured at ingestion time even when rollup is disabled, but are most useful when rollup is enabled. +* [Dimension columns](index.md#dimensions) are stored as-is, so they can be filtered on, grouped by, or aggregated at query time. They are always single Strings, [arrays of Strings](../querying/multi-value-dimensions.md), single Longs, single Doubles or single Floats. +* [Metric columns](index.md#metrics) are stored [pre-aggregated](../querying/aggregations.md), so they can only be aggregated at query time (not filtered or grouped by). They are often stored as numbers (integers or floats) but can also be stored as complex objects like [HyperLogLog sketches or approximate quantile sketches](../querying/aggregations.md#approx). Metrics can be configured at ingestion time even when rollup is disabled, but are most useful when rollup is enabled. -The rest of this page discusses tips for users coming from other kinds of systems, as well as general tips and -common practices. ## If you're coming from a... @@ -44,7 +43,7 @@ common practices. (Like Hive or PostgreSQL.) -Druid datasources are generally equivalent to tables in a relational database. Druid [lookups](../querying/lookups.html) +Druid datasources are generally equivalent to tables in a relational database. Druid [lookups](../querying/lookups.md) can act similarly to data-warehouse-style dimension tables, but as you'll see below, denormalization is often recommended if you can get away with it. @@ -63,7 +62,7 @@ an added speed boost, this also allows Druid's query layer to operate directly o Perhaps counter-intuitively, this does _not_ substantially increase storage footprint relative to normalized schemas, since Druid uses dictionary encoding to effectively store just a single integer per row for string columns. -If necessary, Druid datasources can be partially normalized through the use of [lookups](../querying/lookups.html), +If necessary, Druid datasources can be partially normalized through the use of [lookups](../querying/lookups.md), which are the rough equivalent of dimension tables in a relational database. At query time, you would use Druid's SQL `LOOKUP` function, or native lookup extraction functions, instead of using the JOIN keyword like you would in a relational database. Since lookup tables impose an increase in memory footprint and incur more computational overhead @@ -74,7 +73,7 @@ Tips for modeling relational data in Druid: - Druid datasources do not have primary or unique keys, so skip those. - Denormalize if possible. If you need to be able to update dimension / lookup tables periodically and have those -changes reflected in already-ingested data, consider partial normalization with [lookups](../querying/lookups.html). +changes reflected in already-ingested data, consider partial normalization with [lookups](../querying/lookups.md). - If you need to join two large distributed tables with each other, you must do this before loading the data into Druid. Druid does not support query-time joins of two datasources. Lookups do not help here, since a full copy of each lookup table is stored on each Druid server, so they are not a good choice for large tables. @@ -90,7 +89,7 @@ it is a natural choice for storing timeseries data. Its flexible data model allo non-timeseries data, even in the same datasource. To achieve best-case compression and query performance in Druid for timeseries data, it is important to partition and -sort by metric name, like timeseries databases often do. See [Partitioning and sorting](#partitioning) for more details. +sort by metric name, like timeseries databases often do. See [Partitioning and sorting](index.html#partitioning) for more details. Tips for modeling timeseries data in Druid: @@ -99,17 +98,17 @@ for ingestion and aggregation. - Create a dimension that indicates the name of the series that a data point belongs to. This dimension is often called "metric" or "name". Do not get the dimension named "metric" confused with the concept of Druid metrics. Place this first in the list of dimensions in your "dimensionsSpec" for best performance (this helps because it improves locality; -see [partitioning and sorting](#partitioning) below for details). +see [partitioning and sorting](index.html#partitioning) below for details). - Create other dimensions for attributes attached to your data points. These are often called "tags" in timeseries database systems. -- Create [metrics](../querying/aggregations.html) corresponding to the types of aggregations that you want to be able +- Create [metrics](../querying/aggregations.md) corresponding to the types of aggregations that you want to be able to query. Typically this includes "sum", "min", and "max" (in one of the long, float, or double flavors). If you want to be able to compute percentiles or quantiles, use Druid's [approximate aggregators](../querying/aggregations.html#approx). - Consider enabling [rollup](#rollup), which will allow Druid to potentially combine multiple points into one row in your Druid datasource. This can be useful if you want to store data at a different time granularity than it is naturally emitted. It is also useful if you want to combine timeseries and non-timeseries data in the same datasource. - If you don't know ahead of time what columns you'll want to ingest, use an empty dimensions list to trigger -[automatic detection of dimension columns](#schemaless). +[automatic detection of dimension columns](#schema-less-dimensions). ### Log aggregation model @@ -124,79 +123,26 @@ nested data. Tips for modeling log data in Druid: - If you don't know ahead of time what columns you'll want to ingest, use an empty dimensions list to trigger -[automatic detection of dimension columns](#schemaless). -- If you have nested data, flatten it using [Druid flattenSpecs](flatten-json.html). +[automatic detection of dimension columns](#schema-less-dimensions). +- If you have nested data, flatten it using a [`flattenSpec`](index.md#flattenspec). - Consider enabling [rollup](#rollup) if you have mainly analytical use cases for your log data. This will mean you lose the ability to retrieve individual events from Druid, but you potentially gain substantial compression and query performance boosts. ## General tips and best practices - - ### Rollup -Druid can roll up data as it is ingested to minimize the amount of raw data that needs to be stored. Rollup is -a form of summarization or pre-aggregation. Columns stored in a Druid datasource are split into _dimensions_ and -_measures_. When rollup is enabled, any number of rows that have identical dimensions to each other (including an -identical timestamp after `queryGranularity`-based truncation has been applied) can be collapsed into a single row in -Druid. - -In practice, rolling up data can dramatically reduce the size of data that needs to be stored, reducing row counts -by potentially orders of magnitude. This storage reduction does come at a cost: as we roll up data, we lose the ability -to query individual events. - -You can measure the rollup ratio of a datasource by comparing the number of rows in Druid with the number of ingested -events. One way to do this is with a [Druid SQL](../querying/sql.html) query like: - -``` --- "* 1.0" so we get decimal rather than integer division -SELECT SUM("event_count") / COUNT(*) * 1.0 FROM datasource -``` - -In this case, `event_count` was a "count" type metric specified at ingestion time. See -[Counting the number of ingested events](#counting) below for more details about how counting works when rollup is -enabled. - -Tips for maximizing rollup: - -- Generally, the fewer dimensions you have, and the lower the cardinality of your dimensions, the better rollup ratios -you will achieve. -- Use [sketches](#sketches) to avoid storing high cardinality dimensions, which harm rollup ratios. -- Adjusting `queryGranularity` at ingestion time (for example, using `PT5M` instead of `PT1M`) increases the -likelihood of two rows in Druid having matching timestamps, and can improve your rollup ratios. -- It can be beneficial to load the same data into more than one Druid datasource. Some users choose to create a "full" -datasource that has rollup disabled (or enabled, but with a minimal rollup ratio) and an "abbreviated" datasource that -has fewer dimensions and a higher rollup ratio. When queries only involve dimensions in the "abbreviated" set, using -that datasource leads to much faster query times. This can often be done with just a small increase in storage -footprint, since abbreviated datasources tend to be substantially smaller. - -For more details about how rollup works and how to configure it, see the [ingestion overview](index.html#rollup). - - +Druid can roll up data as it is ingested to minimize the amount of raw data that needs to be stored. This is a form +of summarization or pre-aggregation. For more details, see the [Rollup](index.md#rollup) section of the ingestion +documentation. ### Partitioning and sorting -Druid always partitions your data by time, but the segments within a particular time chunk may be -[partitioned further](index.html#partitioning) using options that vary based on the ingestion method you have chosen. - -In general, partitioning using a particular dimension will improve locality, meaning that rows with the same value -for that dimension are stored together and can be accessed quickly. This gives you better performance when querying that -dimension, including both filtering and grouping on it. Partitioning on a dimension that "naturally" partitions your -data (such as a customer ID) will also tend to improve compression and give you a smaller storage footprint. These -effects will be maximized by putting the partition dimension first in the "dimensions" list of your "dimensionsSpec", -which also tells Druid to sort data segments by that column. - -Note that Druid always sorts rows within a segment by timestamp first, even before the first dimension listed in your -dimensionsSpec. This can affect storage footprint and data locality. If you want to truly sort by a dimension, you can -work around this by setting `queryGranularity` equal to `segmentGranularity` in your ingestion spec, and then if you -need finer-granularity timestamps, ingesting your timestamp as a separate long-typed dimension. See -[Secondary timestamps](#secondary-timestamps) below for more information. This limitation may be removed in future -versions of Druid. +Optimally partitioning and sorting your data can have substantial impact on footprint and performance. For more details, +see the [Partitioning](index.md#partitioning) section of the ingestion documentation. -For details about how partitioning works and how to configure it, see the [ingestion overview](index.html#partitioning). - - + ### Sketches for high cardinality columns @@ -226,8 +172,6 @@ For details about the sketches available in Druid, see the If you prefer videos, take a look at [Not exactly!](https://www.youtube.com/watch?v=Hpd3f_MLdXo), a conference talk about sketches in Druid. - - ### String vs numeric dimensions If the user wishes to ingest a column as a numeric-typed dimension (Long, Double or Float), it is necessary to specify the type of the column in the `dimensions` section of the `dimensionsSpec`. If the type is omitted, Druid will ingest a column as the default String type. @@ -236,35 +180,34 @@ There are performance tradeoffs between string and numeric columns. Numeric colu than string columns. But unlike string columns, numeric columns don't have indexes, so they can be slower to filter on. You may want to experiment to find the optimal choice for your use case. -For details about how to configure numeric dimensions, see the -[Dimension Schema](../ingestion/ingestion-spec.html#dimension-schema) page. +For details about how to configure numeric dimensions, see the [`dimensionsSpec`](index.md#dimensionsspec) documentation. + - ### Secondary timestamps Druid schemas must always include a primary timestamp. The primary timestamp is used for -[partitioning and sorting](#partitioning) your data, so it should be the timestamp that you will most often filter on. +[partitioning and sorting](index.html#partitioning) your data, so it should be the timestamp that you will most often filter on. Druid is able to rapidly identify and retrieve data corresponding to time ranges of the primary timestamp column. If your data has more than one timestamp, you can ingest the others as secondary timestamps. The best way to do this -is to ingest them as [long-typed dimensions](../ingestion/ingestion-spec.html#dimension-schema) in milliseconds format. -If necessary, you can get them into this format using [transform specs](transform-spec.html) and -[expressions](../misc/math-expr.html) like `timestamp_parse`, which returns millisecond timestamps. +is to ingest them as [long-typed dimensions](index.md#dimensionsspec) in milliseconds format. +If necessary, you can get them into this format using a [`transformSpec`](index.md#transformspec) and +[expressions](../misc/math-expr.md) like `timestamp_parse`, which returns millisecond timestamps. At query time, you can query secondary timestamps with [SQL time functions](../querying/sql.html#time-functions) like `MILLIS_TO_TIMESTAMP`, `TIME_FLOOR`, and others. If you're using native Druid queries, you can use -[expressions](../misc/math-expr.html). +[expressions](../misc/math-expr.md). ### Nested dimensions -At the time of this writing, Druid does not support nested dimensions. Nested dimensions need to be flattened. For example, +At the time of this writing, Druid does not support nested dimensions. Nested dimensions need to be flattened. For example, if you have data of the following form: - + ``` {"foo":{"bar": 3}} ``` - + then before indexing it, you should transform it to: ``` @@ -272,9 +215,9 @@ then before indexing it, you should transform it to: ``` Druid is capable of flattening JSON, Avro, or Parquet input data. -Please read about [flattenSpecs](../ingestion/flatten-json.html) for more details. +Please read about [`flattenSpec`](index.md#flattenspec) for more details. - + ### Counting the number of ingested events @@ -283,7 +226,7 @@ ingested. They tell you the number of rows in the Druid datasource, which may be ingested. In this case, a count aggregator at _ingestion_ time can be used to count the number of events. However, it is important to note -that when you query for this metric, you should use a `longSum` aggregator. A `count` aggregator at query time will return +that when you query for this metric, you should use a `longSum` aggregator. A `count` aggregator at query time will return the number of Druid rows for the time interval, which can be used to determine what the roll-up ratio was. To clarify with an example, if your ingestion spec contains: @@ -307,20 +250,20 @@ You should query for the number of ingested rows with: ... ``` - + ### Schema-less dimensions -If the `dimensions` field is left empty in your ingestion spec, Druid will treat every column that is not the timestamp column, +If the `dimensions` field is left empty in your ingestion spec, Druid will treat every column that is not the timestamp column, a dimension that has been excluded, or a metric column as a dimension. Note that when using schema-less ingestion, all dimensions will be ingested as String-typed dimensions. ### Including the same column as a dimension and a metric -One workflow with unique IDs is to be able to filter on a particular ID, while still being able to do fast unique counts on the ID column. -If you are not using schema-less dimensions, this use case is supported by setting the `name` of the metric to something different than the dimension. -If you are using schema-less dimensions, the best practice here is to include the same column twice, once as a dimension, and as a `hyperUnique` metric. This may involve +One workflow with unique IDs is to be able to filter on a particular ID, while still being able to do fast unique counts on the ID column. +If you are not using schema-less dimensions, this use case is supported by setting the `name` of the metric to something different than the dimension. +If you are using schema-less dimensions, the best practice here is to include the same column twice, once as a dimension, and as a `hyperUnique` metric. This may involve some work at ETL time. As an example, for schema-less dimensions, repeat the same column: @@ -330,7 +273,7 @@ As an example, for schema-less dimensions, repeat the same column: ``` and in your `metricsSpec`, include: - + ``` { "type" : "hyperUnique", "name" : "devices", "fieldName" : "device_id_met" } ``` diff --git a/docs/content/ingestion/standalone-realtime.md b/docs/ingestion/standalone-realtime.md similarity index 99% rename from docs/content/ingestion/standalone-realtime.md rename to docs/ingestion/standalone-realtime.md index 27065c5e5007..4fbfcc7fd286 100644 --- a/docs/content/ingestion/standalone-realtime.md +++ b/docs/ingestion/standalone-realtime.md @@ -22,8 +22,6 @@ title: "Realtime Process" ~ under the License. --> -# Realtime Process - Older versions of Apache Druid (incubating) supported a standalone 'Realtime' process to query and index 'stream pull' modes of real-time ingestion. These processes would periodically build segments for the data they had collected over some span of time and then set up hand-off to [Historical](../design/historical.html) servers. diff --git a/docs/ingestion/tasks.md b/docs/ingestion/tasks.md new file mode 100644 index 000000000000..fac8cc1bc541 --- /dev/null +++ b/docs/ingestion/tasks.md @@ -0,0 +1,387 @@ +--- +id: tasks +title: "Task reference" +--- + + + +Tasks do all [ingestion](index.md)-related work in Druid. + +For batch ingestion, you will generally submit tasks directly to Druid using the +[Task APIs](../operations/api-reference.md#tasks). For streaming ingestion, tasks are generally submitted for you by a +supervisor. + +## Task API + +Task APIs are available in two main places: + +- The [Overlord](../design/overlord.md) process offers HTTP APIs to submit tasks, cancel tasks, check their status, +review logs and reports, and more. Refer to the [Tasks API reference page](../operations/api-reference.md#tasks) for a +full list. +- Druid SQL includes a [`sys.tasks`](../querying/sql.md#tasks-table) table that provides information about currently +running tasks. This table is read-only, and has a limited (but useful!) subset of the full information available through +the Overlord APIs. + + + +## Task reports + +### Completion report + +After a task completes, a report containing information about the number of rows ingested and any parse exceptions that occurred is available at: + +``` +http://:/druid/indexer/v1/task//reports +``` + +The reporting feature is supported by the [simple native batch task](../ingestion/native-batch.md#simple-task), the Hadoop batch task, and Kafka and Kinesis ingestion tasks. + +An example output is shown below, along with a description of the fields: + +```json +{ + "ingestionStatsAndErrors": { + "taskId": "compact_twitter_2018-09-24T18:24:23.920Z", + "payload": { + "ingestionState": "COMPLETED", + "unparseableEvents": {}, + "rowStats": { + "determinePartitions": { + "processed": 0, + "processedWithError": 0, + "thrownAway": 0, + "unparseable": 0 + }, + "buildSegments": { + "processed": 5390324, + "processedWithError": 0, + "thrownAway": 0, + "unparseable": 0 + } + }, + "errorMsg": null + }, + "type": "ingestionStatsAndErrors" + } +} +``` + +The `ingestionStatsAndErrors` report provides information about row counts and errors. + +The `ingestionState` shows what step of ingestion the task reached. Possible states include: +* `NOT_STARTED`: The task has not begun reading any rows +* `DETERMINE_PARTITIONS`: The task is processing rows to determine partitioning +* `BUILD_SEGMENTS`: The task is processing rows to construct segments +* `COMPLETED`: The task has finished its work. + +Only batch tasks have the DETERMINE_PARTITIONS phase. Realtime tasks such as those created by the Kafka Indexing Service do not have a DETERMINE_PARTITIONS phase. + +`unparseableEvents` contains lists of exception messages that were caused by unparseable inputs. This can help with identifying problematic input rows. There will be one list each for the DETERMINE_PARTITIONS and BUILD_SEGMENTS phases. Note that the Hadoop batch task does not support saving of unparseable events. + +the `rowStats` map contains information about row counts. There is one entry for each ingestion phase. The definitions of the different row counts are shown below: +* `processed`: Number of rows successfully ingested without parsing errors +* `processedWithError`: Number of rows that were ingested, but contained a parsing error within one or more columns. This typically occurs where input rows have a parseable structure but invalid types for columns, such as passing in a non-numeric String value for a numeric column. +* `thrownAway`: Number of rows skipped. This includes rows with timestamps that were outside of the ingestion task's defined time interval and rows that were filtered out with a [`transformSpec`](index.md#transformspec). +* `unparseable`: Number of rows that could not be parsed at all and were discarded. This tracks input rows without a parseable structure, such as passing in non-JSON data when using a JSON parser. + +The `errorMsg` field shows a message describing the error that caused a task to fail. It will be null if the task was successful. + +## Live reports + +### Row stats + +The non-parallel [simple native batch task](../ingestion/native-batch.md#simple-task), the Hadoop batch task, and Kafka and Kinesis ingestion tasks support retrieval of row stats while the task is running. + +The live report can be accessed with a GET to the following URL on a Peon running a task: + +``` +http://:/druid/worker/v1/chat//rowStats +``` + +An example report is shown below. The `movingAverages` section contains 1 minute, 5 minute, and 15 minute moving averages of increases to the four row counters, which have the same definitions as those in the completion report. The `totals` section shows the current totals. + +``` +{ + "movingAverages": { + "buildSegments": { + "5m": { + "processed": 3.392158326408501, + "unparseable": 0, + "thrownAway": 0, + "processedWithError": 0 + }, + "15m": { + "processed": 1.736165476881023, + "unparseable": 0, + "thrownAway": 0, + "processedWithError": 0 + }, + "1m": { + "processed": 4.206417693750045, + "unparseable": 0, + "thrownAway": 0, + "processedWithError": 0 + } + } + }, + "totals": { + "buildSegments": { + "processed": 1994, + "processedWithError": 0, + "thrownAway": 0, + "unparseable": 0 + } + } +} +``` + +For the Kafka Indexing Service, a GET to the following Overlord API will retrieve live row stat reports from each task being managed by the supervisor and provide a combined report. + +``` +http://:/druid/indexer/v1/supervisor//stats +``` + +### Unparseable events + +Lists of recently-encountered unparseable events can be retrieved from a running task with a GET to the following Peon API: + +``` +http://:/druid/worker/v1/chat//unparseableEvents +``` + +Note that this functionality is not supported by all task types. Currently, it is only supported by the +non-parallel [native batch task](../ingestion/native-batch.md) (type `index`) and the tasks created by the Kafka +and Kinesis indexing services. + + + +## Task lock system + +This section explains the task locking system in Druid. Druid's locking system +and versioning system are tighly coupled with each other to guarantee the correctness of ingested data. + +## "Overshadowing" between segments + +You can run a task to overwrite existing data. The segments created by an overwriting task _overshadows_ existing segments. +Note that the overshadow relation holds only for the same time chunk and the same data source. +These overshadowed segments are not considered in query processing to filter out stale data. + +Each segment has a _major_ version and a _minor_ version. The major version is +represented as a timestamp in the format of [`"yyyy-MM-dd'T'hh:mm:ss"`](https://www.joda.org/joda-time/apidocs/org/joda/time/format/DateTimeFormat.html) +while the minor version is an integer number. These major and minor versions +are used to determine the overshadow relation between segments as seen below. + +A segment `s1` overshadows another `s2` if + +- `s1` has a higher major version than `s2`, or +- `s1` has the same major version and a higher minor version than `s2`. + +Here are some examples. + +- A segment of the major version of `2019-01-01T00:00:00.000Z` and the minor version of `0` overshadows + another of the major version of `2018-01-01T00:00:00.000Z` and the minor version of `1`. +- A segment of the major version of `2019-01-01T00:00:00.000Z` and the minor version of `1` overshadows + another of the major version of `2019-01-01T00:00:00.000Z` and the minor version of `0`. + +## Locking + +If you are running two or more [druid tasks](./tasks.html) which generate segments for the same data source and the same time chunk, +the generated segments could potentially overshadow each other, which could lead to incorrect query results. + +To avoid this problem, tasks will attempt to get locks prior to creating any segment in Druid. +There are two types of locks, i.e., _time chunk lock_ and _segment lock_. + +When the time chunk lock is used, a task locks the entire time chunk of a data source where generated segments will be written. +For example, suppose we have a task ingesting data into the time chunk of `2019-01-01T00:00:00.000Z/2019-01-02T00:00:00.000Z` of the `wikipedia` data source. +With the time chunk locking, this task will lock the entire time chunk of `2019-01-01T00:00:00.000Z/2019-01-02T00:00:00.000Z` of the `wikipedia` data source +before it creates any segments. As long as it holds the lock, any other tasks will be unable to create segments for the same time chunk of the same data source. +The segments created with the time chunk locking have a _higher_ major version than existing segments. Their minor version is always `0`. + +When the segment lock is used, a task locks individual segments instead of the entire time chunk. +As a result, two or more tasks can create segments for the same time chunk of the same data source simultaneously +if they are reading different segments. +For example, a Kafka indexing task and a compaction task can always write segments into the same time chunk of the same data source simultaneously. +The reason for this is because a Kafka indexing task always appends new segments, while a compaction task always overwrites existing segments. +The segments created with the segment locking have the _same_ major version and a _higher_ minor version. + +> The segment locking is still experimental. It could have unknown bugs which potentially lead to incorrect query results. + +To enable segment locking, you may need to set `forceTimeChunkLock` to `false` in the [task context](#context). +Once `forceTimeChunkLock` is unset, the task will choose a proper lock type to use automatically. +Please note that segment lock is not always available. The most common use case where time chunk lock is enforced is +when an overwriting task changes the segment granularity. +Also, the segment locking is supported by only native indexing tasks and Kafka/Kinesis indexing tasks. +The Hadoop indexing tasks and realtime indexing tasks (with [Tranquility](tranquility.md)) don't support it yet. + +`forceTimeChunkLock` in the task context is only applied to individual tasks. +If you want to unset it for all tasks, you would want to set `druid.indexer.tasklock.forceTimeChunkLock` to false in the [overlord configuration](../configuration/index.html#overlord-operations). + +Lock requests can conflict with each other if two or more tasks try to get locks for the overlapped time chunks of the same data source. +Note that the lock conflict can happen between different locks types. + +The behavior on lock conflicts depends on the [task priority](#lock-priority). +If all tasks of conflicting lock requests have the same priority, then the task who requested first will get the lock. +Other tasks will wait for the task to release the lock. + +If a task of a lower priority asks a lock later than another of a higher priority, +this task will also wait for the task of a higher priority to release the lock. +If a task of a higher priority asks a lock later than another of a lower priority, +then this task will _preempt_ the other task of a lower priority. The lock +of the lower-prioritized task will be revoked and the higher-prioritized task will acquire a new lock. + +This lock preemption can happen at any time while a task is running except +when it is _publishing segments_ in a critical section. Its locks become preemptable again once publishing segments is finished. + +Note that locks are shared by the tasks of the same groupId. +For example, Kafka indexing tasks of the same supervisor have the same groupId and share all locks with each other. + + + +## Lock priority + +Each task type has a different default lock priority. The below table shows the default priorities of different task types. Higher the number, higher the priority. + +|task type|default priority| +|---------|----------------| +|Realtime index task|75| +|Batch index task|50| +|Merge/Append/Compaction task|25| +|Other tasks|0| + +You can override the task priority by setting your priority in the task context as below. + +```json +"context" : { + "priority" : 100 +} +``` + + + +## Context parameters + +The task context is used for various individual task configuration. The following parameters apply to all task types. + +|property|default|description| +|--------|-------|-----------| +|taskLockTimeout|300000|task lock timeout in millisecond. For more details, see [Locking](#locking).| +|forceTimeChunkLock|true|_Setting this to false is still experimental_
Force to always use time chunk lock. If not set, each task automatically chooses a lock type to use. If this set, it will overwrite the `druid.indexer.tasklock.forceTimeChunkLock` [configuration for the overlord](../configuration/index.html#overlord-operations). See [Locking](#locking) for more details.| +|priority|Different based on task types. See [Priority](#priority).|Task priority| + +> When a task acquires a lock, it sends a request via HTTP and awaits until it receives a response containing the lock acquisition result. +> As a result, an HTTP timeout error can occur if `taskLockTimeout` is greater than `druid.server.http.maxIdleTime` of Overlords. + +## All task types + +### `index` + +See [Native batch ingestion (simple task)](native-batch.md#simple-task). + +### `index_parallel` + +See [Native batch ingestion (parallel task)](native-batch.md#parallel-task). + +### `index_sub` + +Submitted automatically, on your behalf, by an [`index_parallel`](#index_parallel) task. + +### `index_hadoop` + +See [Hadoop-based ingestion](hadoop.md). + +### `index_kafka` + +Submitted automatically, on your behalf, by a +[Kafka-based ingestion supervisor](../development/extensions-core/kafka-ingestion.md). + +### `index_kinesis` + +Submitted automatically, on your behalf, by a +[Kinesis-based ingestion supervisor](../development/extensions-core/kinesis-ingestion.md). + +### `index_realtime` + +Submitted automatically, on your behalf, by [Tranquility](tranquility.md). + +### `compact` + +Compaction tasks merge all segments of the given interval. See the documentation on +[compaction](data-management.md#compaction-and-reindexing) for details. + +### `kill` + +Kill tasks delete all metadata about certain segments and removes them from deep storage. +See the documentation on [deleting data](../ingestion/data-management.md#delete) for details. + +### `append` + +Append tasks append a list of segments together into a single segment (one after the other). The grammar is: + +```json +{ + "type": "append", + "id": , + "dataSource": , + "segments": , + "aggregations": , + "context": +} +``` + +### `merge` + +Merge tasks merge a list of segments together. Any common timestamps are merged. +If rollup is disabled as part of ingestion, common timestamps are not merged and rows are reordered by their timestamp. + +> The [`compact`](#compact) task is often a better choice than the `merge` task. + +The grammar is: + +```json +{ + "type": "merge", + "id": , + "dataSource": , + "aggregations": , + "rollup": , + "segments": , + "context": +} +``` + +### `same_interval_merge` + +Same Interval Merge task is a shortcut of merge task, all segments in the interval are going to be merged. + +> The [`compact`](#compact) task is often a better choice than the `same_interval_merge` task. + +The grammar is: + +```json +{ + "type": "same_interval_merge", + "id": , + "dataSource": , + "aggregations": , + "rollup": , + "interval": , + "context": +} +``` diff --git a/docs/ingestion/tranquility.md b/docs/ingestion/tranquility.md new file mode 100644 index 000000000000..b50ac1956046 --- /dev/null +++ b/docs/ingestion/tranquility.md @@ -0,0 +1,36 @@ +--- +id: tranquility +title: "Tranquility" +--- + + + +[Tranquility](https://github.com/druid-io/tranquility/) is a package for pushing +streams to Druid in real-time. Druid does not come bundled with Tranquility; it is available as a separate download. + +Note that as of this writing, the latest available version of Tranquility is built against the rather old Druid 0.9.2 +release. It will still work with the latest Druid servers, but not all features and functionality will be available +due to limitations of older Druid APIs on the Tranquility side. + +For new projects that require streaming ingestion, we recommend using Druid's native support for +[Apache Kafka](../development/extensions-core/kafka-ingestion.md) or +[Amazon Kinesis](../development/extensions-core/kinesis-ingestion.md). + +For more details, check out the [Tranquility GitHub page](https://github.com/druid-io/tranquility/). diff --git a/docs/content/misc/math-expr.md b/docs/misc/math-expr.md similarity index 97% rename from docs/content/misc/math-expr.md rename to docs/misc/math-expr.md index 0aa58b37cf6d..fbf705ff973e 100644 --- a/docs/content/misc/math-expr.md +++ b/docs/misc/math-expr.md @@ -1,6 +1,6 @@ --- -layout: doc_page -title: "Apache Druid (incubating) Expressions" +id: math-expr +title: "Expressions" --- -# Apache Druid (incubating) Expressions -
-This feature is still experimental. It has not been optimized for performance yet, and its implementation is known to - have significant inefficiencies. -
- +> This feature is still experimental. It has not been optimized for performance yet, and its implementation is known to +> have significant inefficiencies. + This expression language supports the following operators (listed in decreasing order of precedence). |Operators|Description| @@ -76,7 +73,7 @@ The following built-in functions are available. |like|like(expr, pattern[, escape]) is equivalent to SQL `expr LIKE pattern`| |case_searched|case_searched(expr1, result1, \[\[expr2, result2, ...\], else-result\])| |case_simple|case_simple(expr, value1, result1, \[\[value2, result2, ...\], else-result\])| -|bloom_filter_test|bloom_filter_test(expr, filter) tests the value of 'expr' against 'filter', a bloom filter serialized as a base64 string. See [bloom filter extension](../development/extensions-core/bloom-filter.html) documentation for additional details.| +|bloom_filter_test|bloom_filter_test(expr, filter) tests the value of 'expr' against 'filter', a bloom filter serialized as a base64 string. See [bloom filter extension](../development/extensions-core/bloom-filter.md) documentation for additional details.| ## String functions @@ -85,7 +82,7 @@ The following built-in functions are available. |concat|concat(expr, expr...) concatenate a list of strings| |format|format(pattern[, args...]) returns a string formatted in the manner of Java's [String.format](https://docs.oracle.com/javase/8/docs/api/java/lang/String.html#format-java.lang.String-java.lang.Object...-).| |like|like(expr, pattern[, escape]) is equivalent to SQL `expr LIKE pattern`| -|lookup|lookup(expr, lookup-name) looks up expr in a registered [query-time lookup](../querying/lookups.html)| +|lookup|lookup(expr, lookup-name) looks up expr in a registered [query-time lookup](../querying/lookups.md)| |parse_long|parse_long(string[, radix]) parses a string as a long with the given radix, or 10 (decimal) if a radix is not provided.| |regexp_extract|regexp_extract(expr, pattern[, index]) applies a regular expression pattern and extracts a capture group index, or null if there is no match. If index is unspecified or zero, returns the substring that matched the pattern.| |replace|replace(expr, pattern, replacement) replaces pattern with replacement| @@ -164,7 +161,7 @@ See javadoc of java.lang.Math for detailed explanation for each function. |ulp|ulp(x) would return the size of an ulp of the argument x| -## Array Functions +## Array functions | function | description | | --- | --- | @@ -184,7 +181,7 @@ See javadoc of java.lang.Math for detailed explanation for each function. | string_to_array(str1,str2) | splits str1 into an array on the delimiter specified by str2 | -## Apply Functions +## Apply functions | function | description | | --- | --- | @@ -197,7 +194,7 @@ See javadoc of java.lang.Math for detailed explanation for each function. | all(lambda,arr) | returns 1 if all elements in the array matches the lambda expression, else 0 | -## IP Address Functions +## IP address functions For the IPv4 address functions, the `address` argument can either be an IPv4 dotted-decimal string (e.g., "192.168.0.1") or an IP address represented as a long (e.g., 3232235521). The `subnet` diff --git a/docs/content/misc/papers-and-talks.md b/docs/misc/papers-and-talks.md similarity index 96% rename from docs/content/misc/papers-and-talks.md rename to docs/misc/papers-and-talks.md index 6ba1c4061b85..38a73341b7c7 100644 --- a/docs/content/misc/papers-and-talks.md +++ b/docs/misc/papers-and-talks.md @@ -1,6 +1,6 @@ --- -layout: doc_page -title: "Apache Druid (incubating) Papers" +id: papers-and-talks +title: "Papers" --- -# Papers +## Papers * [Druid: A Real-time Analytical Data Store](http://static.druid.io/docs/druid.pdf) - Discusses the Druid architecture in detail. * [The RADStack: Open Source Lambda Architecture for Interactive Analytics](http://static.druid.io/docs/radstack.pdf) - Discusses how Druid supports real-time and batch workflows. -# Presentations +## Presentations * [Introduction to Druid](https://www.youtube.com/watch?v=hgmxVPx4vVw) - Discusses the motivations behind Druid and the architecture of the system. diff --git a/docs/content/operations/alerts.md b/docs/operations/alerts.md similarity index 95% rename from docs/content/operations/alerts.md rename to docs/operations/alerts.md index acbd60d4a709..da9d7b1b9740 100644 --- a/docs/content/operations/alerts.md +++ b/docs/operations/alerts.md @@ -1,6 +1,6 @@ --- -layout: doc_page -title: "Apache Druid (incubating) Alerts" +id: alerts +title: "Alerts" --- -# Druid Alerts Druid generates alerts on getting into unexpected situations. diff --git a/docs/content/operations/api-reference.md b/docs/operations/api-reference.md similarity index 92% rename from docs/content/operations/api-reference.md rename to docs/operations/api-reference.md index 716d5e39f74d..d271a950d727 100644 --- a/docs/content/operations/api-reference.md +++ b/docs/operations/api-reference.md @@ -1,6 +1,6 @@ --- -layout: doc_page -title: "Apache Druid (incubating) API Reference" +id: api-reference +title: "API reference" --- -# Apache Druid (incubating) API Reference This page documents all of the API endpoints for each Druid service type. -## Table of Contents - * [Common](#common) - * [Master Server](#master-server) - * [Coordinator](#coordinator) - * [Overlord](#overlord) - * [Data Server](#data-server) - * [MiddleManager](#middlemanager) - * [Peon](#peon) - * [Historical](#historical) - * [Query Server](#query-server) - * [Broker](#broker) - ## Common The following endpoints are supported by all processes. @@ -151,6 +138,8 @@ Returns a list of all segments, overlapping with any of given intervals, for a Returns a list of all segments, overlapping with any of given intervals, for a datasource with the full segment metadata as stored in the metadata store. Request body is array of string ISO 8601 intervals like [interval1, interval2,...] for example ["2012-01-01T00:00:00.000/2012-01-03T00:00:00.000", "2012-01-05T00:00:00.000/2012-01-07T00:00:00.000"] + + #### Datasources Note that all _interval_ URL parameters are ISO 8601 strings delimited by a `_` instead of a `/` @@ -223,7 +212,7 @@ Returns full segment metadata for a specific segment in the cluster. Return the tiers that a datasource exists in. #### Note for coordinator's POST and DELETE API's -The segments would be enabled when these API's are called, but then can be disabled again by the coordinator if any dropRule matches. Segments enabled by these API's might not be loaded by historical processes if no loadRule matches. If an indexing or kill task runs at the same time as these API's are invoked, the behavior is undefined. Some segments might be killed and others might be enabled. It's also possible that all segments might be disabled but at the same time, the indexing task is able to read data from those segments and succeed. +The segments would be enabled when these API's are called, but then can be disabled again by the coordinator if any dropRule matches. Segments enabled by these API's might not be loaded by historical processes if no loadRule matches. If an indexing or kill task runs at the same time as these API's are invoked, the behavior is undefined. Some segments might be killed and others might be enabled. It's also possible that all segments might be disabled but at the same time, the indexing task is able to read data from those segments and succeed. Caution : Avoid using indexing or kill tasks and these API's at the same time for the same datasource and time chunk. (It's fine if the time chunks or datasource don't overlap) @@ -233,19 +222,19 @@ Caution : Avoid using indexing or kill tasks and these API's at the same time fo Marks as used all segments belonging to a data source. Returns a JSON object of the form `{"numChangedSegments": }` with the number of segments in the database whose state has been changed (that is, -the segments were marked as used) as the result of this API call. +the segments were marked as used) as the result of this API call. * `/druid/coordinator/v1/datasources/{dataSourceName}/segments/{segmentId}` Marks as used a segment of a data source. Returns a JSON object of the form `{"segmentStateChanged": }` with the boolean indicating if the state of the segment has been changed (that is, the segment was marked as used) as the -result of this API call. +result of this API call. * `/druid/coordinator/v1/datasources/{dataSourceName}/markUsed` * `/druid/coordinator/v1/datasources/{dataSourceName}/markUnused` -Marks segments (un)used for a datasource by interval or set of segment Ids. +Marks segments (un)used for a datasource by interval or set of segment Ids. When marking used only segments that are not overshadowed will be updated. @@ -261,18 +250,18 @@ JSON Request Payload: |`interval`|The interval for which to mark segments unused|"2015-09-12T03:00:00.000Z/2015-09-12T05:00:00.000Z"| |`segmentIds`|Set of segment Ids to be marked unused|["segmentId1", "segmentId2"]| -##### DELETE +##### DELETE * `/druid/coordinator/v1/datasources/{dataSourceName}` Marks as unused all segments belonging to a data source. Returns a JSON object of the form `{"numChangedSegments": }` with the number of segments in the database whose state has been changed (that is, -the segments were marked as unused) as the result of this API call. +the segments were marked as unused) as the result of this API call. * `/druid/coordinator/v1/datasources/{dataSourceName}/intervals/{interval}` * `@Deprecated. /druid/coordinator/v1/datasources/{dataSourceName}?kill=true&interval={myInterval}` -Runs a [Kill task](../ingestion/tasks.html) for a given interval and datasource. +Runs a [Kill task](../ingestion/tasks.md) for a given interval and datasource. * `/druid/coordinator/v1/datasources/{dataSourceName}/segments/{segmentId}` @@ -315,7 +304,7 @@ Returns all rules for a specified datasource and includes default datasource. * `/druid/coordinator/v1/rules/{dataSourceName}/history?count=` Returns last entries of audit history of rules for a specified datasource. - + ##### POST * `/druid/coordinator/v1/rules/{dataSourceName}` @@ -386,7 +375,7 @@ See [Compaction Configuration](../configuration/index.html#compaction-dynamic-co Removes the compaction config for a dataSource. -#### Server Information +#### Server information ##### GET @@ -412,7 +401,7 @@ Returns a list of server data objects in which each object has the following key ##### GET -* `/druid/indexer/v1/leader` +* `/druid/indexer/v1/leader` Returns the current leader Overlord of the cluster. If you have multiple Overlords, just one is leading at any given time. The others are on standby. @@ -422,7 +411,7 @@ This returns a JSON object with field "leader", either true or false. In additio server is the current leader and HTTP 404 if not. This is suitable for use as a load balancer status check if you only want the active leader to be considered in-service at the load balancer. -#### Tasks +#### Tasks Note that all _interval_ URL parameters are ISO 8601 strings delimited by a `_` instead of a `/` (e.g., 2016-06-27_2016-06-28). @@ -439,7 +428,7 @@ Retrieve list of tasks. Accepts query string parameters `state`, `datasource`, ` | `datasource`| return tasks filtered by Druid datasource.| | `createdTimeInterval`| return tasks created within the specified interval. | | `max`| maximum number of `"complete"` tasks to return. Only applies when `state` is set to `"complete"`.| -| `type`| filter tasks by task type. See [task documentation](../ingestion/tasks.html) for more details.| +| `type`| filter tasks by task type. See [task documentation](../ingestion/tasks.md) for more details.| * `/druid/indexer/v1/completeTasks` @@ -470,17 +459,15 @@ Retrieve the status of a task. Retrieve information about the segments of a task. -
-This API is deprecated and will be removed in future releases. -
+> This API is deprecated and will be removed in future releases. * `/druid/indexer/v1/task/{taskId}/reports` -Retrieve a [task completion report](../ingestion/reports.html) for a task. Only works for completed tasks. +Retrieve a [task completion report](../ingestion/tasks.md#task-reports) for a task. Only works for completed tasks. ##### POST -* `/druid/indexer/v1/task` +* `/druid/indexer/v1/task` Endpoint for submitting tasks and supervisor specs to the Overlord. Returns the taskId of the submitted task. @@ -590,12 +577,11 @@ Terminate all supervisors at once. Shutdown a supervisor. -
-This API is deprecated and will be removed in future releases. -Please use the equivalent 'terminate' instead. -
+> This API is deprecated and will be removed in future releases. +> Please use the equivalent 'terminate' instead. + +#### Dynamic configuration -#### Dynamic Configuration See [Overlord Dynamic Configuration](../configuration/index.html#overlord-dynamic-configuration) for details. Note that all _interval_ URL parameters are ISO 8601 strings delimited by a `_` instead of a `/` @@ -690,11 +676,11 @@ Shutdown a running task by `taskid`. Normal usage should prefer to use the `/dru * `/druid/worker/v1/chat/{taskId}/rowStats` -Retrieve a live row stats report from a Peon. See [task reports](../ingestion/reports.html) for more details. +Retrieve a live row stats report from a Peon. See [task reports](../ingestion/tasks.md#task-reports) for more details. * `/druid/worker/v1/chat/{taskId}/unparseableEvents` -Retrieve an unparseable events report from a Peon. See [task reports](../ingestion/reports.html) for more details. +Retrieve an unparseable events report from a Peon. See [task reports](../ingestion/tasks.md#task-reports) for more details. ### Historical @@ -743,21 +729,17 @@ druid.query.segmentMetadata.defaultHistory Returns the dimensions of the datasource. -
-This API is deprecated and will be removed in future releases. Please use SegmentMetadataQuery instead -which provides more comprehensive information and supports all dataSource types including streaming dataSources. It's also encouraged to use INFORMATION_SCHEMA tables -if you're using SQL. -
+> This API is deprecated and will be removed in future releases. Please use [SegmentMetadataQuery](../querying/segmentmetadataquery.md) instead +> which provides more comprehensive information and supports all dataSource types including streaming dataSources. It's also encouraged to use [INFORMATION_SCHEMA tables](../querying/sql.md#metadata-tables) +> if you're using SQL. * `/druid/v2/datasources/{dataSourceName}/metrics` Returns the metrics of the datasource. -
-This API is deprecated and will be removed in future releases. Please use SegmentMetadataQuery instead -which provides more comprehensive information and supports all dataSource types including streaming dataSources. It's also encouraged to use INFORMATION_SCHEMA tables -if you're using SQL. -
+> This API is deprecated and will be removed in future releases. Please use [SegmentMetadataQuery](../querying/segmentmetadataquery.md) instead +> which provides more comprehensive information and supports all dataSource types including streaming dataSources. It's also encouraged to use [INFORMATION_SCHEMA tables](../querying/sql.md#metadata-tables) +> if you're using SQL. * `/druid/v2/datasources/{dataSourceName}/candidates?intervals={comma-separated-intervals}&numCandidates={numCandidates}` diff --git a/docs/content/operations/basic-cluster-tuning.md b/docs/operations/basic-cluster-tuning.md similarity index 86% rename from docs/content/operations/basic-cluster-tuning.md rename to docs/operations/basic-cluster-tuning.md index 226cc9292317..943c9eeb9092 100644 --- a/docs/content/operations/basic-cluster-tuning.md +++ b/docs/operations/basic-cluster-tuning.md @@ -1,6 +1,6 @@ --- -layout: doc_page -title: "Basic Cluster Tuning" +id: basic-cluster-tuning +title: "Basic cluster tuning" --- -# Basic Cluster Tuning -This document provides basic guidelines for configuration properties and cluster architecture considerations related to performance tuning of an Apache Druid (incubating) deployment. +This document provides basic guidelines for configuration properties and cluster architecture considerations related to performance tuning of an Apache Druid (incubating) deployment. -Please note that this document provides general guidelines and rules-of-thumb: these are not absolute, universal rules for cluster tuning, and this introductory guide is not an exhaustive description of all Druid tuning properties, which are described in the [configuration reference](../configuration/index.html). +Please note that this document provides general guidelines and rules-of-thumb: these are not absolute, universal rules for cluster tuning, and this introductory guide is not an exhaustive description of all Druid tuning properties, which are described in the [configuration reference](../configuration/index.md). If you have questions on tuning Druid for specific use cases, or questions on configuration properties not covered in this guide, please ask the [Druid user mailing list or other community channels](https://druid.apache.org/community/). @@ -39,7 +38,7 @@ If you have questions on tuning Druid for specific use cases, or questions on co The biggest contributions to heap usage on Historicals are: - Partial unmerged query results from segments -- The stored maps for [lookups](../querying/lookups.html). +- The stored maps for [lookups](../querying/lookups.md). A general rule-of-thumb for sizing the Historical heap is `(0.5GB * number of CPU cores)`, with an upper limit of ~24GB. @@ -53,7 +52,7 @@ Running out of heap on the Historicals can indicate misconfiguration or usage pa ##### Lookups -If you are using lookups, calculate the total size of the lookup maps being loaded. +If you are using lookups, calculate the total size of the lookup maps being loaded. Druid performs an atomic swap when updating lookup maps (both the old map and the new map will exist in heap during the swap), so the maximum potential heap usage from lookup maps will be (2 * total size of all loaded lookups). @@ -61,7 +60,7 @@ Be sure to add `(2 * total size of all loaded lookups)` to your heap size in add #### Processing Threads and Buffers -Please see the [General Guidelines for Processing Threads and Buffers](#general-guidelines-for-processing-threads-and-buffers) section for an overview of processing thread/buffer configuration. +Please see the [General Guidelines for Processing Threads and Buffers](#processing-threads-buffers) section for an overview of processing thread/buffer configuration. On Historicals: @@ -81,9 +80,9 @@ A formula for estimating direct memory usage follows: The `+ 1` factor is a fuzzy estimate meant to account for the segment decompression buffers. -#### Connection Pool Sizing +#### Connection pool sizing -Please see the [General Connection Pool Guidelines](#general-connection-pool-guidelines) section for an overview of connection pool configuration. +Please see the [General Connection Pool Guidelines](#connection-pool) section for an overview of connection pool configuration. For Historicals, `druid.server.http.numThreads` should be set to a value slightly higher than the sum of `druid.broker.http.numConnections` across all the Brokers in the cluster. @@ -109,7 +108,7 @@ Having a smaller number of big servers is generally better than having a large n We recommend using SSDs for storage on the Historicals, as they handle segment data stored on disk. -#### Total Memory Usage +#### Total memory usage To estimate total memory usage of the Historical under these guidelines: @@ -120,20 +119,20 @@ The Historical will use any available free system memory (i.e., memory not used ### Broker -#### Heap Sizing +#### Heap sizing The biggest contributions to heap usage on Brokers are: - Partial unmerged query results from Historicals and Tasks -- The segment timeline: this consists of location information (which Historical/Task is serving a segment) for all currently [available](../ingestion/index.html#segment-states) segments. +- The segment timeline: this consists of location information (which Historical/Task is serving a segment) for all currently [available](../design/architecture.md#segment-lifecycle) segments. - Cached segment metadata: this consists of metadata, such as per-segment schemas, for all currently available segments. -The Broker heap requirements scale based on the number of segments in the cluster, and the total data size of the segments. +The Broker heap requirements scale based on the number of segments in the cluster, and the total data size of the segments. The heap size will vary based on data size and usage patterns, but 4G to 8G is a good starting point for a small or medium cluster (~15 servers or less). For a rough estimate of memory requirements on the high end, very large clusters with a node count on the order of ~100 nodes may need Broker heaps of 30GB-60GB. If caching is enabled on the Broker, the cache is stored on heap, sized by `druid.cache.sizeInBytes`. -#### Direct Memory Sizing +#### Direct memory sizing On the Broker, the amount of direct memory needed depends on how many merge buffers (used for merging GroupBys) are configured. The Broker does not generally need processing threads or processing buffers, as query results are merged on-heap in the HTTP connection threads instead. @@ -145,13 +144,13 @@ On the Broker, the amount of direct memory needed depends on how many merge buff There is one exception to the Broker not needing processing threads and processing buffers: -If the deprecated `chunkPeriod` property in the [query context](../querying/query-context.html) is set, GroupBy V1 queries will use processing threads and processing buffers on the Broker. +If the deprecated `chunkPeriod` property in the [query context](../querying/query-context.md) is set, GroupBy V1 queries will use processing threads and processing buffers on the Broker. Both `chunkPeriod` and GroupBy V1 are deprecated (use GroupBy V2 instead) and will be removed in the future, we do not recommend using them. The presence of the deprecated `chunkPeriod` feature is why a minimum of 1 processing thread must be configured, even if it's unused. -#### Connection Pool Sizing +#### Connection pool sizing -Please see the [General Connection Pool Guidelines](#general-connection-pool-guidelines) section for an overview of connection pool configuration. +Please see the [General Connection Pool Guidelines](#connection-pool) section for an overview of connection pool configuration. On the Brokers, please ensure that the sum of `druid.broker.http.numConnections` across all the Brokers is slightly lower than the value of `druid.server.http.numThreads` on your Historicals and Tasks. @@ -159,7 +158,7 @@ On the Brokers, please ensure that the sum of `druid.broker.http.numConnections` Tuning the cluster so that each Historical can accept 50 queries and 10 non-queries, adjusting the Brokers accordingly, is a reasonable starting point. -#### Broker Backpressure +#### Broker backpressure When retrieving query results from Historical processes or Tasks, the Broker can optionally specify a maximum buffer size for queued, unread data, and exert backpressure on the channel to the Historical or Tasks when limit is reached (causing writes to the channel to block on the Historical/Task side until the Broker is able to drain some data from the channel). @@ -172,13 +171,13 @@ You can generally set this to a value of approximately `2MB * number of Historic - If the buffer is too small, this can lead to inefficient queries due to the buffer filling up rapidly and stalling the channel - If the buffer is too large, this puts more memory pressure on the Broker due to more queued result data in the HTTP channels. -#### Number of Brokers +#### Number of brokers A 1:15 ratio of Brokers to Historicals is a reasonable starting point (this is not a hard rule). If you need Broker HA, you can deploy 2 initially and then use the 1:15 ratio guideline for additional Brokers. -#### Total Memory Usage +#### Total memory usage To estimate total memory usage of the Broker under these guidelines: @@ -189,7 +188,7 @@ To estimate total memory usage of the Broker under these guidelines: The MiddleManager is a lightweight task controller/manager that launches Task processes, which perform ingestion work. -#### MiddleManager Heap Sizing +#### MiddleManager heap sizing The MiddleManager itself does not require much resources, you can set the heap to ~128MB generally. @@ -199,23 +198,23 @@ We recommend using SSDs for storage on the MiddleManagers, as the Tasks launched #### Task Count -The number of tasks a MiddleManager can launch is controlled by the `druid.worker.capacity` setting. +The number of tasks a MiddleManager can launch is controlled by the `druid.worker.capacity` setting. The number of workers needed in your cluster depends on how many concurrent ingestion tasks you need to run for your use cases. The number of workers that can be launched on a given machine depends on the size of resources allocated per worker and available system resources. You can allocate more MiddleManager machines to your cluster to add task capacity. -#### Task Configurations +#### Task configurations The following section below describes configuration for Tasks launched by the MiddleManager. The Tasks can be queried and perform ingestion workloads, so they require more resources than the MM. -##### Task Heap Sizing +##### Task heap sizing A 1GB heap is usually enough for Tasks. ###### Lookups -If you are using lookups, calculate the total size of the lookup maps being loaded. +If you are using lookups, calculate the total size of the lookup maps being loaded. Druid performs an atomic swap when updating lookup maps (both the old map and the new map will exist in heap during the swap), so the maximum potential heap usage from lookup maps will be (2 * total size of all loaded lookups). @@ -229,7 +228,7 @@ For Tasks, 1 or 2 processing threads are often enough, as the Tasks tend to hold - `druid.indexer.fork.property.druid.processing.numMergeBuffers`: set this to 2 - `druid.indexer.fork.property.druid.processing.buffer.sizeBytes`: can be set to 100MB -##### Direct Memory Sizing +##### Direct memory sizing The processing and merge buffers described above are direct memory buffers. @@ -243,15 +242,15 @@ A formula for estimating direct memory usage follows: The `+ 1` factor is a fuzzy estimate meant to account for the segment decompression buffers and dictionary merging buffers. -##### Connection Pool Sizing +##### Connection pool sizing -Please see the [General Connection Pool Guidelines](#general-connection-pool-guidelines) section for an overview of connection pool configuration. +Please see the [General Connection Pool Guidelines](#connection-pool) section for an overview of connection pool configuration. For Tasks, `druid.server.http.numThreads` should be set to a value slightly higher than the sum of `druid.broker.http.numConnections` across all the Brokers in the cluster. Tuning the cluster so that each Task can accept 50 queries and 10 non-queries is a reasonable starting point. -#### Total Memory Usage +#### Total memory usage To estimate total memory usage of a Task under these guidelines: @@ -262,21 +261,22 @@ The total memory usage of the MiddleManager + Tasks: `MM heap size + druid.worker.capacity * (single task memory usage)` -##### Configuration Guidelines for Specific Ingestion Types +##### Configuration guidelines for specific ingestion types -###### Kafka/Kinesis Ingestion +###### Kafka/Kinesis ingestion -If you use the [Kafka Indexing Service](../development/extensions-core/kafka-ingestion.html) or [Kinesis Indexing Service](../development/extensions-core/kinesis-ingestion.html), the number of tasks required will depend on the number of partitions and your taskCount/replica settings. +If you use the [Kafka Indexing Service](../development/extensions-core/kafka-ingestion.md) or [Kinesis Indexing Service](../development/extensions-core/kinesis-ingestion.md), the number of tasks required will depend on the number of partitions and your taskCount/replica settings. -On top of those requirements, allocating more task slots in your cluster is a good idea, so that you have free task slots available for [Compaction Tasks](../ingestion/compaction.html). +On top of those requirements, allocating more task slots in your cluster is a good idea, so that you have free task +slots available for other tasks, such as [compaction tasks](../ingestion/data-management.md#compact). -###### Hadoop Ingestion +###### Hadoop ingestion -If you are only using [Hadoop Batch Ingestion](../ingestion/hadoop.html) with no other ingestion types, you can lower the amount of resources allocated per Task. Batch ingestion tasks do not need to answer queries, and the bulk of the ingestion workload will be executed on the Hadoop cluster, so the Tasks do not require much resources. +If you are only using [Hadoop-based batch ingestion](../ingestion/hadoop.md) with no other ingestion types, you can lower the amount of resources allocated per Task. Batch ingestion tasks do not need to answer queries, and the bulk of the ingestion workload will be executed on the Hadoop cluster, so the Tasks do not require much resources. -###### Parallel Native Ingestion +###### Parallel native ingestion -If you are using [Parallel Native Ingestion](../ingestion/native_tasks.html), allocating more available task slots is a good idea and will allow greater ingestion concurrency. +If you are using [parallel native batch ingestion](../ingestion/native-batch.md#parallel-task), allocating more available task slots is a good idea and will allow greater ingestion concurrency. ## Coordinator @@ -300,37 +300,41 @@ The Router has light resource requirements, as it proxies requests to Brokers wi You can assign it 256MB heap as a starting point, growing it if needed. -# General Guidelines for Processing Threads and Buffers + + +## Guidelines for processing threads and buffers -## Processing Threads +### Processing threads The `druid.processing.numThreads` configuration controls the size of the processing thread pool used for computing query results. The size of this pool limits how many queries can be concurrently processed. -## Processing Buffers +### Processing buffers -`druid.processing.buffer.sizeBytes` is a closely related property that controls the size of the off-heap buffers allocated to the processing threads. +`druid.processing.buffer.sizeBytes` is a closely related property that controls the size of the off-heap buffers allocated to the processing threads. One buffer is allocated for each processing thread. A size between 500MB and 1GB is a reasonable choice for general use. The TopN and GroupBy queries use these buffers to store intermediate computed results. As the buffer size increases, more data can be processed in a single pass. -## GroupBy Merging Buffers +### GroupBy merging buffers -If you plan to issue GroupBy V2 queries, `druid.processing.numMergeBuffers` is an important configuration property. +If you plan to issue GroupBy V2 queries, `druid.processing.numMergeBuffers` is an important configuration property. GroupBy V2 queries use an additional pool of off-heap buffers for merging query results. These buffers have the same size as the processing buffers described above, set by the `druid.processing.buffer.sizeBytes` property. -Non-nested GroupBy V2 queries require 1 merge buffer per query, while a nested GroupBy V2 query requires 2 merge buffers (regardless of the depth of nesting). +Non-nested GroupBy V2 queries require 1 merge buffer per query, while a nested GroupBy V2 query requires 2 merge buffers (regardless of the depth of nesting). The number of merge buffers determines the number of GroupBy V2 queries that can be processed concurrently. -# General Connection Pool Guidelines + + +## Connection pool guidelines Each Druid process has a configuration property for the number of HTTP connection handling threads, `druid.server.http.numThreads`. -The number of HTTP server threads limits how many concurrent HTTP API requests a given process can handle. +The number of HTTP server threads limits how many concurrent HTTP API requests a given process can handle. -## Sizing the connection pool for queries +### Sizing the connection pool for queries The Broker has a setting `druid.broker.http.numConnections` that controls how many outgoing connections it can make to a given Historical or Task process. @@ -340,7 +344,7 @@ Suppose we have a cluster with 3 Brokers and `druid.broker.http.numConnections` This means that each Broker in the cluster will open up to 10 connections to each individual Historical or Task (for a total of 30 incoming query connections per Historical/Task). -On the Historical/Task side, this means that `druid.server.http.numThreads` must be set to a value at least as high as the sum of `druid.broker.http.numConnections` across all the Brokers in the cluster. +On the Historical/Task side, this means that `druid.server.http.numThreads` must be set to a value at least as high as the sum of `druid.broker.http.numConnections` across all the Brokers in the cluster. In practice, you will want to allocate additional server threads for non-query API requests such as status checks; adding 10 threads for those is a good general guideline. Using the example with 3 Brokers in the cluster and `druid.broker.http.numConnections` set to 10, a value of 40 would be appropriate for `druid.server.http.numThreads` on Historicals and Tasks. @@ -352,7 +356,7 @@ As a starting point, allowing for 50 concurrent queries (requests that read segm - If your cluster usage patterns are heavily biased towards a high number of small concurrent queries (where each query takes less than ~15ms), enlarging the connection pool can be a good idea. - The 50/10 general guideline here is a rough starting point, since different queries impose different amounts of load on the system. To size the connection pool more exactly for your cluster, you would need to know the execution times for your queries and ensure that the rate of incoming queries does not exceed your "drain" rate. -# Garbage Collection Settings +## Garbage collection We recommend using the G1GC garbage collector: @@ -362,22 +366,22 @@ Enabling process termination on out-of-memory errors is useful as well, since th `-XX:+ExitOnOutOfMemoryError` -# Per-Segment Direct Memory Buffers +## Per-segment direct memory buffers -## Segment Decompression +### Segment decompression When opening a segment for reading during segment merging or query processing, Druid allocates a 64KB off-heap decompression buffer for each column being read. Thus, there is additional direct memory overhead of (64KB * number of columns read per segment * number of segments read) when reading segments. -## Segment Merging +### Segment merging -In addition to the segment decompression overhead described above, when a set of segments are merged during ingestion, a direct buffer is allocated for every String typed column, for every segment in the set to be merged. +In addition to the segment decompression overhead described above, when a set of segments are merged during ingestion, a direct buffer is allocated for every String typed column, for every segment in the set to be merged. The size of these buffers are equal to the cardinality of the String column within its segment, times 4 bytes (the buffers store integers). - -For example, if two segments are being merged, the first segment having a single String column with cardinality 1000, and the second segment having a String column with cardinality 500, the merge step would allocate (1000 + 500) * 4 = 6000 bytes of direct memory. - + +For example, if two segments are being merged, the first segment having a single String column with cardinality 1000, and the second segment having a String column with cardinality 500, the merge step would allocate (1000 + 500) * 4 = 6000 bytes of direct memory. + These buffers are used for merging the value dictionaries of the String column across segments. These "dictionary merging buffers" are independent of the "merge buffers" configured by `druid.processing.numMergeBuffers`. diff --git a/docs/content/operations/deep-storage-migration.md b/docs/operations/deep-storage-migration.md similarity index 92% rename from docs/content/operations/deep-storage-migration.md rename to docs/operations/deep-storage-migration.md index 55180a0a51e8..cd21e99f7b8b 100644 --- a/docs/content/operations/deep-storage-migration.md +++ b/docs/operations/deep-storage-migration.md @@ -1,6 +1,6 @@ --- -layout: doc_page -title: "Deep Storage Migration" +id: deep-storage-migration +title: "Deep storage migration" --- - -# Deep Storage Migration -If you have been running an evaluation Druid cluster using local deep storage and wish to migrate to a + +If you have been running an evaluation Druid cluster using local deep storage and wish to migrate to a more production-capable deep storage system such as S3 or HDFS, this document describes the necessary steps. Migration of deep storage involves the following steps at a high level: @@ -36,7 +35,7 @@ Migration of deep storage involves the following steps at a high level: ## Shut down cluster services -To ensure a clean migration, shut down the non-coordinator services to ensure that metadata state will not +To ensure a clean migration, shut down the non-coordinator services to ensure that metadata state will not change as you do the migration. When migrating from Derby, the coordinator processes will still need to be up initially, as they host the Derby database. @@ -49,9 +48,9 @@ For information on what path structure to use in the new deep storage, please se ## Export segments with rewritten load specs -Druid provides an [Export Metadata Tool](../operations/export-metadata.html) for exporting metadata from Derby into CSV files +Druid provides an [Export Metadata Tool](../operations/export-metadata.md) for exporting metadata from Derby into CSV files which can then be reimported. - + By setting [deep storage migration options](../operations/export-metadata.html#deep-storage-migration), the `export-metadata` tool will export CSV files where the segment load specs have been rewritten to load from your new deep storage location. Run the `export-metadata` tool on your existing cluster, using the migration options appropriate for your new deep storage location, and save the CSV files it generates. After a successful export, you can shut down the coordinator. diff --git a/docs/content/operations/druid-console.md b/docs/operations/druid-console.md similarity index 77% rename from docs/content/operations/druid-console.md rename to docs/operations/druid-console.md index 3dbc4911e4e5..bc6b1400366b 100644 --- a/docs/content/operations/druid-console.md +++ b/docs/operations/druid-console.md @@ -1,6 +1,6 @@ --- -layout: doc_page -title: "Apache Druid (incubating) console" +id: druid-console +title: "Web console" --- -# Druid console -The Druid Console is hosted by the [Router](../development/router.html) process. +The Druid Console is hosted by the [Router](../design/router.md) process. In addition, the following cluster settings must be enabled: -- the Router's [management proxy](../development/router.html#enabling-the-management-proxy) must be enabled. -- the Broker processes in the cluster must have [Druid SQL](../querying/sql.html) enabled. +- the Router's [management proxy](../design/router.html#enabling-the-management-proxy) must be enabled. +- the Broker processes in the cluster must have [Druid SQL](../querying/sql.md) enabled. After enabling Druid SQL on the Brokers and deploying a Router with the managment proxy enabled, the Druid console can be accessed at: @@ -43,13 +42,13 @@ Below is a description of the high-level features and functionality of the Druid The home view provides a high level overview of the cluster. Each card is clickable and links to the appropriate view. The legacy menu allows you to go to the [legacy coordinator and overlord consoles](./management-uis.html#legacy-consoles) should you need them. -![home-view](./img/01-home-view.png) +![home-view](../assets/web-console-01-home-view.png) ## Data loader -The data loader view allows you to load data by building an ingestion spec with a step-by-step wizard. +The data loader view allows you to load data by building an ingestion spec with a step-by-step wizard. -![data-loader-1](./img/02-data-loader-1.png) +![data-loader-1](../assets/web-console-02-data-loader-1.png) After picking the source of your data just follow the series for steps that will show you incremental previews of the data as it will be ingested. After filling in the required details on every step you can navigate to the next step by clicking the `Next` button. @@ -57,59 +56,59 @@ You can also freely navigate between the steps from the top navigation. Navigating with the top navigation will leave the underlying spec unmodified while clicking the `Next` button will attempt to fill in the subsequent steps with appropriate defaults. -![data-loader-2](./img/03-data-loader-2.png) +![data-loader-2](../assets/web-console-03-data-loader-2.png) ## Datasources The datasources view shows all the currently enabled datasources. From this view you can see the sizes and availability of the different datasources. You can edit the retention rules and drop data (as well as issue kill tasks). Like any view that is powered by a DruidSQL query you can click “Go to SQL” to run the underlying SQL query directly. -![datasources](./img/04-datasources.png) +![datasources](../assets/web-console-04-datasources.png) You can view and edit retention rules to determine the general availability of a datasource. -![retention](./img/05-retention.png) +![retention](../assets/web-console-05-retention.png) ## Segments The segment view shows every single segment in the cluster. Each segment can be expanded to provide more information. The Segment ID is also conveniently broken down into Datasource, Start, End, Version, and Partition columns for ease of filtering and sorting. -![segments](./img/06-segments.png) +![segments](../assets/web-console-06-segments.png) ## Tasks and supervisors The task view is also the home of supervisors. From this view you can check the status of existing supervisors as well as suspend and resume them. You can also submit new supervisors by entering their JSON spec. -![supervisors](./img/07-supervisors.png) +![supervisors](../assets/web-console-07-supervisors.png) The tasks table allows you see the currently running and recently completed tasks. From this table you can monitor individual tasks and also submit new tasks by entering their JSON spec. To make managing a lot of tasks more accessible, you can group the tasks by their type, datasource, or status to make navigation easier. -![tasks](./img/08-tasks.png) +![tasks](../assets/web-console-08-tasks.png) Click on the magnifying glass for any task to see more detail about it. -![tasks-status](./img/09-task-status.png) +![tasks-status](../assets/web-console-09-task-status.png) ## Servers The data servers tab lets you see the current status of the historical nodes and MiddleManager (indexer) processes. Note that currently only historical nodes that are actively serving segments will be shown in this view. -![servers](./img/10-servers.png) +![servers](../assets/web-console-10-servers.png) ## Query -The query view lets you issue [DruidSQL](../querying/sql.html) queries and display the results as a simple table. +The query view lets you issue [DruidSQL](../querying/sql.md) queries and display the results as a simple table. -![query-sql](./img/11-query-sql.png) +![query-sql](../assets/web-console-11-query-sql.png) -The query view can also issue queries in Druid's [native query format](../querying/querying.html), which is JSON over HTTP. +The query view can also issue queries in Druid's [native query format](../querying/querying.md), which is JSON over HTTP. To send a native Druid query, you must start your query with `{` and format it as JSON. -![query-rune](./img/12-query-rune.png) +![query-rune](../assets/web-console-12-query-rune.png) ## Lookups You can create and edit query time lookups via the lookup view. -![lookups](./img/13-lookups.png) +![lookups](../assets/web-console-13-lookups.png) diff --git a/docs/content/operations/dump-segment.md b/docs/operations/dump-segment.md similarity index 94% rename from docs/content/operations/dump-segment.md rename to docs/operations/dump-segment.md index b6dd433b200f..3e3c529d0590 100644 --- a/docs/content/operations/dump-segment.md +++ b/docs/operations/dump-segment.md @@ -1,6 +1,6 @@ --- -layout: doc_page -title: "DumpSegment tool" +id: dump-segment +title: "dump-segment tool" --- -# DumpSegment tool The DumpSegment tool can be used to dump the metadata or contents of an Apache Druid (incubating) segment for debugging purposes. Note that the dump is not necessarily a full-fidelity translation of the segment. In particular, not all metadata is included, and @@ -76,7 +75,7 @@ For example, one line might look like this when pretty-printed: #### Metadata dumps With `--dump metadata`, this tool dumps metadata instead of rows. Metadata dumps generated by this tool are in the same -format as returned by the [SegmentMetadata query](../querying/segmentmetadataquery.html). +format as returned by the [SegmentMetadata query](../querying/segmentmetadataquery.md). #### Bitmap dumps @@ -111,6 +110,6 @@ Sample output: |--output file|File to write to, or omit to write to stdout.|yes| |--dump TYPE|Dump either 'rows' (default), 'metadata', or 'bitmaps'|no| |--column columnName|Column to include. Specify multiple times for multiple columns, or omit to include all columns.|no| -|--filter json|JSON-encoded [query filter](../querying/filters.html). Omit to include all rows. Only used if dumping rows.|no| +|--filter json|JSON-encoded [query filter](../querying/filters.md). Omit to include all rows. Only used if dumping rows.|no| |--time-iso8601|Format __time column in ISO8601 format rather than long. Only used if dumping rows.|no| |--decompress-bitmaps|Dump bitmaps as arrays rather than base64-encoded compressed bitmaps. Only used if dumping bitmaps.|no| diff --git a/docs/content/operations/export-metadata.md b/docs/operations/export-metadata.md similarity index 99% rename from docs/content/operations/export-metadata.md rename to docs/operations/export-metadata.md index d1119ee855a7..055a05bae5eb 100644 --- a/docs/content/operations/export-metadata.md +++ b/docs/operations/export-metadata.md @@ -1,5 +1,5 @@ --- -layout: doc_page +id: export-metadata title: "Export Metadata Tool" --- @@ -22,7 +22,6 @@ title: "Export Metadata Tool" ~ under the License. --> -# Export Metadata Tool Druid includes an `export-metadata` tool for assisting with migration of cluster metadata and deep storage. @@ -34,7 +33,7 @@ This tool exports the contents of the following Druid metadata tables: - datasource - supervisors -Additionally, the tool can rewrite the local deep storage location descriptors in the rows of the segments table +Additionally, the tool can rewrite the local deep storage location descriptors in the rows of the segments table to point to new deep storage locations (S3, HDFS, and local rewrite paths are supported). The tool has the following limitations: diff --git a/docs/content/operations/getting-started.md b/docs/operations/getting-started.md similarity index 70% rename from docs/content/operations/getting-started.md rename to docs/operations/getting-started.md index cef094f198fe..773ade203184 100644 --- a/docs/content/operations/getting-started.md +++ b/docs/operations/getting-started.md @@ -1,6 +1,6 @@ --- -layout: doc_page -title: "Getting Started with Apache Druid (incubating)" +id: getting-started +title: "Getting started with Apache Druid" --- -# Getting Started with Apache Druid (incubating) ## Overview -If you are new to Druid, we recommend reading the [Design Overview](../design/index.html) and the [Ingestion Overview](../ingestion/index.html) first for a basic understanding of Druid. +If you are new to Druid, we recommend reading the [Design Overview](../design/index.md) and the [Ingestion Overview](../ingestion/index.md) first for a basic understanding of Druid. ## Single-server Quickstart and Tutorials -To get started with running Druid, the simplest and quickest way is to try the [single-server quickstart and tutorials](../tutorials/index.html). +To get started with running Druid, the simplest and quickest way is to try the [single-server quickstart and tutorials](../tutorials/index.md). ## Deploying a Druid cluster @@ -38,12 +37,12 @@ If you wish to jump straight to deploying Druid as a cluster, or if you have an ## Operating Druid -The [Configuration Reference](../configuration/index.html) describes all of Druid's configuration properties. +The [configuration reference](../configuration/index.md) describes all of Druid's configuration properties. -The [API Reference](../operations/api-reference.html) describes the APIs available on each Druid process. +The [API reference](../operations/api-reference.md) describes the APIs available on each Druid process. -The [Basic Cluster Tuning Guide](../operations/basic-cluster-tuning.html) is an introductory guide for tuning your Druid cluster. +The [basic cluster tuning guide](../operations/basic-cluster-tuning.md) is an introductory guide for tuning your Druid cluster. ## Need help with Druid? -If you have questions about using Druid, please reach out to the [Druid user mailing list or other community channels](https://druid.apache.org/community/)! \ No newline at end of file +If you have questions about using Druid, please reach out to the [Druid user mailing list or other community channels](https://druid.apache.org/community/)! diff --git a/docs/content/operations/high-availability.md b/docs/operations/high-availability.md similarity index 95% rename from docs/content/operations/high-availability.md rename to docs/operations/high-availability.md index 6de75a154894..0a1140eaa7d8 100644 --- a/docs/content/operations/high-availability.md +++ b/docs/operations/high-availability.md @@ -1,6 +1,6 @@ --- -layout: doc_page -title: "High Availability" +id: high-availability +title: "High availability" --- -# High Availability Apache ZooKeeper, metadata store, the coordinator, the overlord, and brokers are recommended to set up a high availability environment. @@ -37,4 +36,4 @@ If they are all configured to use the same ZooKeeper cluster and metadata storag then they will automatically failover between each other as necessary. Only one will be active at a time, but inactive servers will redirect to the currently active server. - Druid Brokers can be scaled out and all running servers will be active and queryable. -We recommend placing them behind a load balancer. \ No newline at end of file +We recommend placing them behind a load balancer. diff --git a/docs/content/operations/http-compression.md b/docs/operations/http-compression.md similarity index 94% rename from docs/content/operations/http-compression.md rename to docs/operations/http-compression.md index 1f1cc1c85128..bce4dd2fda75 100644 --- a/docs/content/operations/http-compression.md +++ b/docs/operations/http-compression.md @@ -1,6 +1,6 @@ --- -layout: doc_page -title: "HTTP Compression" +id: http-compression +title: "HTTP compression" --- -# HTTP Compression Apache Druid (incubating) supports http request decompression and response compression, to use this, http request header `Content-Encoding:gzip` and `Accept-Encoding:gzip` is needed to be set. -# General Configuration - |Property|Description|Default| |--------|-----------|-------| |`druid.server.http.compressionLevel`|The compression level. Value should be between [-1,9], -1 for default level, 0 for no compression.|-1 (default compression level)| diff --git a/docs/content/operations/insert-segment-to-db.md b/docs/operations/insert-segment-to-db.md similarity index 97% rename from docs/content/operations/insert-segment-to-db.md rename to docs/operations/insert-segment-to-db.md index c2d1e8142e45..f559c907cc09 100644 --- a/docs/content/operations/insert-segment-to-db.md +++ b/docs/operations/insert-segment-to-db.md @@ -1,6 +1,6 @@ --- -layout: doc_page -title: "insert-segment-to-db Tool" +id: insert-segment-to-db +title: "insert-segment-to-db tool" --- -# insert-segment-to-db Tool In older versions of Apache Druid (incubating), `insert-segment-to-db` was a tool that could scan deep storage and insert data from there into Druid metadata storage. It was intended to be used to update the segment table in the diff --git a/docs/content/operations/management-uis.md b/docs/operations/management-uis.md similarity index 84% rename from docs/content/operations/management-uis.md rename to docs/operations/management-uis.md index b20b3ad7ac53..68eb4e4a2a62 100644 --- a/docs/content/operations/management-uis.md +++ b/docs/operations/management-uis.md @@ -1,6 +1,6 @@ --- -layout: doc_page -title: "Apache Druid (incubating) Management UIs" +id: management-uis +title: "Management UIs" --- -# Management UIs -## Druid Console +## Druid console Druid provides a console for managing datasources, segments, tasks, data processes (Historicals and MiddleManagers), and coordinator dynamic configuration. The user can also run SQL and native Druid queries within the console. -The Druid Console is hosted by the [Router](../development/router.html) process. We recommend running the Router process on your [Query server](../design/processes.html). +The Druid Console is hosted by the [Router](../design/router.md) process. We recommend running the Router process on your [Query server](../design/processes.md). In addition, the following cluster settings must be enabled: -- the Router's [management proxy](../development/router.html#enabling-the-management-proxy) must be enabled. -- the Broker processes in the cluster must have [Druid SQL](../querying/sql.html) enabled. +- the Router's [management proxy](../design/router.html#enabling-the-management-proxy) must be enabled. +- the Broker processes in the cluster must have [Druid SQL](../querying/sql.md) enabled. After enabling Druid SQL on the Brokers and deploying a Router with the managment proxy enabled, the Druid console can be accessed at: @@ -43,13 +42,13 @@ http://: The Druid Console contains all of the functionality provided by the older consoles described below, which are still available if needed. The legacy consoles may be replaced by the Druid Console in the future. -For more information on the features of the Druid Console have a look at the [Druid Console overview](./druid-console.html) +For more information on the features of the Druid Console have a look at the [Druid Console overview](./druid-console.md) -## Legacy Consoles +## Legacy consoles These older consoles provide a subset of the functionality of the Druid Console. We recommend using the Druid Console if possible. -### Coordinator Consoles +### Coordinator consoles #### Version 2 @@ -71,7 +70,7 @@ The oldest version of Druid's Coordinator console is still available for backwar http://:/old-console ``` -### Overlord Console +### Overlord console The Overlord console can be used to view pending tasks, running tasks, available workers, and recent worker creation and termination. The console can be accessed at: diff --git a/docs/content/operations/metadata-migration.md b/docs/operations/metadata-migration.md similarity index 89% rename from docs/content/operations/metadata-migration.md rename to docs/operations/metadata-migration.md index 9f6b4193e4c4..b84dc403c0ed 100644 --- a/docs/content/operations/metadata-migration.md +++ b/docs/operations/metadata-migration.md @@ -1,5 +1,5 @@ --- -layout: doc_page +id: metadata-migration title: "Metadata Migration" --- @@ -21,26 +21,25 @@ title: "Metadata Migration" ~ specific language governing permissions and limitations ~ under the License. --> - -# Metadata Migration -If you have been running an evaluation Druid cluster using the built-in Derby metadata storage and wish to migrate to a + +If you have been running an evaluation Druid cluster using the built-in Derby metadata storage and wish to migrate to a more production-capable metadata store such as MySQL or PostgreSQL, this document describes the necessary steps. ## Shut down cluster services -To ensure a clean migration, shut down the non-coordinator services to ensure that metadata state will not +To ensure a clean migration, shut down the non-coordinator services to ensure that metadata state will not change as you do the migration. When migrating from Derby, the coordinator processes will still need to be up initially, as they host the Derby database. ## Exporting metadata -Druid provides an [Export Metadata Tool](../operations/export-metadata.html) for exporting metadata from Derby into CSV files +Druid provides an [Export Metadata Tool](../operations/export-metadata.md) for exporting metadata from Derby into CSV files which can then be imported into your new metadata store. -The tool also provides options for rewriting the deep storage locations of segments; this is useful -for [deep storage migration](../operations/deep-storage-migration.html). +The tool also provides options for rewriting the deep storage locations of segments; this is useful +for [deep storage migration](../operations/deep-storage-migration.md). Run the `export-metadata` tool on your existing cluster, and save the CSV files it generates. After a successful export, you can shut down the coordinator. @@ -50,7 +49,7 @@ Run the `export-metadata` tool on your existing cluster, and save the CSV files Before importing the existing cluster metadata, you will need to set up the new metadata store. -The [MySQL extension](../development/extensions-core/mysql.html) and [PostgreSQL extension](../development/extensions-core/postgresql.html) docs have instructions for initial database setup. +The [MySQL extension](../development/extensions-core/mysql.md) and [PostgreSQL extension](../development/extensions-core/postgresql.md) docs have instructions for initial database setup. ### Update configuration @@ -85,7 +84,7 @@ java -classpath "lib/*" -Dlog4j.configurationFile=conf/druid/cluster/_common/log ### Import metadata -After initializing the tables, please refer to the [import commands](../operations/export-metadata.html#importing-metadata) for your target database. +After initializing the tables, please refer to the [import commands](../operations/export-metadata.html#importing-metadata) for your target database. ### Restart cluster diff --git a/docs/content/operations/metrics.md b/docs/operations/metrics.md similarity index 97% rename from docs/content/operations/metrics.md rename to docs/operations/metrics.md index da140393ae71..cdcc0c04d752 100644 --- a/docs/content/operations/metrics.md +++ b/docs/operations/metrics.md @@ -1,6 +1,6 @@ --- -layout: doc_page -title: "Apache Druid (incubating) Metrics" +id: metrics +title: "Metrics" --- -# Druid Metrics Druid generates metrics related to queries, ingestion, and coordination. @@ -43,7 +42,7 @@ Most metric values reset each emission period. By default druid emission period Available Metrics ----------------- -## Query Metrics +## Query metrics ### Broker @@ -55,7 +54,7 @@ Available Metrics |`query/node/bytes`|number of bytes returned from querying individual historical/realtime processes.|id, status, server.| | |`query/node/ttfb`|Time to first byte. Milliseconds elapsed until Broker starts receiving the response from individual historical/realtime processes.|id, status, server.|< 1s| |`query/node/backpressure`|Milliseconds that the channel to this process has spent suspended due to backpressure.|id, status, server.| | -|`query/intervalChunk/time`|Only emitted if interval chunking is enabled. Milliseconds required to query an interval chunk. This metric is deprecated and will be removed in the future because interval chunking is deprecated. See [Query Context](../querying/query-context.html).|id, status, chunkInterval (if interval chunking is enabled).|< 1s| +|`query/intervalChunk/time`|Only emitted if interval chunking is enabled. Milliseconds required to query an interval chunk. This metric is deprecated and will be removed in the future because interval chunking is deprecated. See [Query Context](../querying/query-context.md).|id, status, chunkInterval (if interval chunking is enabled).|< 1s| |`query/count`|number of total queries|This metric is only available if the QueryCountStatsMonitor module is included.|| |`query/success/count`|number of queries successfully processed|This metric is only available if the QueryCountStatsMonitor module is included.|| |`query/failed/count`|number of failed queries|This metric is only available if the QueryCountStatsMonitor module is included.|| @@ -145,7 +144,7 @@ These metrics are applicable for the Kafka Indexing Service. |`ingest/kafka/maxLag`|Max lag between the offsets consumed by the Kafka indexing tasks and latest offsets in Kafka brokers across all partitions. Minimum emission period for this metric is a minute.|dataSource.|Greater than 0, should not be a very high number | |`ingest/kafka/avgLag`|Average lag between the offsets consumed by the Kafka indexing tasks and latest offsets in Kafka brokers across all partitions. Minimum emission period for this metric is a minute.|dataSource.|Greater than 0, should not be a very high number | -## Ingestion Metrics (Realtime process) +## Ingestion metrics (Realtime process) These metrics are only available if the RealtimeMetricsMonitor is included in the monitors list for the Realtime process. These metrics are deltas for each emission period. @@ -171,7 +170,7 @@ These metrics are only available if the RealtimeMetricsMonitor is included in th Note: If the JVM does not support CPU time measurement for the current thread, ingest/merge/cpu and ingest/persists/cpu will be 0. -### Indexing Service +### Indexing service |Metric|Description|Dimensions|Normal Value| |------|-----------|----------|------------| @@ -211,7 +210,7 @@ These metrics are for the Druid Coordinator and are reset each time the Coordina |`segment/unavailable/count`|Number of segments (not including replicas) left to load until segments that should be loaded in the cluster are available for queries.|datasource.|0| |`segment/underReplicated/count`|Number of segments (including replicas) left to load until segments that should be loaded in the cluster are available for queries.|tier, datasource.|0| -If `emitBalancingStats` is set to `true` in the Coordinator [dynamic configuration](../configuration/index.html#dynamic-configuration), then [log entries](../configuration/logging.html) for class `org.apache.druid.server.coordinator.helper.DruidCoordinatorLogger` will have extra information on balancing decisions. +If `emitBalancingStats` is set to `true` in the Coordinator [dynamic configuration](../configuration/index.html#dynamic-configuration), then [log entries](../configuration/logging.md) for class `org.apache.druid.server.coordinator.helper.DruidCoordinatorLogger` will have extra information on balancing decisions. ## General Health diff --git a/docs/content/operations/other-hadoop.md b/docs/operations/other-hadoop.md similarity index 96% rename from docs/content/operations/other-hadoop.md rename to docs/operations/other-hadoop.md index 899deaf3a38b..87cc9ea8aad3 100644 --- a/docs/content/operations/other-hadoop.md +++ b/docs/operations/other-hadoop.md @@ -1,5 +1,5 @@ --- -layout: doc_page +id: other-hadoop title: "Working with different versions of Apache Hadoop" --- @@ -22,12 +22,11 @@ title: "Working with different versions of Apache Hadoop" ~ under the License. --> -# Working with different versions of Hadoop Apache Druid (incubating) can interact with Hadoop in two ways: -1. [Use HDFS for deep storage](../development/extensions-core/hdfs.html) using the druid-hdfs-storage extension. -2. [Batch-load data from Hadoop](../ingestion/hadoop.html) using Map/Reduce jobs. +1. [Use HDFS for deep storage](../development/extensions-core/hdfs.md) using the druid-hdfs-storage extension. +2. [Batch-load data from Hadoop](../ingestion/hadoop.md) using Map/Reduce jobs. These are not necessarily linked together; you can load data with Hadoop jobs into a non-HDFS deep storage (like S3), and you can use HDFS for deep storage even if you're loading data from streams rather than using Hadoop jobs. @@ -55,7 +54,7 @@ Generally, you should only set one of these parameters, not both. These properties can be set in either one of the following ways: -- Using the task definition, e.g. add `"mapreduce.job.classloader": "true"` to the `jobProperties` of the `tuningConfig` of your indexing task (see the [Hadoop batch ingestion documentation](../ingestion/hadoop.html)). +- Using the task definition, e.g. add `"mapreduce.job.classloader": "true"` to the `jobProperties` of the `tuningConfig` of your indexing task (see the [Hadoop batch ingestion documentation](../ingestion/hadoop.md)). - Using system properties, e.g. on the MiddleManager set `druid.indexer.runner.javaOpts=... -Dhadoop.mapreduce.job.classloader=true`. ### Overriding specific classes @@ -104,7 +103,7 @@ the main Druid pom.xml and rebuilding the distribution by running `mvn package`. If you have issues with Map/Reduce jobs, you can switch your Hadoop client libraries without rebuilding Druid. You can do this by adding a new set of libraries to the `hadoop-dependencies/` directory (or another directory specified by druid.extensions.hadoopDependenciesDir) and then using `hadoopDependencyCoordinates` in the -[Hadoop Index Task](../ingestion/hadoop.html) to specify the Hadoop dependencies you want Druid to load. +[Hadoop Index Task](../ingestion/hadoop.md) to specify the Hadoop dependencies you want Druid to load. Example: @@ -135,7 +134,7 @@ hadoop-dependencies/ As you can see, under `hadoop-client`, there are two sub-directories, each denotes a version of `hadoop-client`. -Next, use `hadoopDependencyCoordinates` in [Hadoop Index Task](../ingestion/hadoop.html) to specify the Hadoop dependencies you want Druid to load. +Next, use `hadoopDependencyCoordinates` in [Hadoop Index Task](../ingestion/hadoop.md) to specify the Hadoop dependencies you want Druid to load. For example, in your Hadoop Index Task spec file, you can write: @@ -177,7 +176,7 @@ work with the classloader isolation option (`mapreduce.job.classloader = true`). You can try editing Druid's pom.xml dependencies to match the version of Jackson in your Hadoop version and recompile Druid. -For more about building Druid, please see [Building Druid](../development/build.html). +For more about building Druid, please see [Building Druid](../development/build.md). **Alternate workaround - 2** @@ -187,7 +186,7 @@ Another workaround solution is to build a custom fat jar of Druid using [sbt](ht (2) Make a new directory named 'druid_build'. -(3) Cd to 'druid_build' and create the build.sbt file with the content [here](./use_sbt_to_build_fat_jar.html). +(3) Cd to 'druid_build' and create the build.sbt file with the content [here](./use_sbt_to_build_fat_jar.md). You can always add more building targets or remove the ones you don't need. diff --git a/docs/content/operations/password-provider.md b/docs/operations/password-provider.md similarity index 95% rename from docs/content/operations/password-provider.md rename to docs/operations/password-provider.md index 77a248d05ffd..bbb1e75e87c3 100644 --- a/docs/content/operations/password-provider.md +++ b/docs/operations/password-provider.md @@ -1,6 +1,6 @@ --- -layout: doc_page -title: "Password Provider" +id: password-provider +title: "Password providers" --- -# Password Provider Apache Druid (incubating) needs some passwords for accessing various secured systems like metadata store, Key Store containing server certificates etc. All these passwords have corresponding runtime properties associated with them, for example `druid.metadata.storage.connector.password` corresponds to the metadata store password. @@ -46,7 +45,7 @@ The values are described below. However, many times users may want their own way to optionally securely fetch password during runtime of the Druid process. Druid allows this by users to implement their own `PasswordProvider` interface and create a Druid extension to register this implementation at Druid process startup. -Please have a look at "Adding a new Password Provider implementation" on this [page](../development/modules.html) to learn more. +Please have a look at "Adding a new Password Provider implementation" on this [page](../development/modules.md) to learn more. To use this implementation, simply set the relevant password runtime property to something similar as was done for Environment variable password provider like - diff --git a/docs/content/operations/pull-deps.md b/docs/operations/pull-deps.md similarity index 92% rename from docs/content/operations/pull-deps.md rename to docs/operations/pull-deps.md index 63cd5504418c..b93b4b9ea83f 100644 --- a/docs/content/operations/pull-deps.md +++ b/docs/operations/pull-deps.md @@ -1,6 +1,6 @@ --- -layout: doc_page -title: "pull-deps Tool" +id: pull-deps +title: "pull-deps tool" --- -# pull-deps Tool `pull-deps` is an Apache Druid (incubating) tool that can pull down dependencies to the local repository and lay dependencies out into the extension directory as needed. @@ -41,7 +40,7 @@ Apache Hadoop dependency to pull down, followed by a maven coordinate, e.g. org. Don't pull down the default hadoop coordinate, i.e., org.apache.hadoop:hadoop-client:2.3.0. If `-h` option is supplied, then default hadoop coordinate will not be downloaded. `--clean` - + Remove exisiting extension and hadoop dependencies directories before pulling down dependencies. `-l` or `--localRepository` @@ -62,7 +61,7 @@ Version to use for extension coordinate that doesn't have a version information. `--use-proxy` -Use http/https proxy to send request to the remote repository servers. `--proxy-host` and `--proxy-port` must be set explicitly if this option is enabled. +Use http/https proxy to send request to the remote repository servers. `--proxy-host` and `--proxy-port` must be set explicitly if this option is enabled. `--proxy-type` @@ -86,7 +85,7 @@ Set a password to connect to the proxy, this option is only required if the prox To run `pull-deps`, you should -1) Specify `druid.extensions.directory` and `druid.extensions.hadoopDependenciesDir`, these two properties tell `pull-deps` where to put extensions. If you don't specify them, default values will be used, see [Configuration](../configuration/index.html). +1) Specify `druid.extensions.directory` and `druid.extensions.hadoopDependenciesDir`, these two properties tell `pull-deps` where to put extensions. If you don't specify them, default values will be used, see [Configuration](../configuration/index.md). 2) Tell `pull-deps` what to download using `-c` or `-h` option, which are followed by a maven coordinate. @@ -135,8 +134,6 @@ Note that if you specify `--defaultVersion`, you don't have to put version infor java -classpath "/my/druid/lib/*" org.apache.druid.cli.Main tools pull-deps --defaultVersion #{DRUIDVERSION} --clean -c org.apache.druid.extensions:mysql-metadata-storage -h org.apache.hadoop:hadoop-client:2.3.0 -h org.apache.hadoop:hadoop-client:2.4.0 ``` -
-Please note to use the pull-deps tool you must know the Maven groupId, artifactId, and version of your extension. - -For Druid community extensions listed here, the groupId is "org.apache.druid.extensions.contrib" and the artifactId is the name of the extension. -
+> Please note to use the pull-deps tool you must know the Maven groupId, artifactId, and version of your extension. +> +> For Druid community extensions listed [here](../development/extensions.md), the groupId is "org.apache.druid.extensions.contrib" and the artifactId is the name of the extension. diff --git a/docs/content/operations/recommendations.md b/docs/operations/recommendations.md similarity index 88% rename from docs/content/operations/recommendations.md rename to docs/operations/recommendations.md index 21100bb16398..2d6bdb4610b7 100644 --- a/docs/content/operations/recommendations.md +++ b/docs/operations/recommendations.md @@ -1,6 +1,6 @@ --- -layout: doc_page -title: "Apache Druid (incubating) Recommendations" +id: recommendations +title: "Recommendations" --- -# Recommendations - -# Some General guidelines +## Some general guidelines JVM Flags: @@ -65,28 +63,29 @@ Additionally, for large jvm heaps, here are a few Garbage Collection efficiency - Disable Transparent Huge Pages ( See https://blogs.oracle.com/linux/performance-issues-with-transparent-huge-pages-thp ) - Try disabling biased locking by using `-XX:-UseBiasedLocking` jvm flag. ( See https://dzone.com/articles/logging-stop-world-pauses-jvm ) -# Use UTC Timezone +## Use UTC timezone We recommend using UTC timezone for all your events and across your hosts, not just for Druid, but for all data infrastructure. This can greatly mitigate potential query problems with inconsistent timezones. To query in a non-UTC timezone see [query granularities](../querying/granularities.html#period-granularities) -# SSDs +## SSDs SSDs are highly recommended for Historical and real-time processes if you are not running a cluster that is entirely in memory. SSDs can greatly mitigate the time required to page data in and out of memory. -# JBOD vs RAID +## JBOD vs RAID + Historical processes store large number of segments on Disk and support specifying multiple paths for storing those. Typically, hosts have multiple disks configured with RAID which makes them look like a single disk to OS. RAID might have overheads specially if its not hardware controller based but software based. So, Historicals might get improved disk throughput with JBOD. -# Use Timeseries and TopN Queries Instead of GroupBy Where Possible +## Use Timeseries and TopN queries instead of GroupBy where possible Timeseries and TopN queries are much more optimized and significantly faster than groupBy queries for their designed use cases. Issuing multiple topN or timeseries queries from your application can potentially be more efficient than a single groupBy query. -# Segment sizes matter +## Segment sizes matter -Segments should generally be between 300MB-700MB in size. Too many small segments results in inefficient CPU utilizations and +Segments should generally be between 300MB-700MB in size. Too many small segments results in inefficient CPU utilizations and too many large segments impacts query performance, most notably with TopN queries. -# FAQs and Guides +## FAQs and Guides -1) The [Ingestion FAQ](../ingestion/faq.html) provides help with common ingestion problems. +1) The [ingestion FAQ](../ingestion/faq.md) provides help with common ingestion problems. -2) The [Basic Cluster Tuning Guide](../operations/basic-cluster-tuning.html) offers introductory guidelines for tuning your Druid cluster. +2) The [basic cluster tuning guide](../operations/basic-cluster-tuning.md) offers introductory guidelines for tuning your Druid cluster. diff --git a/docs/content/operations/reset-cluster.md b/docs/operations/reset-cluster.md similarity index 82% rename from docs/content/operations/reset-cluster.md rename to docs/operations/reset-cluster.md index 50d54dd0ae42..598ba8d31d24 100644 --- a/docs/content/operations/reset-cluster.md +++ b/docs/operations/reset-cluster.md @@ -1,6 +1,6 @@ --- -layout: doc_page -title: "ResetCluster tool" +id: reset-cluster +title: "reset-cluster tool" --- -# ResetCluster tool -ResetCluster tool can be used to completely wipe out Apache Druid (incubating) cluster state stored on Metadata and Deep storage. This is +The `reset-cluster` tool can be used to completely wipe out Apache Druid (incubating) cluster state stored on Metadata and Deep storage. This is intended to be used in dev/test environments where you typically want to reset the cluster before running the test suite. -ResetCluster automatically figures out necessary information from Druid cluster configuration. So the java classpath +`reset-cluster` automatically figures out necessary information from Druid cluster configuration. So the java classpath used in the command must have all the necessary druid configuration files. It can be run in one of the following ways. @@ -42,14 +41,11 @@ or java org.apache.druid.cli.Main tools reset-cluster --all ``` -# Further Description Usage documentation can be printed by running following command. ``` -java org.apache.druid.cli.Main help tools reset-cluster -``` +$ java org.apache.druid.cli.Main help tools reset-cluster -``` NAME druid tools reset-cluster - Cleanup all persisted state from metadata and deep storage. diff --git a/docs/content/operations/rolling-updates.md b/docs/operations/rolling-updates.md similarity index 98% rename from docs/content/operations/rolling-updates.md rename to docs/operations/rolling-updates.md index bfecc64435bc..1bb0acdef314 100644 --- a/docs/content/operations/rolling-updates.md +++ b/docs/operations/rolling-updates.md @@ -1,6 +1,6 @@ --- -layout: doc_page -title: "Rolling Updates" +id: rolling-updates +title: "Rolling updates" --- -# Rolling Updates For rolling Apache Druid (incubating) cluster updates with no downtime, we recommend updating Druid processes in the following order: diff --git a/docs/content/operations/rule-configuration.md b/docs/operations/rule-configuration.md similarity index 91% rename from docs/content/operations/rule-configuration.md rename to docs/operations/rule-configuration.md index 9c7caa9598c7..5eac7858f58f 100644 --- a/docs/content/operations/rule-configuration.md +++ b/docs/operations/rule-configuration.md @@ -1,6 +1,6 @@ --- -layout: doc_page -title: "Retaining or Automatically Dropping Data" +id: rule-configuration +title: "Retaining or automatically dropping data" --- -# Retaining or Automatically Dropping Data In Apache Druid (incubating), Coordinator processes use rules to determine what data should be loaded to or dropped from the cluster. Rules are used for data retention and query execution, and are set on the Coordinator console (http://coordinator_ip:port). -There are three types of rules, i.e., load rules, drop rules, and broadcast rules. Load rules indicate how segments should be assigned to different historical process tiers and how many replicas of a segment should exist in each tier. +There are three types of rules, i.e., load rules, drop rules, and broadcast rules. Load rules indicate how segments should be assigned to different historical process tiers and how many replicas of a segment should exist in each tier. Drop rules indicate when segments should be dropped entirely from the cluster. Finally, broadcast rules indicate how segments of different data sources should be co-located in Historical processes. The Coordinator loads a set of rules from the metadata storage. Rules may be specific to a certain datasource and/or a default set of rules can be configured. Rules are read in order and hence the ordering of rules is important. The Coordinator will cycle through all available segments and match each segment with the first rule that applies. Each segment may only match a single rule. Note: It is recommended that the Coordinator console is used to configure rules. However, the Coordinator process does have HTTP endpoints to programmatically configure rules. -Load Rules ----------- +## Load rules Load rules indicate how many replicas of a segment should exist in a server tier. **Please note**: If a Load rule is used to retain only data from a certain interval or period, it must be accompanied by a Drop rule. If a Drop rule is not included, data not within the specified interval or period will be retained by the default rule (loadForever). @@ -44,7 +42,7 @@ Forever load rules are of the form: ```json { - "type" : "loadForever", + "type" : "loadForever", "tieredReplicants": { "hot": 1, "_default_tier" : 1 @@ -98,8 +96,7 @@ Period load rules are of the form: The interval of a segment will be compared against the specified period. The period is from some time in the past to the future or to the current time, which depends on `includeFuture` is true or false. The rule matches if the period *overlaps* the interval. -Drop Rules ----------- +## Drop Rules Drop rules indicate when segments should be dropped from the cluster. @@ -109,7 +106,7 @@ Forever drop rules are of the form: ```json { - "type" : "dropForever" + "type" : "dropForever" } ``` @@ -168,10 +165,9 @@ Period drop before rules are of the form: The interval of a segment will be compared against the specified period. The period is from some time in the past to the current time. The rule matches if the interval before the period. If you just want to retain recent data, you can use this rule to drop the old data that before a specified period and add a `loadForever` rule to follow it. Notes, `dropBeforeByPeriod + loadForever` is equivalent to `loadByPeriod(includeFuture = true) + dropForever`. -Broadcast Rules ---------------- +## Broadcast Rules -Broadcast rules indicate how segments of different data sources should be co-located in Historical processes. +Broadcast rules indicate how segments of different data sources should be co-located in Historical processes. Once a broadcast rule is configured for a data source, all segments of the data source are broadcasted to the servers holding _any segments_ of the co-located data sources. ### Forever Broadcast Rule @@ -224,17 +220,15 @@ Period broadcast rules are of the form: The interval of a segment will be compared against the specified period. The period is from some time in the past to the future or to the current time, which depends on `includeFuture` is true or false. The rule matches if the period *overlaps* the interval. -
-broadcast rules don't guarantee that segments of the data sources are always co-located because segments for the colocated data sources are not loaded together atomically. -If you want to always co-locate the segments of some data sources together, it is recommended to leave colocatedDataSources empty. -
+> broadcast rules don't guarantee that segments of the data sources are always co-located because segments for the colocated data sources are not loaded together atomically. +> If you want to always co-locate the segments of some data sources together, it is recommended to leave colocatedDataSources empty. -# Permanently Deleting Data - -Druid can fully drop data from the cluster, wipe the metadata store entry, and remove the data from deep storage for any segments that are -marked as unused (segments dropped from the cluster via rules are always marked as unused). You can submit a [kill task](../ingestion/tasks.html) to the [Overlord](../design/overlord.html) to do this. +## Permanently deleting data -# Reloading Dropped Data +Druid can fully drop data from the cluster, wipe the metadata store entry, and remove the data from deep storage for any segments that are +marked as unused (segments dropped from the cluster via rules are always marked as unused). You can submit a [kill task](../ingestion/tasks.md) to the [Overlord](../design/overlord.md) to do this. -Data that has been dropped from a Druid cluster cannot be reloaded using only rules. To reload dropped data in Druid, you must first set your retention period (i.e. changing the retention period from 1 month to 2 months), and +## Reloading dropped data + +Data that has been dropped from a Druid cluster cannot be reloaded using only rules. To reload dropped data in Druid, you must first set your retention period (i.e. changing the retention period from 1 month to 2 months), and then enable the datasource in the Druid Coordinator console, or through the Druid Coordinator endpoints. diff --git a/docs/content/operations/segment-optimization.md b/docs/operations/segment-optimization.md similarity index 86% rename from docs/content/operations/segment-optimization.md rename to docs/operations/segment-optimization.md index be00dafee703..f0d19c1b9ec8 100644 --- a/docs/content/operations/segment-optimization.md +++ b/docs/operations/segment-optimization.md @@ -1,5 +1,5 @@ --- -layout: doc_page +id: segment-optimization title: "Segment Size Optimization" --- @@ -22,11 +22,10 @@ title: "Segment Size Optimization" ~ under the License. --> -# Segment Size Optimization In Apache Druid (incubating), it's important to optimize the segment size because - 1. Druid stores data in segments. If you're using the [best-effort roll-up](../design/index.html#roll-up-modes) mode, + 1. Druid stores data in segments. If you're using the [best-effort roll-up](../ingestion/index.md#rollup) mode, increasing the segment size might introduce further aggregation which reduces the dataSource size. 2. When a query is submitted, that query is distributed to all Historicals and realtime tasks which hold the input segments of the query. Each process and task picks a thread from its own processing thread pool @@ -52,14 +51,12 @@ You may need to consider the followings to optimize your segments. doesn't match with the "number of rows per segment", please consider optimizing number of rows per segment rather than this value. -
-The above recommendation works in general, but the optimal setting can -vary based on your workload. For example, if most of your queries -are heavy and take a long time to process each row, you may want to make -segments smaller so that the query processing can be more parallelized. -If you still see some performance issue after optimizing segment size, -you may need to find the optimal settings for your workload. -
+> The above recommendation works in general, but the optimal setting can +> vary based on your workload. For example, if most of your queries +> are heavy and take a long time to process each row, you may want to make +> segments smaller so that the query processing can be more parallelized. +> If you still see some performance issue after optimizing segment size, +> you may need to find the optimal settings for your workload. There might be several ways to check if the compaction is necessary. One way is using the [System Schema](../querying/sql.html#system-schema). The @@ -91,10 +88,11 @@ In this case, you may want to see only rows of the max version per interval (pai Once you find your segments need compaction, you can consider the below two options: - Turning on the [automatic compaction of Coordinators](../design/coordinator.html#compacting-segments). - The Coordinator periodically submits [compaction tasks](../ingestion/tasks.html#compaction-task) to re-index small segments. + The Coordinator periodically submits [compaction tasks](../ingestion/tasks.md#compact) to re-index small segments. To enable the automatic compaction, you need to configure it for each dataSource via Coordinator's dynamic configuration. See [Compaction Configuration API](../operations/api-reference.html#compaction-configuration) and [Compaction Configuration](../configuration/index.html#compaction-dynamic-configuration) for details. - Running periodic Hadoop batch ingestion jobs and using a `dataSource` inputSpec to read from the segments generated by the Kafka indexing tasks. This might be helpful if you want to compact a lot of segments in parallel. - Details on how to do this can be found under ['Updating Existing Data'](../ingestion/update-existing-data.html). + Details on how to do this can be found on the [Updating existing data](../ingestion/data-management.md#update) section + of the data management page. diff --git a/docs/content/operations/single-server.md b/docs/operations/single-server.md similarity index 97% rename from docs/content/operations/single-server.md rename to docs/operations/single-server.md index 54a6002f12cd..2a566845baf6 100644 --- a/docs/content/operations/single-server.md +++ b/docs/operations/single-server.md @@ -1,6 +1,6 @@ --- -layout: doc_page -title: "Single Server Deployments" +id: single-server +title: "Single server deployment" --- - -# Single Server Deployments + Druid includes a set of reference configurations and launch scripts for single-machine deployments: diff --git a/docs/content/operations/tls-support.md b/docs/operations/tls-support.md similarity index 90% rename from docs/content/operations/tls-support.md rename to docs/operations/tls-support.md index 4c942765aa5c..15e781a640d1 100644 --- a/docs/content/operations/tls-support.md +++ b/docs/operations/tls-support.md @@ -1,6 +1,6 @@ --- -layout: doc_page -title: "TLS Support" +id: tls-support +title: "TLS support" --- -# TLS Support - -# General Configuration +## General configuration |Property|Description|Default| |--------|-----------|-------| @@ -34,7 +32,7 @@ title: "TLS Support" Although not recommended but both HTTP and HTTPS connectors can be enabled at a time and respective ports are configurable using `druid.plaintextPort` and `druid.tlsPort` properties on each process. Please see `Configuration` section of individual processes to check the valid and default values for these ports. -# Jetty Server TLS Configuration +## Jetty server configuration Apache Druid (incubating) uses Jetty as an embedded web server. To get familiar with TLS/SSL in general and related concepts like Certificates etc. reading this [Jetty documentation](http://www.eclipse.org/jetty/documentation/9.4.x/configuring-ssl.html) might be helpful. @@ -48,7 +46,7 @@ values for the below mentioned configs among others provided by Java implementat |`druid.server.https.keyStorePath`|The file path or URL of the TLS/SSL Key store.|none|yes| |`druid.server.https.keyStoreType`|The type of the key store.|none|yes| |`druid.server.https.certAlias`|Alias of TLS/SSL certificate for the connector.|none|yes| -|`druid.server.https.keyStorePassword`|The [Password Provider](../operations/password-provider.html) or String password for the Key Store.|none|yes| +|`druid.server.https.keyStorePassword`|The [Password Provider](../operations/password-provider.md) or String password for the Key Store.|none|yes| The following table contains configuration options related to client certificate authentication. @@ -59,7 +57,7 @@ The following table contains configuration options related to client certificate |`druid.server.https.trustStoreType`|The type of the trust store containing certificates used to validate client certificates. Not needed if `requireClientCertificate` and `requestClientCertificate` are false.|`java.security.KeyStore.getDefaultType()`|no| |`druid.server.https.trustStorePath`|The file path or URL of the trust store containing certificates used to validate client certificates. Not needed if `requireClientCertificate` and `requestClientCertificate` are false.|none|yes, only if `requireClientCertificate` is true| |`druid.server.https.trustStoreAlgorithm`|Algorithm to be used by TrustManager to validate client certificate chains. Not needed if `requireClientCertificate` and `requestClientCertificate` are false.|`javax.net.ssl.TrustManagerFactory.getDefaultAlgorithm()`|no| -|`druid.server.https.trustStorePassword`|The [Password Provider](../operations/password-provider.html) or String password for the Trust Store. Not needed if `requireClientCertificate` and `requestClientCertificate` are false.|none|no| +|`druid.server.https.trustStorePassword`|The [password provider](../operations/password-provider.md) or String password for the Trust Store. Not needed if `requireClientCertificate` and `requestClientCertificate` are false.|none|no| |`druid.server.https.validateHostnames`|If set to true, check that the client's hostname matches the CN/subjectAltNames in the client certificate. Not used if `requireClientCertificate` and `requestClientCertificate` are false.|true|no| |`druid.server.https.crlPath`|Specifies a path to a file containing static [Certificate Revocation Lists](https://en.wikipedia.org/wiki/Certificate_revocation_list), used to check if a client certificate has been revoked. Not used if `requireClientCertificate` and `requestClientCertificate` are false.|null|no| @@ -68,30 +66,29 @@ The following table contains non-mandatory advanced configuration options, use c |Property|Description|Default|Required| |--------|-----------|-------|--------| |`druid.server.https.keyManagerFactoryAlgorithm`|Algorithm to use for creating KeyManager, more details [here](https://docs.oracle.com/javase/7/docs/technotes/guides/security/jsse/JSSERefGuide.html#KeyManager).|`javax.net.ssl.KeyManagerFactory.getDefaultAlgorithm()`|no| -|`druid.server.https.keyManagerPassword`|The [Password Provider](../operations/password-provider.html) or String password for the Key Manager.|none|no| +|`druid.server.https.keyManagerPassword`|The [Password Provider](../operations/password-provider.md) or String password for the Key Manager.|none|no| |`druid.server.https.includeCipherSuites`|List of cipher suite names to include. You can either use the exact cipher suite name or a regular expression.|Jetty's default include cipher list|no| |`druid.server.https.excludeCipherSuites`|List of cipher suite names to exclude. You can either use the exact cipher suite name or a regular expression.|Jetty's default exclude cipher list|no| |`druid.server.https.includeProtocols`|List of exact protocols names to include.|Jetty's default include protocol list|no| |`druid.server.https.excludeProtocols`|List of exact protocols names to exclude.|Jetty's default exclude protocol list|no| -# Druid's internal communication over TLS +## Internal communication over TLS Whenever possible Druid processes will use HTTPS to talk to each other. To enable this communication Druid's HttpClient needs to be configured with a proper [SSLContext](http://docs.oracle.com/javase/8/docs/api/javax/net/ssl/SSLContext.html) that is able to validate the Server Certificates, otherwise communication will fail. Since, there are various ways to configure SSLContext, by default, Druid looks for an instance of SSLContext Guice binding -while creating the HttpClient. This binding can be achieved writing a [Druid extension](../development/extensions.html) -which can provide an instance of SSLContext. Druid comes with a simple extension present [here](../development/extensions-core/simple-client-sslcontext.html) -which should be useful enough for most simple cases, see [this](./including-extensions.html) for how to include extensions. +while creating the HttpClient. This binding can be achieved writing a [Druid extension](../development/extensions.md) +which can provide an instance of SSLContext. Druid comes with a simple extension present [here](../development/extensions-core/simple-client-sslcontext.md) +which should be useful enough for most simple cases, see [this](../development/extensions.md#loading-extensions) for how to include extensions. If this extension does not satisfy the requirements then please follow the extension [implementation](https://github.com/apache/incubator-druid/tree/master/extensions-core/simple-client-sslcontext) to create your own extension. -# Upgrading Clients that interact with Overlord or Coordinator When Druid Coordinator/Overlord have both HTTP and HTTPS enabled and Client sends request to non-leader process, then Client is always redirected to the HTTPS endpoint on leader process. So, Clients should be first upgraded to be able to handle redirect to HTTPS. Then Druid Overlord/Coordinator should be upgraded and configured to run both HTTP and HTTPS ports. Then Client configuration should be changed to refer to Druid Coordinator/Overlord via the HTTPS endpoint and then HTTP port on Druid Coordinator/Overlord should be disabled. -# Custom TLS certificate checks +## Custom certificate checks Druid supports custom certificate check extensions. Please refer to the `org.apache.druid.server.security.TLSCertificateChecker` interface for details on the methods to be implemented. diff --git a/docs/content/operations/use_sbt_to_build_fat_jar.md b/docs/operations/use_sbt_to_build_fat_jar.md similarity index 99% rename from docs/content/operations/use_sbt_to_build_fat_jar.md rename to docs/operations/use_sbt_to_build_fat_jar.md index 95d7a9b2f470..055ddd236c40 100644 --- a/docs/content/operations/use_sbt_to_build_fat_jar.md +++ b/docs/operations/use_sbt_to_build_fat_jar.md @@ -1,5 +1,5 @@ --- -layout: doc_page +id: use_sbt_to_build_fat_jar title: "Content for build.sbt" --- @@ -22,7 +22,6 @@ title: "Content for build.sbt" ~ under the License. --> -# Content for build.sbt ```scala libraryDependencies ++= Seq( diff --git a/docs/content/querying/aggregations.md b/docs/querying/aggregations.md similarity index 81% rename from docs/content/querying/aggregations.md rename to docs/querying/aggregations.md index 66acea016cfb..3f6309586cb3 100644 --- a/docs/content/querying/aggregations.md +++ b/docs/querying/aggregations.md @@ -1,5 +1,5 @@ --- -layout: doc_page +id: aggregations title: "Aggregations" --- @@ -22,9 +22,8 @@ title: "Aggregations" ~ under the License. --> -# Aggregations -Aggregations can be provided at ingestion time as part of the ingestion spec as a way of summarizing data before it enters Apache Druid (incubating). +Aggregations can be provided at ingestion time as part of the ingestion spec as a way of summarizing data before it enters Apache Druid (incubating). Aggregations can also be specified as part of many queries at query time. Available aggregations are: @@ -37,9 +36,9 @@ Available aggregations are: { "type" : "count", "name" : } ``` -Please note the count aggregator counts the number of Druid rows, which does not always reflect the number of raw events ingested. -This is because Druid can be configured to roll up data at ingestion time. To -count the number of ingested rows of data, include a count aggregator at ingestion time, and a longSum aggregator at +Please note the count aggregator counts the number of Druid rows, which does not always reflect the number of raw events ingested. +This is because Druid can be configured to roll up data at ingestion time. To +count the number of ingested rows of data, include a count aggregator at ingestion time, and a longSum aggregator at query time. ### Sum aggregators @@ -192,9 +191,9 @@ Note that queries with first/last aggregators on a segment created with rollup e `longLast` computes the metric value with the maximum timestamp or 0 if no row exist ```json -{ +{ "type" : "longLast", - "name" : , + "name" : , "fieldName" : , } ``` @@ -260,33 +259,30 @@ JavaScript functions are expected to return floating-point values. } ``` -
-JavaScript-based functionality is disabled by default. Please refer to the Druid JavaScript programming guide for guidelines about using Druid's JavaScript functionality, including instructions on how to enable it. -
+> JavaScript-based functionality is disabled by default. Please refer to the Druid [JavaScript programming guide](../development/javascript.md) for guidelines about using Druid's JavaScript functionality, including instructions on how to enable it. + + - ## Approximate Aggregations ### Count distinct #### DataSketches Theta Sketch -The [DataSketches Theta Sketch](../development/extensions-core/datasketches-theta.html) extension-provided aggregator gives distinct count estimates with support for set union, intersection, and difference post-aggregators, using Theta sketches from the [datasketches](https://datasketches.github.io/) library. +The [DataSketches Theta Sketch](../development/extensions-core/datasketches-theta.md) extension-provided aggregator gives distinct count estimates with support for set union, intersection, and difference post-aggregators, using Theta sketches from the [datasketches](https://datasketches.github.io/) library. #### DataSketches HLL Sketch -The [DataSketches HLL Sketch](../development/extensions-core/datasketches-hll.html) extension-provided aggregator gives distinct count estimates using the HyperLogLog algorithm. +The [DataSketches HLL Sketch](../development/extensions-core/datasketches-hll.md) extension-provided aggregator gives distinct count estimates using the HyperLogLog algorithm. Compared to the Theta sketch, the HLL sketch does not support set operations and has slightly slower update and merge speed, but requires significantly less space. #### Cardinality, hyperUnique -
-For new use cases, we recommend evaluating DataSketches Theta Sketch or DataSketches HLL Sketch instead. -The DataSketches aggregators are generally able to offer more flexibility and better accuracy than the classic Druid `cardinality` and `hyperUnique` aggregators. -
+> For new use cases, we recommend evaluating [DataSketches Theta Sketch](../development/extensions-core/datasketches-theta.md) or [DataSketches HLL Sketch](../development/extensions-core/datasketches-hll.md) instead. +> The DataSketches aggregators are generally able to offer more flexibility and better accuracy than the classic Druid `cardinality` and `hyperUnique` aggregators. -The [Cardinality and HyperUnique](../querying/hll-old.html) aggregators are older aggregator implementations available by default in Druid that also provide distinct count estimates using the HyperLogLog algorithm. The newer DataSketches Theta and HLL extension-provided aggregators described above have superior accuracy and performance and are recommended instead. +The [Cardinality and HyperUnique](../querying/hll-old.md) aggregators are older aggregator implementations available by default in Druid that also provide distinct count estimates using the HyperLogLog algorithm. The newer DataSketches Theta and HLL extension-provided aggregators described above have superior accuracy and performance and are recommended instead. The DataSketches team has published a [comparison study](https://datasketches.github.io/docs/HLL/HllSketchVsDruidHyperLogLogCollector.html) between Druid's original HLL algorithm and the DataSketches HLL algorithm. Based on the demonstrated advantages of the DataSketches implementation, we are recommending using them in preference to Druid's original HLL-based aggregators. However, to ensure backwards compatibility, we will continue to support the classic aggregators. @@ -298,19 +294,19 @@ Please note that `hyperUnique` aggregators are not mutually compatible with Data Note the DataSketches Theta and HLL aggregators currently only support single-column inputs. If you were previously using the Cardinality aggregator with multiple-column inputs, equivalent operations using Theta or HLL sketches are described below: * Multi-column `byValue` Cardinality can be replaced with a union of Theta sketches on the individual input columns -* Multi-column `byRow` Cardinality can be replaced with a Theta or HLL sketch on a single [virtual column](../querying/virtual-columns.html) that combines the individual input columns. +* Multi-column `byRow` Cardinality can be replaced with a Theta or HLL sketch on a single [virtual column](../querying/virtual-columns.md) that combines the individual input columns. ### Histograms and quantiles #### DataSketches Quantiles Sketch -The [DataSketches Quantiles Sketch](../development/extensions-core/datasketches-quantiles.html) extension-provided aggregator provides quantile estimates and histogram approximations using the numeric quantiles DoublesSketch from the [datasketches](https://datasketches.github.io/) library. +The [DataSketches Quantiles Sketch](../development/extensions-core/datasketches-quantiles.md) extension-provided aggregator provides quantile estimates and histogram approximations using the numeric quantiles DoublesSketch from the [datasketches](https://datasketches.github.io/) library. We recommend this aggregator in general for quantiles/histogram use cases, as it provides formal error bounds and has distribution-independent accuracy. #### Moments Sketch (Experimental) -The [Moments Sketch](../development/extensions-contrib/momentsketch-quantiles.html) extension-provided aggregator is an experimental aggregator that provides quantile estimates using the [Moments Sketch](https://github.com/stanford-futuredata/momentsketch). +The [Moments Sketch](../development/extensions-contrib/momentsketch-quantiles.md) extension-provided aggregator is an experimental aggregator that provides quantile estimates using the [Moments Sketch](https://github.com/stanford-futuredata/momentsketch). The Moments Sketch aggregator is provided as an experimental option. It is optimized for merging speed and it can have higher aggregation performance compared to the DataSketches quantiles aggregator. However, the accuracy of the Moments Sketch is distribution-dependent, so users will need to empirically verify that the aggregator is suitable for their input data. @@ -326,13 +322,11 @@ We do not recommend the fixed buckets histogram for general use, as its usefulne #### Approximate Histogram (deprecated) -
-The Approximate Histogram aggregator is deprecated. -There are a number of other quantile estimation algorithms that offer better performance, accuracy, and memory footprint. -We recommend using DataSketches Quantiles instead. -
+> The Approximate Histogram aggregator is deprecated. +> There are a number of other quantile estimation algorithms that offer better performance, accuracy, and memory footprint. +> We recommend using [DataSketches Quantiles](../development/extensions-core/datasketches-quantiles.md) instead. -The [Approximate Histogram](../development/extensions-core/approximate-histograms.html) extension-provided aggregator also provides quantile estimates and histogram approximations, based on [http://jmlr.org/papers/volume11/ben-haim10a/ben-haim10a.pdf](http://jmlr.org/papers/volume11/ben-haim10a/ben-haim10a.pdf). +The [Approximate Histogram](../development/extensions-core/approximate-histograms.md) extension-provided aggregator also provides quantile estimates and histogram approximations, based on [http://jmlr.org/papers/volume11/ben-haim10a/ben-haim10a.pdf](http://jmlr.org/papers/volume11/ben-haim10a/ben-haim10a.pdf). The algorithm used by this deprecated aggregator is highly distribution-dependent and its output is subject to serious distortions when the input does not fit within the algorithm's limitations. diff --git a/docs/content/querying/caching.md b/docs/querying/caching.md similarity index 97% rename from docs/content/querying/caching.md rename to docs/querying/caching.md index 6d7775c13576..20482da0348e 100644 --- a/docs/content/querying/caching.md +++ b/docs/querying/caching.md @@ -1,6 +1,6 @@ --- -layout: doc_page -title: "Query Caching" +id: caching +title: "Query caching" --- -# Query Caching Apache Druid (incubating) supports query result caching at both the segment and whole-query result level. Cache data can be stored in the local JVM heap or in an external distributed key/value store. In all cases, the Druid cache is a query result cache. @@ -43,7 +42,7 @@ ingestion is not an issue. Brokers support both segment-level and whole-query result level caching. Segment-level caching is controlled by the parameters `useCache` and `populateCache`. Whole-query result level caching is controlled by the parameters -`useResultLevelCache` and `populateResultLevelCache` and [runtime properties](../configuration/index.html) +`useResultLevelCache` and `populateResultLevelCache` and [runtime properties](../configuration/index.md) `druid.broker.cache.*`.. Enabling segment-level caching on the Broker can yield faster results than if query caches were enabled on Historicals for small @@ -56,7 +55,7 @@ Druid cluster to scale well. ## Query caching on Historicals Historicals only support segment-level caching. Segment-level caching is controlled by the query context -parameters `useCache` and `populateCache` and [runtime properties](../configuration/index.html) +parameters `useCache` and `populateCache` and [runtime properties](../configuration/index.md) `druid.historical.cache.*`. Larger production clusters should enable segment-level cache population on Historicals only (not on Brokers) to avoid diff --git a/docs/content/querying/datasource.md b/docs/querying/datasource.md similarity index 90% rename from docs/content/querying/datasource.md rename to docs/querying/datasource.md index cba9d54a8962..a38263ee545d 100644 --- a/docs/content/querying/datasource.md +++ b/docs/querying/datasource.md @@ -1,5 +1,5 @@ --- -layout: doc_page +id: datasource title: "Datasources" --- @@ -22,11 +22,10 @@ title: "Datasources" ~ under the License. --> -# Datasources -A data source is the Apache Druid (incubating) equivalent of a database table. However, a query can also masquerade as a data source, providing subquery-like functionality. Query data sources are currently supported only by [GroupBy](../querying/groupbyquery.html) queries. +A data source is the Apache Druid (incubating) equivalent of a database table. However, a query can also masquerade as a data source, providing subquery-like functionality. Query data sources are currently supported only by [GroupBy](../querying/groupbyquery.md) queries. -### Table Data Source +### Table datasource The table data source is the most common type. It's represented by a string, or by the full structure: ```json @@ -36,7 +35,7 @@ The table data source is the most common type. It's represented by a string, or } ``` -### Union Data Source +### Union datasource This data source unions two or more table data sources. @@ -48,9 +47,9 @@ This data source unions two or more table data sources. ``` Note that the data sources being unioned should have the same schema. -Union Queries should be always sent to a Broker/Router process and are *NOT* supported directly by the Historical processes. +Union Queries should be always sent to a Broker/Router process and are *NOT* supported directly by the Historical processes. -### Query Data Source +### Query datasource This is used for nested groupBys and is only currently supported for groupBys. diff --git a/docs/content/querying/datasourcemetadataquery.md b/docs/querying/datasourcemetadataquery.md similarity index 89% rename from docs/content/querying/datasourcemetadataquery.md rename to docs/querying/datasourcemetadataquery.md index b2780164d611..ecd73afa026c 100644 --- a/docs/content/querying/datasourcemetadataquery.md +++ b/docs/querying/datasourcemetadataquery.md @@ -1,6 +1,7 @@ --- -layout: doc_page -title: "Data Source Metadata Queries" +id: datasourcemetadataquery +title: "DatasourceMetadata queries" +sidebar_label: "DatasourceMetadata" --- -# Data Source Metadata Queries Data Source Metadata queries return metadata information for a dataSource. These queries return information about: @@ -42,8 +42,8 @@ There are 2 main parts to a Data Source Metadata query: |property|description|required?| |--------|-----------|---------| |queryType|This String should always be "dataSourceMetadata"; this is the first thing Apache Druid (incubating) looks at to figure out how to interpret the query|yes| -|dataSource|A String or Object defining the data source to query, very similar to a table in a relational database. See [DataSource](../querying/datasource.html) for more information.|yes| -|context|See [Context](../querying/query-context.html)|no| +|dataSource|A String or Object defining the data source to query, very similar to a table in a relational database. See [DataSource](../querying/datasource.md) for more information.|yes| +|context|See [Context](../querying/query-context.md)|no| The format of the result is: diff --git a/docs/content/querying/dimensionspecs.md b/docs/querying/dimensionspecs.md similarity index 95% rename from docs/content/querying/dimensionspecs.md rename to docs/querying/dimensionspecs.md index 00434d50d51d..4604be9be116 100644 --- a/docs/content/querying/dimensionspecs.md +++ b/docs/querying/dimensionspecs.md @@ -1,5 +1,5 @@ --- -layout: doc_page +id: dimensionspecs title: "Transforming Dimension Values" --- @@ -22,7 +22,6 @@ title: "Transforming Dimension Values" ~ under the License. --> -# Transforming Dimension Values The following JSON fields can be used in a query to operate on dimension values. @@ -69,7 +68,7 @@ Please refer to the [Output Types](#output-types) section for more details. These are only useful for multi-value dimensions. If you have a row in Apache Druid (incubating) that has a multi-value dimension with values ["v1", "v2", "v3"] and you send a groupBy/topN query grouping by that dimension with [query filter](filters.html) for value "v1". In the response you will get 3 rows containing "v1", "v2" and "v3". This behavior might be unintuitive for some use cases. -It happens because "query filter" is internally used on the bitmaps and only used to match the row to be included in the query result processing. With multi-value dimensions, "query filter" behaves like a contains check, which will match the row with dimension value ["v1", "v2", "v3"]. Please see the section on "Multi-value columns" in [segment](../design/segments.html) for more details. +It happens because "query filter" is internally used on the bitmaps and only used to match the row to be included in the query result processing. With multi-value dimensions, "query filter" behaves like a contains check, which will match the row with dimension value ["v1", "v2", "v3"]. Please see the section on "Multi-value columns" in [segment](../design/segments.md) for more details. Then groupBy/topN processing pipeline "explodes" all multi-value dimensions resulting 3 rows for "v1", "v2" and "v3" each. In addition to "query filter" which efficiently selects the rows to be processed, you can use the filtered dimension spec to filter for specific values within the values of a multi-value dimension. These dimensionSpecs take a delegate DimensionSpec and a filtering criteria. From the "exploded" rows, only rows matching the given filtering criteria are returned in the query result. @@ -96,9 +95,7 @@ For more details and examples, see [multi-value dimensions](multi-value-dimensio ### Lookup DimensionSpecs -
-Lookups are an experimental feature. -
+> Lookups are an [experimental](../development/experimental.md) feature. Lookup DimensionSpecs can be used to define directly a lookup implementation as dimension spec. Generally speaking there is two different kind of lookups implementations. @@ -155,7 +152,7 @@ Extraction functions define the transformation applied to each dimension value. Transformations can be applied to both regular (string) dimensions, as well as the special `__time` dimension, which represents the current time bucket -according to the query [aggregation granularity](../querying/granularities.html). +according to the query [aggregation granularity](../querying/granularities.md). **Note**: for functions taking string values (such as regular expressions), `__time` dimension values will be formatted in [ISO-8601 format](https://en.wikipedia.org/wiki/ISO_8601) @@ -197,9 +194,9 @@ Returns the dimension value unchanged if the regular expression matches, otherwi { "type" : "partial", "expr" : } ``` -### Search Query Extraction Function +### Search query extraction function -Returns the dimension value unchanged if the given [`SearchQuerySpec`](../querying/searchqueryspec.html) +Returns the dimension value unchanged if the given [`SearchQuerySpec`](../querying/searchqueryspec.md) matches, otherwise returns null. ```json @@ -220,7 +217,7 @@ be returned. If index is greater than the length of the dimension value, null wi { "type" : "substring", "index" : 1, "length" : 4 } ``` -The length may be omitted for substring to return the remainder of the dimension value starting from index, +The length may be omitted for substring to return the remainder of the dimension value starting from index, or null if index greater than the length of the dimension value. ```json @@ -244,7 +241,7 @@ null strings are considered as having zero length. Returns the dimension value formatted according to the given format string, time zone, and locale. For `__time` dimension values, this formats the time value bucketed by the -[aggregation granularity](../querying/granularities.html) +[aggregation granularity](../querying/granularities.md) For a regular dimension, it assumes the string is formatted in [ISO-8601 date and time format](https://en.wikipedia.org/wiki/ISO_8601). @@ -341,14 +338,12 @@ Example for the `__time` dimension: } ``` -
-JavaScript-based functionality is disabled by default. Please refer to the Druid JavaScript programming guide for guidelines about using Druid's JavaScript functionality, including instructions on how to enable it. -
+> JavaScript-based functionality is disabled by default. Please refer to the Druid [JavaScript programming guide](../development/javascript.md) for guidelines about using Druid's JavaScript functionality, including instructions on how to enable it. ### Registered lookup extraction function Lookups are a concept in Druid where dimension values are (optionally) replaced with new values. -For more documentation on using lookups, please see [Lookups](../querying/lookups.html). +For more documentation on using lookups, please see [Lookups](../querying/lookups.md). The "registeredLookup" extraction function lets you refer to a lookup that has been registered in the cluster-wide configuration. @@ -428,7 +423,7 @@ Omitting the empty string key will cause the missing value to take over. For exa ### Inline lookup extraction function Lookups are a concept in Druid where dimension values are (optionally) replaced with new values. -For more documentation on using lookups, please see [Lookups](../querying/lookups.html). +For more documentation on using lookups, please see [Lookups](../querying/lookups.md). The "lookup" extraction function lets you specify an inline lookup map without registering one in the cluster-wide configuration. @@ -474,28 +469,28 @@ Example for chaining [regular expression extraction function](#regular-expressio ```json { - "type" : "cascade", + "type" : "cascade", "extractionFns": [ - { - "type" : "regex", - "expr" : "/([^/]+)/", + { + "type" : "regex", + "expr" : "/([^/]+)/", "replaceMissingValue": false, "replaceMissingValueWith": null }, - { - "type" : "javascript", - "function" : "function(str) { return \"the \".concat(str) }" + { + "type" : "javascript", + "function" : "function(str) { return \"the \".concat(str) }" }, - { - "type" : "substring", - "index" : 0, "length" : 7 + { + "type" : "substring", + "index" : 0, "length" : 7 } ] } ``` It will transform dimension values with specified extraction functions in the order named. -For example, `'/druid/prod/historical'` is transformed to `'the dru'` as regular expression extraction function first transforms it to `'druid'` and then, javascript extraction function transforms it to `'the druid'`, and lastly, substring extraction function transforms it to `'the dru'`. +For example, `'/druid/prod/historical'` is transformed to `'the dru'` as regular expression extraction function first transforms it to `'druid'` and then, javascript extraction function transforms it to `'the druid'`, and lastly, substring extraction function transforms it to `'the dru'`. ### String Format Extraction Function @@ -510,7 +505,7 @@ For example if you want to concat "[" and "]" before and after the actual dimens ### Upper and Lower extraction functions. Returns the dimension values as all upper case or lower case. -Optionally user can specify the language to use in order to perform upper or lower transformation +Optionally user can specify the language to use in order to perform upper or lower transformation ```json { diff --git a/docs/content/querying/filters.md b/docs/querying/filters.md similarity index 94% rename from docs/content/querying/filters.md rename to docs/querying/filters.md index 53e0853d234f..5fed8712ad1d 100644 --- a/docs/content/querying/filters.md +++ b/docs/querying/filters.md @@ -1,5 +1,5 @@ --- -layout: doc_page +id: filters title: "Query Filters" --- @@ -22,7 +22,6 @@ title: "Query Filters" ~ under the License. --> -# Query Filters A filter is a JSON object indicating which rows of data should be included in the computation for a query. It’s essentially the equivalent of the WHERE clause in SQL. Apache Druid (incubating) supports the following types of filters. @@ -50,7 +49,7 @@ The column comparison filter is similar to the selector filter, but instead comp This is the equivalent of `WHERE = `. -`dimensions` is list of [DimensionSpecs](./dimensionspecs.html), making it possible to apply an extraction function if needed. +`dimensions` is list of [DimensionSpecs](./dimensionspecs.md), making it possible to apply an extraction function if needed. ### Regular expression filter @@ -122,16 +121,12 @@ The following matches any dimension values for the dimension `name` between `'ba The JavaScript filter supports the use of extraction functions, see [Filtering with Extraction Functions](#filtering-with-extraction-functions) for details. -
-JavaScript-based functionality is disabled by default. Please refer to the Druid JavaScript programming guide for guidelines about using Druid's JavaScript functionality, including instructions on how to enable it. -
+> JavaScript-based functionality is disabled by default. Please refer to the Druid [JavaScript programming guide](../development/javascript.md) for guidelines about using Druid's JavaScript functionality, including instructions on how to enable it. ### Extraction filter -
-The extraction filter is now deprecated. The selector filter with an extraction function specified -provides identical functionality and should be used instead. -
+> The extraction filter is now deprecated. The selector filter with an extraction function specified +> provides identical functionality and should be used instead. Extraction filter matches a dimension using some specific [Extraction function](./dimensionspecs.html#extraction-functions). The following filter matches the values for which the extraction function has transformation entry `input_key=output_value` where @@ -163,7 +158,7 @@ The following matches dimension values in `[product_1, product_3, product_5]` fo ### Search filter -Search filters can be used to filter on partial string matches. +Search filters can be used to filter on partial string matches. ```json { @@ -172,8 +167,8 @@ Search filters can be used to filter on partial string matches. "dimension": "product", "query": { "type": "insensitive_contains", - "value": "foo" - } + "value": "foo" + } } } ``` @@ -187,7 +182,7 @@ Search filters can be used to filter on partial string matches. The search filter supports the use of extraction functions, see [Filtering with Extraction Functions](#filtering-with-extraction-functions) for details. -#### Search Query Spec +#### Search query spec ##### Contains @@ -276,9 +271,9 @@ greater than, less than, greater than or equal to, less than or equal to, and "b |upper|String|The upper bound for the filter|no| |lowerStrict|Boolean|Perform strict comparison on the lower bound (">" instead of ">=")|no, default: false| |upperStrict|Boolean|Perform strict comparison on the upper bound ("<" instead of "<=")|no, default: false| -|ordering|String|Specifies the sorting order to use when comparing values against the bound. Can be one of the following values: "lexicographic", "alphanumeric", "numeric", "strlen", "version". See [Sorting Orders](./sorting-orders.html) for more details.|no, default: "lexicographic"| +|ordering|String|Specifies the sorting order to use when comparing values against the bound. Can be one of the following values: "lexicographic", "alphanumeric", "numeric", "strlen", "version". See [Sorting Orders](./sorting-orders.md) for more details.|no, default: "lexicographic"| |extractionFn|[Extraction function](#filtering-with-extraction-functions)| Extraction function to apply to the dimension|no| - + Bound filters support the use of extraction functions, see [Filtering with Extraction Functions](#filtering-with-extraction-functions) for details. The following bound filter expresses the condition `21 <= age <= 31`: @@ -354,7 +349,7 @@ This filter converts the ISO 8601 intervals to long millisecond start/end ranges |dimension|String|The dimension to filter on|yes| |intervals|Array|A JSON array containing ISO-8601 interval strings. This defines the time ranges to filter on.|yes| |extractionFn|[Extraction function](#filtering-with-extraction-functions)| Extraction function to apply to the dimension|no| - + The interval filter supports the use of extraction functions, see [Filtering with Extraction Functions](#filtering-with-extraction-functions) for details. If an extraction function is used with this filter, the extraction function should output values that are parseable as long milliseconds. @@ -519,7 +514,7 @@ Filtering on a set of ISO 8601 intervals: ``` ### True Filter -The true filter is a filter which matches all values. It can be used to temporarily disable other filters without removing the filter. +The true filter is a filter which matches all values. It can be used to temporarily disable other filters without removing the filter. ```json diff --git a/docs/content/querying/granularities.md b/docs/querying/granularities.md similarity index 97% rename from docs/content/querying/granularities.md rename to docs/querying/granularities.md index 4953ead0c6fb..838b00d16e7d 100644 --- a/docs/content/querying/granularities.md +++ b/docs/querying/granularities.md @@ -1,5 +1,5 @@ --- -layout: doc_page +id: granularities title: "Aggregation Granularity" --- @@ -22,7 +22,6 @@ title: "Aggregation Granularity" ~ under the License. --> -# Aggregation Granularity The granularity field determines how data gets bucketed across the time dimension, or how it gets aggregated by hour, day, minute, etc. @@ -35,7 +34,7 @@ Simple granularities are specified as a string and bucket timestamps by their UT Supported granularity strings are: `all`, `none`, `second`, `minute`, `fifteen_minute`, `thirty_minute`, `hour`, `day`, `week`, `month`, `quarter` and `year`. * `all` buckets everything into a single bucket -* `none` does not bucket data (it actually uses the granularity of the index - minimum here is `none` which means millisecond granularity). Using `none` in a [TimeseriesQuery](../querying/timeseriesquery.html) is currently not recommended (the system will try to generate 0 values for all milliseconds that didn’t exist, which is often a lot). +* `none` does not bucket data (it actually uses the granularity of the index - minimum here is `none` which means millisecond granularity). Using `none` in a [TimeseriesQuery](../querying/timeseriesquery.md) is currently not recommended (the system will try to generate 0 values for all milliseconds that didn’t exist, which is often a lot). #### Example: @@ -177,7 +176,7 @@ If you change the granularity to `none`, you will get the same results as settin ``` Having a query time `granularity` that is smaller than the `queryGranularity` parameter set at -[ingestion time]((../ingestion/ingestion-spec.html#granularityspec)) is unreasonable because information about that +[ingestion time](../ingestion/index.md#granularityspec) is unreasonable because information about that smaller granularity is not present in the indexed data. So, if the query time granularity is smaller than the ingestion time query granularity, Druid produces results that are equivalent to having set `granularity` to `queryGranularity`. diff --git a/docs/content/querying/groupbyquery.md b/docs/querying/groupbyquery.md similarity index 93% rename from docs/content/querying/groupbyquery.md rename to docs/querying/groupbyquery.md index 1445fee87259..0cac52501cde 100644 --- a/docs/content/querying/groupbyquery.md +++ b/docs/querying/groupbyquery.md @@ -1,6 +1,7 @@ --- -layout: doc_page -title: "groupBy Queries" +id: groupbyquery +title: "GroupBy queries" +sidebar_label: "GroupBy" --- -# groupBy Queries These types of Apache Druid (incubating) queries take a groupBy query object and return an array of JSON objects where each object represents a grouping asked for by the query. -
-Note: If you are doing aggregations with time as your only grouping, or an ordered groupBy over a single dimension, -consider Timeseries and TopN queries as well as -groupBy. Their performance may be better in some cases. See Alternatives below for more details. -
+> Note: If you are doing aggregations with time as your only grouping, or an ordered groupBy over a single dimension, +> consider [Timeseries](timeseriesquery.md) and [TopN](topnquery.md) queries as well as +> groupBy. Their performance may be better in some cases. See [Alternatives](#alternatives) below for more details. An example groupBy query object is shown below: @@ -46,7 +44,7 @@ An example groupBy query object is shown below: "type": "and", "fields": [ { "type": "selector", "dimension": "carrier", "value": "AT&T" }, - { "type": "or", + { "type": "or", "fields": [ { "type": "selector", "dimension": "make", "value": "Apple" }, { "type": "selector", "dimension": "make", "value": "Samsung" } @@ -82,14 +80,14 @@ Following are main parts to a groupBy query: |property|description|required?| |--------|-----------|---------| |queryType|This String should always be "groupBy"; this is the first thing Druid looks at to figure out how to interpret the query|yes| -|dataSource|A String or Object defining the data source to query, very similar to a table in a relational database. See [DataSource](../querying/datasource.html) for more information.|yes| -|dimensions|A JSON list of dimensions to do the groupBy over; or see [DimensionSpec](../querying/dimensionspecs.html) for ways to extract dimensions. |yes| -|limitSpec|See [LimitSpec](../querying/limitspec.html).|no| -|having|See [Having](../querying/having.html).|no| -|granularity|Defines the granularity of the query. See [Granularities](../querying/granularities.html)|yes| -|filter|See [Filters](../querying/filters.html)|no| -|aggregations|See [Aggregations](../querying/aggregations.html)|no| -|postAggregations|See [Post Aggregations](../querying/post-aggregations.html)|no| +|dataSource|A String or Object defining the data source to query, very similar to a table in a relational database. See [DataSource](../querying/datasource.md) for more information.|yes| +|dimensions|A JSON list of dimensions to do the groupBy over; or see [DimensionSpec](../querying/dimensionspecs.md) for ways to extract dimensions. |yes| +|limitSpec|See [LimitSpec](../querying/limitspec.md).|no| +|having|See [Having](../querying/having.md).|no| +|granularity|Defines the granularity of the query. See [Granularities](../querying/granularities.md)|yes| +|filter|See [Filters](../querying/filters.md)|no| +|aggregations|See [Aggregations](../querying/aggregations.md)|no| +|postAggregations|See [Post Aggregations](../querying/post-aggregations.md)|no| |intervals|A JSON Object representing ISO-8601 Intervals. This defines the time ranges to run the query over.|yes| |subtotalsSpec| A JSON array of arrays to return additional result sets for groupings of subsets of top level `dimensions`. It is [described later](groupbyquery.html#more-on-subtotalsspec) in more detail.|no| |context|An additional JSON Object which can be used to specify certain flags.|no| @@ -97,7 +95,7 @@ Following are main parts to a groupBy query: To pull it all together, the above query would return *n\*m* data points, up to a maximum of 5000 points, where n is the cardinality of the `country` dimension, m is the cardinality of the `device` dimension, each day between 2012-01-01 and 2012-01-03, from the `sample_datasource` table. Each data point contains the (long) sum of `total_usage` if the value of the data point is greater than 100, the (double) sum of `data_transfer` and the (double) result of `total_usage` divided by `data_transfer` for the filter set for a particular grouping of `country` and `device`. The output looks like this: ```json -[ +[ { "version" : "v1", "timestamp" : "2012-01-01T00:00:00.000Z", @@ -108,7 +106,7 @@ To pull it all together, the above query would return *n\*m* data points, up to "data_transfer" :, "avg_usage" : } - }, + }, { "version" : "v1", "timestamp" : "2012-01-01T00:00:12.000Z", @@ -288,10 +286,10 @@ disk space. With groupBy v2, cluster operators should make sure that the off-heap hash tables and on-heap merging dictionaries will not exceed available memory for the maximum possible concurrent query load (given by -druid.processing.numMergeBuffers). See the [Basic Cluster Tuning Guide](../operations/basic-cluster-tuning.html) +druid.processing.numMergeBuffers). See the [basic cluster tuning guide](../operations/basic-cluster-tuning.md) for more details about direct memory usage, organized by Druid process type. -Brokers do not need merge buffers for basic groupBy queries. Queries with subqueries (using a "query" [dataSource](datasource.html#query-data-source)) require one merge buffer if there is a single subquery, or two merge buffers if there is more than one layer of nested subqueries. Queries with [subtotals](groupbyquery.html#more-on-subtotalsspec) need one merge buffer. These can stack on top of each other: a groupBy query with multiple layers of nested subqueries, and that also uses subtotals, will need three merge buffers. +Brokers do not need merge buffers for basic groupBy queries. Queries with subqueries (using a `query` dataSource) require one merge buffer if there is a single subquery, or two merge buffers if there is more than one layer of nested subqueries. Queries with [subtotals](groupbyquery.html#more-on-subtotalsspec) need one merge buffer. These can stack on top of each other: a groupBy query with multiple layers of nested subqueries, and that also uses subtotals, will need three merge buffers. Historicals and ingestion tasks need one merge buffer for each groupBy query, unless [parallel combination](groupbyquery.html#parallel-combine) is enabled, in which case they need two merge buffers per query. @@ -366,7 +364,7 @@ strategy perform the outer query on the Broker in a single-threaded fashion. #### Configurations This section describes the configurations for groupBy queries. You can set the runtime properties in the `runtime.properties` file on Broker, Historical, and MiddleManager processes. You can set the query context parameters through the [query context](query-context.html). - + ##### Configurations for groupBy v2 Supported runtime properties: diff --git a/docs/content/querying/having.md b/docs/querying/having.md similarity index 94% rename from docs/content/querying/having.md rename to docs/querying/having.md index a1059ab5cbdb..9780c55b9b4e 100644 --- a/docs/content/querying/having.md +++ b/docs/querying/having.md @@ -1,6 +1,6 @@ --- -layout: doc_page -title: "Filter groupBy Query Results" +id: having +title: "Filter groupBy query results" --- -# Filter groupBy Query Results A having clause is a JSON object identifying which rows from a groupBy query should be returned, by specifying conditions on aggregated values. @@ -41,7 +40,7 @@ The grammar for a query filter HavingSpec is: "queryType": "groupBy", "dataSource": "sample_datasource", ... - "having": + "having": { "type" : "filter", "filter" : @@ -57,7 +56,7 @@ For example, to use a selector filter: "queryType": "groupBy", "dataSource": "sample_datasource", ... - "having": + "having": { "type" : "filter", "filter" : { @@ -84,7 +83,7 @@ Here's an example of a having-clause numeric filter: "queryType": "groupBy", "dataSource": "sample_datasource", ... - "having": + "having": { "type": "greaterThan", "aggregation": "", @@ -103,7 +102,7 @@ The grammar for an `equalTo` filter is as follows: "queryType": "groupBy", "dataSource": "sample_datasource", ... - "having": + "having": { "type": "equalTo", "aggregation": "", @@ -124,7 +123,7 @@ The grammar for a `greaterThan` filter is as follows: "queryType": "groupBy", "dataSource": "sample_datasource", ... - "having": + "having": { "type": "greaterThan", "aggregation": "", @@ -145,7 +144,7 @@ The grammar for a `greaterThan` filter is as follows: "queryType": "groupBy", "dataSource": "sample_datasource", ... - "having": + "having": { "type": "lessThan", "aggregation": "", @@ -170,7 +169,7 @@ The grammar for a `dimSelector` filter is as follows: "queryType": "groupBy", "dataSource": "sample_datasource", ... - "having": + "having": { "type": "dimSelector", "dimension": "", @@ -191,10 +190,10 @@ The grammar for an AND filter is as follows: "queryType": "groupBy", "dataSource": "sample_datasource", ... - "having": + "having": { "type": "and", - "havingSpecs": [ + "havingSpecs": [ { "type": "greaterThan", "aggregation": "", @@ -219,10 +218,10 @@ The grammar for an OR filter is as follows: "queryType": "groupBy", "dataSource": "sample_datasource", ... - "having": + "having": { "type": "or", - "havingSpecs": [ + "havingSpecs": [ { "type": "greaterThan", "aggregation": "", @@ -247,10 +246,10 @@ The grammar for a NOT filter is as follows: "queryType": "groupBy", "dataSource": "sample_datasource", ... - "having": + "having": { "type": "not", - "havingSpec": + "havingSpec": { "type": "equalTo", "aggregation": "", diff --git a/docs/content/querying/hll-old.md b/docs/querying/hll-old.md similarity index 94% rename from docs/content/querying/hll-old.md rename to docs/querying/hll-old.md index e416edaf648d..3323321b07f9 100644 --- a/docs/content/querying/hll-old.md +++ b/docs/querying/hll-old.md @@ -1,5 +1,5 @@ --- -layout: doc_page +id: hll-old title: "Cardinality/HyperUnique aggregators" --- @@ -22,13 +22,12 @@ title: "Cardinality/HyperUnique aggregators" ~ under the License. --> -# Cardinality/HyperUnique aggregators ## Cardinality aggregator -Computes the cardinality of a set of Apache Druid (incubating) dimensions, using HyperLogLog to estimate the cardinality. Please note that this -aggregator will be much slower than indexing a column with the hyperUnique aggregator. This aggregator also runs over a dimension column, which -means the string dimension cannot be removed from the dataset to improve rollup. In general, we strongly recommend using the hyperUnique aggregator +Computes the cardinality of a set of Apache Druid (incubating) dimensions, using HyperLogLog to estimate the cardinality. Please note that this +aggregator will be much slower than indexing a column with the hyperUnique aggregator. This aggregator also runs over a dimension column, which +means the string dimension cannot be removed from the dataset to improve rollup. In general, we strongly recommend using the hyperUnique aggregator instead of the cardinality aggregator if you do not care about the individual values of a dimension. ```json @@ -41,7 +40,7 @@ instead of the cardinality aggregator if you do not care about the individual va } ``` -Each individual element of the "fields" list can be a String or [DimensionSpec](../querying/dimensionspecs.html). A String dimension in the fields list is equivalent to a DefaultDimensionSpec (no transformations). +Each individual element of the "fields" list can be a String or [DimensionSpec](../querying/dimensionspecs.md). A String dimension in the fields list is equivalent to a DefaultDimensionSpec (no transformations). The HyperLogLog algorithm generates decimal estimates with some error. "round" can be set to true to round off estimated values to whole numbers. Note that even with rounding, the cardinality is still an estimate. The "round" field only @@ -125,7 +124,7 @@ Determine the number of distinct starting characters of last names Uses [HyperLogLog](http://algo.inria.fr/flajolet/Publications/FlFuGaMe07.pdf) to compute the estimated cardinality of a dimension that has been aggregated as a "hyperUnique" metric at indexing time. ```json -{ +{ "type" : "hyperUnique", "name" : , "fieldName" : , diff --git a/docs/content/querying/joins.md b/docs/querying/joins.md similarity index 78% rename from docs/content/querying/joins.md rename to docs/querying/joins.md index fe162b795afe..a8bd757dee23 100644 --- a/docs/content/querying/joins.md +++ b/docs/querying/joins.md @@ -1,5 +1,5 @@ --- -layout: doc_page +id: joins title: "Joins" --- @@ -22,34 +22,33 @@ title: "Joins" ~ under the License. --> -# Joins -Apache Druid (incubating) has limited support for joins through [query-time lookups](../querying/lookups.html). The common use case of +Apache Druid (incubating) has limited support for joins through [query-time lookups](../querying/lookups.md). The common use case of query-time lookups is to replace one dimension value (e.g. a String ID) with another value (e.g. a human-readable String value). This is similar to a star-schema join. -Druid does not yet have full support for joins. Although Druid’s storage format would allow for the implementation -of joins (there is no loss of fidelity for columns included as dimensions), full support for joins have not yet been implemented yet +Druid does not yet have full support for joins. Although Druid’s storage format would allow for the implementation +of joins (there is no loss of fidelity for columns included as dimensions), full support for joins have not yet been implemented yet for the following reasons: -1. Scaling join queries has been, in our professional experience, +1. Scaling join queries has been, in our professional experience, a constant bottleneck of working with distributed databases. -2. The incremental gains in functionality are perceived to be -of less value than the anticipated problems with managing +2. The incremental gains in functionality are perceived to be +of less value than the anticipated problems with managing highly concurrent, join-heavy workloads. -A join query is essentially the merging of two or more streams of data based on a shared set of keys. The primary -high-level strategies for join queries we are aware of are a hash-based strategy or a -sorted-merge strategy. The hash-based strategy requires that all but -one data set be available as something that looks like a hash table, -a lookup operation is then performed on this hash table for every -row in the “primary” stream. The sorted-merge strategy assumes -that each stream is sorted by the join key and thus allows for the incremental -joining of the streams. Each of these strategies, however, -requires the materialization of some number of the streams either in +A join query is essentially the merging of two or more streams of data based on a shared set of keys. The primary +high-level strategies for join queries we are aware of are a hash-based strategy or a +sorted-merge strategy. The hash-based strategy requires that all but +one data set be available as something that looks like a hash table, +a lookup operation is then performed on this hash table for every +row in the “primary” stream. The sorted-merge strategy assumes +that each stream is sorted by the join key and thus allows for the incremental +joining of the streams. Each of these strategies, however, +requires the materialization of some number of the streams either in sorted order or in a hash table form. -When all sides of the join are significantly large tables (> 1 billion -records), materializing the pre-join streams requires complex -distributed memory management. The complexity of the memory -management is only amplified by the fact that we are targeting highly +When all sides of the join are significantly large tables (> 1 billion +records), materializing the pre-join streams requires complex +distributed memory management. The complexity of the memory +management is only amplified by the fact that we are targeting highly concurrent, multi-tenant workloads. diff --git a/docs/content/querying/limitspec.md b/docs/querying/limitspec.md similarity index 83% rename from docs/content/querying/limitspec.md rename to docs/querying/limitspec.md index 25168b4e402d..c208dfcd188e 100644 --- a/docs/content/querying/limitspec.md +++ b/docs/querying/limitspec.md @@ -1,6 +1,6 @@ --- -layout: doc_page -title: "Sort groupBy Query Results" +id: limitspec +title: "Sort groupBy query results" --- -# Sort groupBy Query Results -The limitSpec field provides the functionality to sort and limit the set of results from a groupBy query. If you group by a single dimension and are ordering by a single metric, we highly recommend using [TopN Queries](../querying/topnquery.html) instead. The performance will be substantially better. Available options are: +The limitSpec field provides the functionality to sort and limit the set of results from a groupBy query. If you group by a single dimension and are ordering by a single metric, we highly recommend using [TopN Queries](../querying/topnquery.md) instead. The performance will be substantially better. Available options are: ### DefaultLimitSpec The default limit spec takes a limit and the list of columns to do an orderBy operation over. The grammar is: -```json +```json { "type" : "default", "limit" : , @@ -42,7 +41,7 @@ The default limit spec takes a limit and the list of columns to do an orderBy op OrderByColumnSpecs indicate how to do order by operations. Each order-by condition can be a `jsonString` or a map of the following form: -```json +```json { "dimension" : "", "direction" : <"ascending"|"descending">, @@ -52,4 +51,4 @@ OrderByColumnSpecs indicate how to do order by operations. Each order-by conditi If only the dimension is provided (as a JSON string), the default order-by is ascending with lexicographic sorting. -See [Sorting Orders](./sorting-orders.html) for more information on the sorting orders specified by "dimensionOrder". +See [Sorting Orders](./sorting-orders.md) for more information on the sorting orders specified by "dimensionOrder". diff --git a/docs/content/querying/lookups.md b/docs/querying/lookups.md similarity index 91% rename from docs/content/querying/lookups.md rename to docs/querying/lookups.md index aa20d6486a33..31f9323e220a 100644 --- a/docs/content/querying/lookups.md +++ b/docs/querying/lookups.md @@ -1,5 +1,5 @@ --- -layout: doc_page +id: lookups title: "Lookups" --- @@ -22,15 +22,12 @@ title: "Lookups" ~ under the License. --> -# Lookups -
-Lookups are an experimental feature. -
+> Lookups are an [experimental](../development/experimental.md) feature. Lookups are a concept in Apache Druid (incubating) where dimension values are (optionally) replaced with new values, allowing join-like functionality. Applying lookups in Druid is similar to joining a dimension table in a data warehouse. See -[dimension specs](../querying/dimensionspecs.html) for more information. For the purpose of these documents, a "key" +[dimension specs](../querying/dimensionspecs.md) for more information. For the purpose of these documents, a "key" refers to a dimension value to match, and a "value" refers to its replacement. So if you wanted to map `appid-12345` to `Super Mega Awesome App` then the key would be `appid-12345` and the value would be `Super Mega Awesome App`. @@ -40,20 +37,20 @@ code and country name, but also support use cases where multiple IDs map to the mapping to a single account manager. When lookups are one-to-one, Druid is able to apply additional optimizations at query time; see [Query execution](#query-execution) below for more details. -Lookups do not have history. They always use the current data. This means that if the chief account manager for a -particular app-id changes, and you issue a query with a lookup to store the app-id to account manager relationship, +Lookups do not have history. They always use the current data. This means that if the chief account manager for a +particular app-id changes, and you issue a query with a lookup to store the app-id to account manager relationship, it will return the current account manager for that app-id REGARDLESS of the time range over which you query. -If you require data time range sensitive lookups, such a use case is not currently supported dynamically at query time, +If you require data time range sensitive lookups, such a use case is not currently supported dynamically at query time, and such data belongs in the raw denormalized data for use in Druid. -Very small lookups (count of keys on the order of a few dozen to a few hundred) can be passed at query time as a "map" -lookup as per [dimension specs](../querying/dimensionspecs.html). +Very small lookups (count of keys on the order of a few dozen to a few hundred) can be passed at query time as a "map" +lookup as per [dimension specs](../querying/dimensionspecs.md). Other lookup types are available as extensions, including: -- Globally cached lookups from local files, remote URIs, or JDBC through [lookups-cached-global](../development/extensions-core/lookups-cached-global.html). -- Globally cached lookups from a Kafka topic through [kafka-extraction-namespace](../development/extensions-core/kafka-extraction-namespace.html). +- Globally cached lookups from local files, remote URIs, or JDBC through [lookups-cached-global](../development/extensions-core/lookups-cached-global.md). +- Globally cached lookups from a Kafka topic through [kafka-extraction-namespace](../development/extensions-core/kafka-extraction-namespace.md). Query Syntax ------------ @@ -100,10 +97,8 @@ will not detect this automatically. Dynamic Configuration --------------------- -
-Dynamic lookup configuration is an experimental feature. Static -configuration is no longer supported. -
+> Dynamic lookup configuration is an [experimental](../development/experimental.md) feature. Static +> configuration is no longer supported. The following documents the behavior of the cluster-wide config which is accessible through the Coordinator. The configuration is propagated through the concept of "tier" of servers. A "tier" is defined as a group of services which should receive a set of lookups. @@ -134,9 +129,9 @@ The Coordinator periodically checks if any of the processes need to load/drop lo Please note that only 2 simultaneous lookup configuration propagation requests can be concurrently handled by a single query serving process. This limit is applied to prevent lookup handling from consuming too many server HTTP connections. -# API for configuring lookups +## API for configuring lookups -## Bulk update +### Bulk update Lookups can be updated in bulk by posting a JSON object to `/druid/coordinator/v1/lookups/config`. The format of the json object is as follows: ```json @@ -254,7 +249,8 @@ For example, a config might look something like: All entries in the map will UPDATE existing entries. No entries will be deleted. -## Update Lookup +### Update lookup + A `POST` to a particular lookup extractor factory via `/druid/coordinator/v1/lookups/config/{tier}/{id}` will update that specific extractor factory. For example, a post to `/druid/coordinator/v1/lookups/config/realtime_customer1/site_id_customer1` might contain the following: @@ -273,10 +269,12 @@ For example, a post to `/druid/coordinator/v1/lookups/config/realtime_customer1/ This will replace the `site_id_customer1` lookup in the `realtime_customer1` with the definition above. -## Get All Lookups +### Get all lookups + A `GET` to `/druid/coordinator/v1/lookups/config/all` will return all known lookup specs for all tiers. -## Get Lookup +### Get lookup + A `GET` to a particular lookup extractor factory is accomplished via `/druid/coordinator/v1/lookups/config/{tier}/{id}` Using the prior example, a `GET` to `/druid/coordinator/v1/lookups/config/realtime_customer2/site_id_customer2` should return @@ -293,48 +291,59 @@ Using the prior example, a `GET` to `/druid/coordinator/v1/lookups/config/realti } ``` -## Delete Lookup +### Delete lookup + A `DELETE` to `/druid/coordinator/v1/lookups/config/{tier}/{id}` will remove that lookup from the cluster. If it was last lookup in the tier, then tier is deleted as well. -## Delete Tier +### Delete tier + A `DELETE` to `/druid/coordinator/v1/lookups/config/{tier}` will remove that tier from the cluster. -## List tier names +### List tier names + A `GET` to `/druid/coordinator/v1/lookups/config` will return a list of known tier names in the dynamic configuration. To discover a list of tiers currently active in the cluster in addition to ones known in the dynamic configuration, the parameter `discover=true` can be added as per `/druid/coordinator/v1/lookups/config?discover=true`. -## List lookup names +### List lookup names + A `GET` to `/druid/coordinator/v1/lookups/config/{tier}` will return a list of known lookup names for that tier. -# Additional API related to status of configured lookups These end points can be used to get the propagation status of configured lookups to processes using lookups such as Historicals. -## List load status of all lookups +## API for lookup status + +### List load status of all lookups + `GET /druid/coordinator/v1/lookups/status` with optional query parameter `detailed`. -## List load status of lookups in a tier +### List load status of lookups in a tier + `GET /druid/coordinator/v1/lookups/status/{tier}` with optional query parameter `detailed`. -## List load status of single lookup +### List load status of single lookup + `GET /druid/coordinator/v1/lookups/status/{tier}/{lookup}` with optional query parameter `detailed`. -## List lookup state of all processes +### List lookup state of all processes + `GET /druid/coordinator/v1/lookups/nodeStatus` with optional query parameter `discover` to discover tiers from zookeeper or configured lookup tiers are listed. -## List lookup state of processes in a tier +### List lookup state of processes in a tier + `GET /druid/coordinator/v1/lookups/nodeStatus/{tier}` -## List lookup state of single process +### List lookup state of single process + `GET /druid/coordinator/v1/lookups/nodeStatus/{tier}/{host:port}` -# Internal API +## Internal API The Peon, Router, Broker, and Historical processes all have the ability to consume lookup configuration. There is an internal API these processes use to list/load/drop their lookups starting at `/druid/listen/v1/lookups`. These follow the same convention for return values as the cluster wide dynamic configuration. Following endpoints can be used for debugging purposes but not otherwise. -## Get Lookups +### Get lookups A `GET` to the process at `/druid/listen/v1/lookups` will return a json map of all the lookups currently active on the process. The return value will be a json map of the lookups to their extractor factories. @@ -353,7 +362,7 @@ The return value will be a json map of the lookups to their extractor factories. } ``` -## Get Lookup +### Get lookup A `GET` to the process at `/druid/listen/v1/lookups/some_lookup_name` will return the LookupExtractorFactory for the lookup identified by `some_lookup_name`. The return value will be the json representation of the factory. @@ -370,8 +379,9 @@ The return value will be the json representation of the factory. } ``` -# Configuration -See [Lookups Dynamic Configuration](../configuration/index.html#lookups-dynamic-configuration) for Coordinator configuration. +## Configuration + +See [Lookups Dynamic Configuration](../configuration/index.md#lookups-dynamic-configuration) for Coordinator configuration. To configure a Broker / Router / Historical / Peon to announce itself as part of a lookup tier, use the `druid.zk.paths.lookupTier` property. @@ -404,9 +414,9 @@ It is possible to save the configuration across restarts such that a process wil ## Introspect a Lookup -The Broker provides an API for lookup introspection if the lookup type implements a `LookupIntrospectHandler`. +The Broker provides an API for lookup introspection if the lookup type implements a `LookupIntrospectHandler`. -A `GET` request to `/druid/v1/lookups/introspect/{lookupId}` will return the map of complete values. +A `GET` request to `/druid/v1/lookups/introspect/{lookupId}` will return the map of complete values. ex: `GET /druid/v1/lookups/introspect/nato-phonetic` ``` @@ -451,10 +461,10 @@ ex: `GET /druid/v1/lookups/introspect/nato-phonetic/values` "Dash" ] ``` - + ## Druid version 0.10.0 to 0.10.1 upgrade/downgrade Overall druid cluster lookups configuration is persisted in metadata store and also individual lookup processes optionally persist a snapshot of loaded lookups on disk. If upgrading from druid version 0.10.0 to 0.10.1, then migration for all persisted metadata is handled automatically. If downgrading from 0.10.1 to 0.9.0 then lookups updates done via Coordinator while 0.10.1 was running, would be lost. - + diff --git a/docs/content/querying/multi-value-dimensions.md b/docs/querying/multi-value-dimensions.md similarity index 99% rename from docs/content/querying/multi-value-dimensions.md rename to docs/querying/multi-value-dimensions.md index 34f423302f05..f2df3e32764a 100644 --- a/docs/content/querying/multi-value-dimensions.md +++ b/docs/querying/multi-value-dimensions.md @@ -1,5 +1,5 @@ --- -layout: doc_page +id: multi-value-dimensions title: "Multi-value dimensions" --- @@ -22,7 +22,6 @@ title: "Multi-value dimensions" ~ under the License. --> -# Multi-value dimensions Apache Druid (incubating) supports "multi-value" string dimensions. These are generated when an input field contains an array of values instead of a single value (e.g. JSON arrays, or a TSV field containing one or more `listDelimiter` diff --git a/docs/content/querying/multitenancy.md b/docs/querying/multitenancy.md similarity index 88% rename from docs/content/querying/multitenancy.md rename to docs/querying/multitenancy.md index 2405d96e3a14..f7b0a3ca2ad8 100644 --- a/docs/content/querying/multitenancy.md +++ b/docs/querying/multitenancy.md @@ -1,6 +1,6 @@ --- -layout: doc_page -title: "Multitenancy Considerations" +id: multitenancy +title: "Multitenancy considerations" --- -# Multitenancy Considerations Apache Druid (incubating) is often used to power user-facing data applications, where multitenancy is an important requirement. This document outlines Druid's multitenant storage and querying features. @@ -71,16 +70,16 @@ You can use this in concert with single-dimension partitioning to repartition yo ## Customizing data distribution -Druid additionally supports multitenancy by providing configurable means of distributing data. Druid's Historical processes -can be configured into [tiers](../operations/rule-configuration.html), and [rules](../operations/rule-configuration.html) -can be set that determines which segments go into which tiers. One use case of this is that recent data tends to be accessed -more frequently than older data. Tiering enables more recent segments to be hosted on more powerful hardware for better performance. -A second copy of recent segments can be replicated on cheaper hardware (a different tier), and older segments can also be +Druid additionally supports multitenancy by providing configurable means of distributing data. Druid's Historical processes +can be configured into [tiers](../operations/rule-configuration.md), and [rules](../operations/rule-configuration.md) +can be set that determines which segments go into which tiers. One use case of this is that recent data tends to be accessed +more frequently than older data. Tiering enables more recent segments to be hosted on more powerful hardware for better performance. +A second copy of recent segments can be replicated on cheaper hardware (a different tier), and older segments can also be stored on this tier. ## Supporting high query concurrency -Druid's fundamental unit of computation is a [segment](../design/segments.html). Processes scan segments in parallel and a +Druid's fundamental unit of computation is a [segment](../design/segments.md). Processes scan segments in parallel and a given process can scan `druid.processing.numThreads` concurrently. To process more data in parallel and increase performance, more cores can be added to a cluster. Druid segments should be sized such that any computation over any given segment should complete in at most 500ms. @@ -91,9 +90,9 @@ running, we don't want any query to be starved out. Druid's internal processing This allows for a second set of segments from another query to be scanned. By keeping segment computation time very small, we ensure that resources are constantly being yielded, and segments pertaining to different queries are all being processed. -Druid queries can optionally set a `priority` flag in the [query context](../querying/query-context.html). Queries known to be -slow (download or reporting style queries) can be de-prioritized and more interactive queries can have higher priority. +Druid queries can optionally set a `priority` flag in the [query context](../querying/query-context.md). Queries known to be +slow (download or reporting style queries) can be de-prioritized and more interactive queries can have higher priority. -Broker processes can also be dedicated to a given tier. For example, one set of Broker processes can be dedicated to fast interactive queries, -and a second set of Broker processes can be dedicated to slower reporting queries. Druid also provides a [Router](../development/router.html) -process that can route queries to different Brokers based on various query parameters (datasource, interval, etc.). +Broker processes can also be dedicated to a given tier. For example, one set of Broker processes can be dedicated to fast interactive queries, +and a second set of Broker processes can be dedicated to slower reporting queries. Druid also provides a [Router](../design/router.md) +process that can route queries to different Brokers based on various query parameters (datasource, interval, etc.). diff --git a/docs/content/querying/post-aggregations.md b/docs/querying/post-aggregations.md similarity index 93% rename from docs/content/querying/post-aggregations.md rename to docs/querying/post-aggregations.md index 99ec7226fcbc..fa89e534801f 100644 --- a/docs/content/querying/post-aggregations.md +++ b/docs/querying/post-aggregations.md @@ -1,5 +1,5 @@ --- -layout: doc_page +id: post-aggregations title: "Post-Aggregations" --- @@ -22,7 +22,6 @@ title: "Post-Aggregations" ~ under the License. --> -# Post-Aggregations Post-aggregations are specifications of processing that should happen on aggregated values as they come out of Apache Druid (incubating). If you include a post aggregation as part of a query, make sure to include all aggregators the post-aggregator requires. @@ -60,9 +59,9 @@ postAggregation : { ### Field accessor post-aggregators -These post-aggregators return the value produced by the specified [aggregator](../querying/aggregations.html). +These post-aggregators return the value produced by the specified [aggregator](../querying/aggregations.md). -`fieldName` refers to the output name of the aggregator given in the [aggregations](../querying/aggregations.html) portion of the query. +`fieldName` refers to the output name of the aggregator given in the [aggregations](../querying/aggregations.md) portion of the query. For complex aggregators, like "cardinality" and "hyperUnique", the `type` of the post-aggregator determines what the post-aggregator will return. Use type "fieldAccess" to return the raw aggregation object, or use type "finalizingFieldAccess" to return a finalized value, such as an estimated cardinality. @@ -130,9 +129,7 @@ Example JavaScript aggregator: } ``` -
-JavaScript-based functionality is disabled by default. Please refer to the Druid JavaScript programming guide for guidelines about using Druid's JavaScript functionality, including instructions on how to enable it. -
+> JavaScript-based functionality is disabled by default. Please refer to the Druid [JavaScript programming guide](../development/javascript.md) for guidelines about using Druid's JavaScript functionality, including instructions on how to enable it. ### HyperUnique Cardinality post-aggregator diff --git a/docs/content/querying/query-context.md b/docs/querying/query-context.md similarity index 98% rename from docs/content/querying/query-context.md rename to docs/querying/query-context.md index b668cd732d7e..5237afde64e7 100644 --- a/docs/content/querying/query-context.md +++ b/docs/querying/query-context.md @@ -1,6 +1,6 @@ --- -layout: doc_page -title: "Query Context" +id: query-context +title: "Query context" --- -# Query Context The query context is used for various query configuration parameters. The following parameters apply to all queries. @@ -59,7 +58,7 @@ In addition, some query types offer context parameters specific to that query ty ### GroupBy queries -See [GroupBy query context](groupbyquery.html#query-context). +See [GroupBy query context](groupbyquery.md#advanced-configurations). ### Vectorizable queries diff --git a/docs/content/querying/querying.md b/docs/querying/querying.md similarity index 81% rename from docs/content/querying/querying.md rename to docs/querying/querying.md index b3c4fd242284..29b925dda975 100644 --- a/docs/content/querying/querying.md +++ b/docs/querying/querying.md @@ -1,6 +1,7 @@ --- -layout: doc_page +id: querying title: "Native queries" +sidebar_label: "Making native queries" --- -# Native queries -
-Apache Druid (incubating) supports two query languages: [Druid SQL](sql.html) and native queries, which SQL queries -are planned into, and which end users can also issue directly. This document describes the native query language. -
+> Apache Druid (incubating) supports two query languages: [Druid SQL](sql.md) and native queries. Druid SQL +> queries are planned into native queries. This document describes the native query language. Native queries in Druid are JSON objects and are typically issued to the Broker or Router processes. Queries can be posted like this: @@ -35,8 +33,8 @@ posted like this: ```bash curl -X POST ':/druid/v2/?pretty' -H 'Content-Type:application/json' -H 'Accept:application/json' -d @ ``` - -Druid's native query language is JSON over HTTP, although many members of the community have contributed different + +Druid's native query language is JSON over HTTP, although many members of the community have contributed different [client libraries](/libraries.html) in other languages to query Druid. The Content-Type/Accept Headers can also take 'application/x-jackson-smile'. @@ -47,42 +45,42 @@ curl -X POST ':/druid/v2/?pretty' -H 'Content-Type:applica Note: If Accept header is not provided, it defaults to value of 'Content-Type' header. -Druid's native query is relatively low level, mapping closely to how computations are performed internally. Druid queries -are designed to be lightweight and complete very quickly. This means that for more complex analysis, or to build +Druid's native query is relatively low level, mapping closely to how computations are performed internally. Druid queries +are designed to be lightweight and complete very quickly. This means that for more complex analysis, or to build more complex visualizations, multiple Druid queries may be required. Even though queries are typically made to Brokers or Routers, they can also be accepted by -[Historical](../design/historical.html) processes and by [Peons (task JVMs)](../design/peons.html)) that are running +[Historical](../design/historical.md) processes and by [Peons (task JVMs)](../design/peons.md)) that are running stream ingestion tasks. This may be valuable if you want to query results for specific segments that are served by specific processes. -## Available Queries +## Available queries Druid has numerous query types for various use cases. Queries are composed of various JSON properties and Druid has different types of queries for different use cases. The documentation for the various query types describe all the JSON properties that can be set. -### Aggregation Queries +### Aggregation queries -* [Timeseries](../querying/timeseriesquery.html) -* [TopN](../querying/topnquery.html) -* [GroupBy](../querying/groupbyquery.html) +* [Timeseries](../querying/timeseriesquery.md) +* [TopN](../querying/topnquery.md) +* [GroupBy](../querying/groupbyquery.md) -### Metadata Queries +### Metadata queries -* [Time Boundary](../querying/timeboundaryquery.html) -* [Segment Metadata](../querying/segmentmetadataquery.html) -* [Datasource Metadata](../querying/datasourcemetadataquery.html) +* [TimeBoundary](../querying/timeboundaryquery.md) +* [SegmentMetadata](../querying/segmentmetadataquery.md) +* [DatasourceMetadata](../querying/datasourcemetadataquery.md) -### Search Queries +### Search queries -* [Search](../querying/searchquery.html) +* [Search](../querying/searchquery.md) -## Which Query Should I Use? +## Which query should I use? Where possible, we recommend using [Timeseries]() and [TopN]() queries instead of [GroupBy](). GroupBy is the most flexible Druid query, but also has the poorest performance. Timeseries are significantly faster than groupBy queries for aggregations that don't require grouping over dimensions. For grouping and sorting over a single dimension, topN queries are much more optimized than groupBys. -## Query Cancellation +## Query cancellation Queries can be cancelled explicitly using their unique identifier. If the query identifier is set at the time of query, or is otherwise known, the following @@ -98,7 +96,7 @@ For example, if the query ID is `abc123`, the query can be cancelled as follows: curl -X DELETE "http://host:port/druid/v2/abc123" ``` -## Query Errors +## Query errors If a query fails, you will get an HTTP 500 response containing a JSON object with the following structure: diff --git a/docs/content/querying/scan-query.md b/docs/querying/scan-query.md similarity index 92% rename from docs/content/querying/scan-query.md rename to docs/querying/scan-query.md index bb07b6abf355..9e793bc4365b 100644 --- a/docs/content/querying/scan-query.md +++ b/docs/querying/scan-query.md @@ -1,6 +1,7 @@ --- -layout: doc_page -title: "Scan query" +id: scan-query +title: "Scan queries" +sidebar_label: "Scan" --- -# Scan query The Scan query returns raw Apache Druid (incubating) rows in streaming mode. The biggest difference between the Select query and the Scan -query is that the Scan query does not retain all the returned rows in memory before they are returned to the client. -The Select query _will_ retain the rows in memory, causing memory pressure if too many rows are returned. +query is that the Scan query does not retain all the returned rows in memory before they are returned to the client. +The Select query _will_ retain the rows in memory, causing memory pressure if too many rows are returned. The Scan query can return all the rows without issuing another pagination query. In addition to straightforward usage where a Scan query is issued to the Broker, the Scan query can also be issued -directly to Historical processes or streaming ingestion tasks. This can be useful if you want to retrieve large +directly to Historical processes or streaming ingestion tasks. This can be useful if you want to retrieve large amounts of data in parallel. An example Scan query object is shown below: @@ -54,16 +54,16 @@ The following are the main parameters for Scan queries: |property|description|required?| |--------|-----------|---------| |queryType|This String should always be "scan"; this is the first thing Druid looks at to figure out how to interpret the query|yes| -|dataSource|A String or Object defining the data source to query, very similar to a table in a relational database. See [DataSource](../querying/datasource.html) for more information.|yes| +|dataSource|A String or Object defining the data source to query, very similar to a table in a relational database. See [DataSource](../querying/datasource.md) for more information.|yes| |intervals|A JSON Object representing ISO-8601 Intervals. This defines the time ranges to run the query over.|yes| |resultFormat|How the results are represented: list, compactedList or valueVector. Currently only `list` and `compactedList` are supported. Default is `list`|no| -|filter|See [Filters](../querying/filters.html)|no| +|filter|See [Filters](../querying/filters.md)|no| |columns|A String array of dimensions and metrics to scan. If left empty, all dimensions and metrics are returned.|no| |batchSize|The maximum number of rows buffered before being returned to the client. Default is `20480`|no| |limit|How many rows to return. If not specified, all rows will be returned.|no| |order|The ordering of returned rows based on timestamp. "ascending", "descending", and "none" (default) are supported. Currently, "ascending" and "descending" are only supported for queries where the `__time` column is included in the `columns` field and the requirements outlined in the [time ordering](#time-ordering) section are met.|none| |legacy|Return results consistent with the legacy "scan-query" contrib extension. Defaults to the value set by `druid.query.scan.legacy`, which in turn defaults to false. See [Legacy mode](#legacy-mode) for details.|no| -|context|An additional JSON Object which can be used to specify certain flags (see the Query Context Properties section below).|no| +|context|An additional JSON Object which can be used to specify certain flags (see the `query context properties` section below).|no| ## Example results @@ -153,14 +153,14 @@ The format of the result when resultFormat equals `compactedList`: } ] ``` -## Time Ordering +## Time ordering The Scan query currently supports ordering based on timestamp for non-legacy queries. Note that using time ordering will yield results that do not indicate which segment rows are from (`segmentId` will show up as `null`). Furthermore, -time ordering is only supported where the result set limit is less than `druid.query.scan.maxRowsQueuedForOrdering` +time ordering is only supported where the result set limit is less than `druid.query.scan.maxRowsQueuedForOrdering` rows **or** all segments scanned have fewer than `druid.query.scan.maxSegmentPartitionsOrderedInMemory` partitions. Also, -time ordering is not supported for queries issued directly to historicals unless a list of segments is specified. The -reasoning behind these limitations is that the implementation of time ordering uses two strategies that can consume too +time ordering is not supported for queries issued directly to historicals unless a list of segments is specified. The +reasoning behind these limitations is that the implementation of time ordering uses two strategies that can consume too much heap memory if left unbounded. These strategies (listed below) are chosen on a per-Historical basis depending on query result set limit and the number of segments being scanned. @@ -174,15 +174,15 @@ from this by limiting the number of rows in the query result set when time order 2. N-Way Merge: For each segment, each partition is opened in parallel. Since each partition's rows are already time-ordered, an n-way merge can be performed on the results from each partition. This approach doesn't persist the entire result set in memory (like the Priority Queue) as it streams back batches as they are returned from the merge function. -However, attempting to query too many partition could also result in high memory usage due to the need to open +However, attempting to query too many partition could also result in high memory usage due to the need to open decompression and decoding buffers for each. The `druid.query.scan.maxSegmentPartitionsOrderedInMemory` limit protects from this by capping the number of partitions opened at any times when time ordering is used. -Both `druid.query.scan.maxRowsQueuedForOrdering` and `druid.query.scan.maxSegmentPartitionsOrderedInMemory` are +Both `druid.query.scan.maxRowsQueuedForOrdering` and `druid.query.scan.maxSegmentPartitionsOrderedInMemory` are configurable and can be tuned based on hardware specs and number of dimensions being queried. These config properties -can also be overridden using the `maxRowsQueuedForOrdering` and `maxSegmentPartitionsOrderedInMemory` properties in +can also be overridden using the `maxRowsQueuedForOrdering` and `maxSegmentPartitionsOrderedInMemory` properties in the query context (see the Query Context Properties section). - + ## Legacy mode The Scan query supports a legacy mode designed for protocol compatibility with the former scan-query contrib extension. @@ -209,7 +209,7 @@ Configuration properties: |druid.query.scan.legacy|Whether legacy mode should be turned on for Scan queries|true or false|false| -## Query Context Properties +## Query context properties |property|description|values|default| |--------|-----------|------|-------| @@ -221,6 +221,6 @@ Sample query context JSON object: ```json { "maxRowsQueuedForOrdering": 100001, - "maxSegmentPartitionsOrderedInMemory": 100 + "maxSegmentPartitionsOrderedInMemory": 100 } ``` diff --git a/docs/content/querying/searchquery.md b/docs/querying/searchquery.md similarity index 92% rename from docs/content/querying/searchquery.md rename to docs/querying/searchquery.md index 87a30518c71e..2077a0966198 100644 --- a/docs/content/querying/searchquery.md +++ b/docs/querying/searchquery.md @@ -1,6 +1,7 @@ --- -layout: doc_page -title: "Search Queries" +id: searchquery +title: "Search queries" +sidebar_label: "Search" --- -# Search Queries A search query returns dimension values that match the search specification. @@ -53,15 +53,15 @@ There are several main parts to a search query: |property|description|required?| |--------|-----------|---------| |queryType|This String should always be "search"; this is the first thing Apache Druid (incubating) looks at to figure out how to interpret the query.|yes| -|dataSource|A String or Object defining the data source to query, very similar to a table in a relational database. See [DataSource](../querying/datasource.html) for more information.|yes| -|granularity|Defines the granularity of the query. See [Granularities](../querying/granularities.html).|yes| -|filter|See [Filters](../querying/filters.html).|no| +|dataSource|A String or Object defining the data source to query, very similar to a table in a relational database. See [DataSource](../querying/datasource.md) for more information.|yes| +|granularity|Defines the granularity of the query. See [Granularities](../querying/granularities.md).|yes| +|filter|See [Filters](../querying/filters.md).|no| |limit| Defines the maximum number per Historical process (parsed as int) of search results to return. |no (default to 1000)| |intervals|A JSON Object representing ISO-8601 Intervals. This defines the time ranges to run the query over.|yes| |searchDimensions|The dimensions to run the search over. Excluding this means the search is run over all dimensions.|no| -|query|See [SearchQuerySpec](../querying/searchqueryspec.html).|yes| -|sort|An object specifying how the results of the search should be sorted.
Possible types are "lexicographic" (the default sort), "alphanumeric", "strlen", and "numeric".
See [Sorting Orders](./sorting-orders.html) for more details.|no| -|context|See [Context](../querying/query-context.html)|no| +|query|See [SearchQuerySpec](../querying/searchqueryspec.md).|yes| +|sort|An object specifying how the results of the search should be sorted.
Possible types are "lexicographic" (the default sort), "alphanumeric", "strlen", and "numeric".
See [Sorting Orders](./sorting-orders.md) for more details.|no| +|context|See [Context](../querying/query-context.md)|no| The format of the result is: diff --git a/docs/content/querying/searchqueryspec.md b/docs/querying/searchqueryspec.md similarity index 96% rename from docs/content/querying/searchqueryspec.md rename to docs/querying/searchqueryspec.md index c7ef1e2c775f..47a0b3d1658a 100644 --- a/docs/content/querying/searchqueryspec.md +++ b/docs/querying/searchqueryspec.md @@ -1,6 +1,6 @@ --- -layout: doc_page -title: "Refining Search Queries" +id: searchqueryspec +title: "Refining search queries" --- -# Refining Search Queries Search query specs define how a "match" is defined between a search value and a dimension value. The available search query specs are: @@ -44,7 +43,7 @@ FragmentSearchQuerySpec If any part of a dimension value contains all of the values specified in this search query spec, regardless of case by default, a "match" occurs. The grammar is: ```json -{ +{ "type" : "fragment", "case_sensitive" : false, "values" : ["fragment1", "fragment2"] diff --git a/docs/content/querying/segmentmetadataquery.md b/docs/querying/segmentmetadataquery.md similarity index 95% rename from docs/content/querying/segmentmetadataquery.md rename to docs/querying/segmentmetadataquery.md index d590e5213bf3..f842424fb36f 100644 --- a/docs/content/querying/segmentmetadataquery.md +++ b/docs/querying/segmentmetadataquery.md @@ -1,6 +1,7 @@ --- -layout: doc_page -title: "Segment Metadata Queries" +id: segmentmetadataquery +title: "SegmentMetadata queries" +sidebar_label: "SegmentMetadata" --- -# Segment Metadata Queries Segment metadata queries return per-segment information about: @@ -49,12 +49,12 @@ There are several main parts to a segment metadata query: |property|description|required?| |--------|-----------|---------| |queryType|This String should always be "segmentMetadata"; this is the first thing Apache Druid (incubating) looks at to figure out how to interpret the query|yes| -|dataSource|A String or Object defining the data source to query, very similar to a table in a relational database. See [DataSource](../querying/datasource.html) for more information.|yes| +|dataSource|A String or Object defining the data source to query, very similar to a table in a relational database. See [DataSource](../querying/datasource.md) for more information.|yes| |intervals|A JSON Object representing ISO-8601 Intervals. This defines the time ranges to run the query over.|no| |toInclude|A JSON Object representing what columns should be included in the result. Defaults to "all".|no| |merge|Merge all individual segment metadata results into a single result|no| -|context|See [Context](../querying/query-context.html)|no| -|analysisTypes|A list of Strings specifying what column properties (e.g. cardinality, size) should be calculated and returned in the result. Defaults to ["cardinality", "interval", "minmax"], but can be overridden with using the [segment metadata query config](../configuration/index.html#segment-metadata-query-config). See section [analysisTypes](#analysistypes) for more details.|no| +|context|See [Context](../querying/query-context.md)|no| +|analysisTypes|A list of Strings specifying what column properties (e.g. cardinality, size) should be calculated and returned in the result. Defaults to ["cardinality", "interval", "minmax"], but can be overridden with using the [segment metadata query config](../configuration/index.md#segmentmetadata-query-config). See section [analysisTypes](#analysistypes) for more details.|no| |lenientAggregatorMerge|If true, and if the "aggregators" analysisType is enabled, aggregators will be merged leniently. See below for details.|no| The format of the result is: diff --git a/docs/content/querying/select-query.md b/docs/querying/select-query.md similarity index 90% rename from docs/content/querying/select-query.md rename to docs/querying/select-query.md index 4c7ba206ba8f..83cd0fc20f23 100644 --- a/docs/content/querying/select-query.md +++ b/docs/querying/select-query.md @@ -1,6 +1,7 @@ --- -layout: doc_page -title: "Select Queries" +id: select-query +title: "Select queries" +sidebar_label: "Select" --- -# Select Queries -
-We encourage you to use the [Scan query](../querying/scan-query.html) type rather than Select whenever possible. -In situations involving larger numbers of segments, the Select query can have very high memory and performance overhead. -The Scan query does not have this issue. -The major difference between the two is that the Scan query does not support pagination. -However, the Scan query type is able to return a virtually unlimited number of results even without pagination, making it unnecessary in many cases. -
+> We encourage you to use the [Scan query](../querying/scan-query.md) type rather than Select whenever possible. +> In situations involving larger numbers of segments, the Select query can have very high memory and performance overhead. +> The Scan query does not have this issue. +> The major difference between the two is that the Scan query does not support pagination. +> However, the Scan query type is able to return a virtually unlimited number of results even without pagination, making it unnecessary in many cases. Select queries return raw Druid rows and support pagination. @@ -54,13 +52,13 @@ There are several main parts to a select query: |property|description|required?| |--------|-----------|---------| |queryType|This String should always be "select"; this is the first thing Druid looks at to figure out how to interpret the query|yes| -|dataSource|A String or Object defining the data source to query, very similar to a table in a relational database. See [DataSource](../querying/datasource.html) for more information.|yes| +|dataSource|A String or Object defining the data source to query, very similar to a table in a relational database. See [DataSource](../querying/datasource.md) for more information.|yes| |intervals|A JSON Object representing ISO-8601 Intervals. This defines the time ranges to run the query over.|yes| |descending|Whether to make descending ordered result. Default is `false`(ascending). When this is `true`, page identifier and offsets will be negative value.|no| -|filter|See [Filters](../querying/filters.html)|no| -|dimensions|A JSON list of dimensions to select; or see [DimensionSpec](../querying/dimensionspecs.html) for ways to extract dimensions. If left empty, all dimensions are returned.|no| +|filter|See [Filters](../querying/filters.md)|no| +|dimensions|A JSON list of dimensions to select; or see [DimensionSpec](../querying/dimensionspecs.md) for ways to extract dimensions. If left empty, all dimensions are returned.|no| |metrics|A String array of metrics to select. If left empty, all metrics are returned.|no| -|granularity|Defines the granularity of the query. See [Granularities](../querying/granularities.html). Default is `Granularity.ALL`.|no| +|granularity|Defines the granularity of the query. See [Granularities](../querying/granularities.md). Default is `Granularity.ALL`.|no| |pagingSpec|A JSON object indicating offsets into different scanned segments. Query results will return a `pagingIdentifiers` value that can be reused in the next query for pagination.|yes| |context|An additional JSON Object which can be used to specify certain flags.|no| @@ -177,13 +175,13 @@ The `threshold` determines how many hits are returned, with each hit indexed by The results above include: -```json +```json "pagingIdentifiers" : { "wikipedia_2012-12-29T00:00:00.000Z_2013-01-10T08:00:00.000Z_2013-01-10T08:13:47.830Z_v9" : 4 }, ``` -### Result Pagination +### Result pagination The PagingSpec allows the user to specify that the results of a select query should be returned as a paginated set. @@ -201,7 +199,7 @@ To retrieve the next part of the result set, the user should issue the same sele When an empty result set is received, all rows have been returned. -#### fromNext Backwards Compatibility +#### fromNext backwards compatibility In older versions of Druid, when using paginated select queries, it was necessary for the user to manually increment the paging offset by 1 in each `pagingIdentifiers` before submitting the next query to retrieve the next set of results. This offset increment happens automatically in the current version of Druid by default, the user does not need to modify the `pagingIdentifiers` offset to retrieve the next result set. diff --git a/docs/content/querying/sorting-orders.md b/docs/querying/sorting-orders.md similarity index 90% rename from docs/content/querying/sorting-orders.md rename to docs/querying/sorting-orders.md index 5c83ac467dcd..ee8960bdbb8b 100644 --- a/docs/content/querying/sorting-orders.md +++ b/docs/querying/sorting-orders.md @@ -1,5 +1,5 @@ --- -layout: doc_page +id: sorting-orders title: "Sorting Orders" --- @@ -22,9 +22,8 @@ title: "Sorting Orders" ~ under the License. --> -# Sorting Orders -These sorting orders are used by the [TopNMetricSpec](./topnmetricspec.html), [SearchQuery](./searchquery.html), GroupByQuery's [LimitSpec](./limitspec.html), and [BoundFilter](./filters.html#bound-filter). +These sorting orders are used by the [TopNMetricSpec](./topnmetricspec.md), [SearchQuery](./searchquery.md), GroupByQuery's [LimitSpec](./limitspec.md), and [BoundFilter](./filters.html#bound-filter). ## Lexicographic Sorts values by converting Strings to their UTF-8 byte array representations and comparing lexicgraphically, byte-by-byte. @@ -34,8 +33,8 @@ Suitable for strings with both numeric and non-numeric content, e.g.: "file12 so See https://github.com/amjjd/java-alphanum for more details on how this ordering sorts values. -This ordering is not suitable for numbers with decimal points or negative numbers. -* For example, "1.3" precedes "1.15" in this ordering because "15" has more significant digits than "3". +This ordering is not suitable for numbers with decimal points or negative numbers. +* For example, "1.3" precedes "1.15" in this ordering because "15" has more significant digits than "3". * Negative numbers are sorted after positive numbers (because numeric characters precede the "-" in the negative numbers). ## Numeric diff --git a/docs/content/querying/sql.md b/docs/querying/sql.md similarity index 94% rename from docs/content/querying/sql.md rename to docs/querying/sql.md index 21d6edf4f5e8..7a59390cef0c 100644 --- a/docs/content/querying/sql.md +++ b/docs/querying/sql.md @@ -1,6 +1,7 @@ --- -layout: doc_page +id: sql title: "SQL" +sidebar_label: "Druid SQL" --- -# SQL -
-Apache Druid (incubating) supports two query languages: Druid SQL and [native queries](querying.html), which SQL queries -are planned into, and which end users can also issue directly. This document describes the SQL language. -
+> Apache Druid (incubating) supports two query languages: Druid SQL and [native queries](querying.md), which +> SQL queries are planned into, and which end users can also issue directly. This document describes the SQL language. Druid SQL is a built-in SQL layer and an alternative to Druid's native JSON-based query language, and is powered by a parser and planner based on [Apache Calcite](https://calcite.apache.org/). Druid SQL translates SQL into native Druid @@ -42,61 +40,6 @@ queries on the query Broker (the first process you query), which are then passed queries. Other than the (slight) overhead of translating SQL on the Broker, there isn't an additional performance penalty versus native queries. -## Data types and casts - -Druid natively supports five basic column types: "long" (64 bit signed int), "float" (32 bit float), "double" (64 bit -float) "string" (UTF-8 encoded strings and string arrays), and "complex" (catch-all for more exotic data types like -hyperUnique and approxHistogram columns). - -Timestamps (including the `__time` column) are treated by Druid as longs, with the value being the number of -milliseconds since 1970-01-01 00:00:00 UTC, not counting leap seconds. Therefore, timestamps in Druid do not carry any -timezone information, but only carry information about the exact moment in time they represent. See the -[Time functions](#time-functions) section for more information about timestamp handling. - -Druid generally treats NULLs and empty strings interchangeably, rather than according to the SQL standard. As such, -Druid SQL only has partial support for NULLs. For example, the expressions `col IS NULL` and `col = ''` are equivalent, -and both will evaluate to true if `col` contains an empty string. Similarly, the expression `COALESCE(col1, col2)` will -return `col2` if `col1` is an empty string. While the `COUNT(*)` aggregator counts all rows, the `COUNT(expr)` -aggregator will count the number of rows where expr is neither null nor the empty string. String columns in Druid are -NULLable. Numeric columns are NOT NULL; if you query a numeric column that is not present in all segments of your Druid -datasource, then it will be treated as zero for rows from those segments. - -For mathematical operations, Druid SQL will use integer math if all operands involved in an expression are integers. -Otherwise, Druid will switch to floating point math. You can force this to happen by casting one of your operands -to FLOAT. At runtime, Druid may widen 32-bit floats to 64-bit for certain operators, like SUM aggregators. - -Druid [multi-value string dimensions](multi-value-dimensions.html) will appear in the table schema as `VARCHAR` typed, -and may be interacted with in expressions as such. Additionally, they can be treated as `ARRAY` 'like', via a handful of -special multi-value operators. Expressions against multi-value string dimensions will apply the expression to all values -of the row, however the caveat is that aggregations on these multi-value string columns will observe the native Druid -multi-value aggregation behavior, which is equivalent to the `UNNEST` function available in many dialects. -Refer to the documentation on [multi-value string dimensions](multi-value-dimensions.html) and -[Druid expressions documentation](../misc/math-expr.html) for additional details. - -The following table describes how SQL types map onto Druid types during query runtime. Casts between two SQL types -that have the same Druid runtime type will have no effect, other than exceptions noted in the table. Casts between two -SQL types that have different Druid runtime types will generate a runtime cast in Druid. If a value cannot be properly -cast to another value, as in `CAST('foo' AS BIGINT)`, the runtime will substitute a default value. NULL values cast -to non-nullable types will also be substituted with a default value (for example, nulls cast to numbers will be -converted to zeroes). - -|SQL type|Druid runtime type|Default value|Notes| -|--------|------------------|-------------|-----| -|CHAR|STRING|`''`|| -|VARCHAR|STRING|`''`|Druid STRING columns are reported as VARCHAR| -|DECIMAL|DOUBLE|`0.0`|DECIMAL uses floating point, not fixed point math| -|FLOAT|FLOAT|`0.0`|Druid FLOAT columns are reported as FLOAT| -|REAL|DOUBLE|`0.0`|| -|DOUBLE|DOUBLE|`0.0`|Druid DOUBLE columns are reported as DOUBLE| -|BOOLEAN|LONG|`false`|| -|TINYINT|LONG|`0`|| -|SMALLINT|LONG|`0`|| -|INTEGER|LONG|`0`|| -|BIGINT|LONG|`0`|Druid LONG columns (except `__time`) are reported as BIGINT| -|TIMESTAMP|LONG|`0`, meaning 1970-01-01 00:00:00 UTC|Druid's `__time` column is reported as TIMESTAMP. Casts between string and timestamp types assume standard SQL formatting, e.g. `2000-01-02 03:04:05`, _not_ ISO8601 formatting. For handling other formats, use one of the [time functions](#time-functions)| -|DATE|LONG|`0`, meaning 1970-01-01|Casting TIMESTAMP to DATE rounds down the timestamp to the nearest day. Casts between string and date types assume standard SQL formatting, e.g. `2000-01-02`. For handling other formats, use one of the [time functions](#time-functions)| -|OTHER|COMPLEX|none|May represent various Druid column types such as hyperUnique, approxHistogram, etc| - ## Query syntax Each Druid datasource appears as a table in the "druid" schema. This is also the default schema, so Druid datasources @@ -127,7 +70,7 @@ FROM table [ UNION ALL ] ``` -The FROM clause refers to either a Druid datasource, like `druid.foo`, an [INFORMATION_SCHEMA table](#retrieving-metadata), a +The FROM clause refers to either a Druid datasource, like `druid.foo`, an [INFORMATION_SCHEMA table](#metadata-tables), a subquery, or a common-table-expression provided in the WITH clause. If the FROM clause references a subquery or a common-table-expression, and both levels of queries are aggregations and they cannot be combined into a single level of aggregation, the overall query will be executed as a [nested GroupBy](groupbyquery.html#nested-groupbys). @@ -161,6 +104,63 @@ query will run separately, back to back (not in parallel). Druid does not curren Add "EXPLAIN PLAN FOR" to the beginning of any query to see how it would be run as a native Druid query. In this case, the query will not actually be executed. +## Data types and casts + +Druid natively supports five basic column types: "long" (64 bit signed int), "float" (32 bit float), "double" (64 bit +float) "string" (UTF-8 encoded strings and string arrays), and "complex" (catch-all for more exotic data types like +hyperUnique and approxHistogram columns). + +Timestamps (including the `__time` column) are treated by Druid as longs, with the value being the number of +milliseconds since 1970-01-01 00:00:00 UTC, not counting leap seconds. Therefore, timestamps in Druid do not carry any +timezone information, but only carry information about the exact moment in time they represent. See the +[Time functions](#time-functions) section for more information about timestamp handling. + +Druid generally treats NULLs and empty strings interchangeably, rather than according to the SQL standard. As such, +Druid SQL only has partial support for NULLs. For example, the expressions `col IS NULL` and `col = ''` are equivalent, +and both will evaluate to true if `col` contains an empty string. Similarly, the expression `COALESCE(col1, col2)` will +return `col2` if `col1` is an empty string. While the `COUNT(*)` aggregator counts all rows, the `COUNT(expr)` +aggregator will count the number of rows where expr is neither null nor the empty string. String columns in Druid are +NULLable. Numeric columns are NOT NULL; if you query a numeric column that is not present in all segments of your Druid +datasource, then it will be treated as zero for rows from those segments. + +For mathematical operations, Druid SQL will use integer math if all operands involved in an expression are integers. +Otherwise, Druid will switch to floating point math. You can force this to happen by casting one of your operands +to FLOAT. At runtime, Druid may widen 32-bit floats to 64-bit for certain operators, like SUM aggregators. + +Druid [multi-value string dimensions](multi-value-dimensions.html) will appear in the table schema as `VARCHAR` typed, +and may be interacted with in expressions as such. Additionally, they can be treated as `ARRAY` 'like', via a handful of +special multi-value operators. Expressions against multi-value string dimensions will apply the expression to all values +of the row, however the caveat is that aggregations on these multi-value string columns will observe the native Druid +multi-value aggregation behavior, which is equivalent to the `UNNEST` function available in many dialects. +Refer to the documentation on [multi-value string dimensions](multi-value-dimensions.html) and +[Druid expressions documentation](../misc/math-expr.html) for additional details. + +The following table describes how SQL types map onto Druid types during query runtime. Casts between two SQL types +that have the same Druid runtime type will have no effect, other than exceptions noted in the table. Casts between two +SQL types that have different Druid runtime types will generate a runtime cast in Druid. If a value cannot be properly +cast to another value, as in `CAST('foo' AS BIGINT)`, the runtime will substitute a default value. NULL values cast +to non-nullable types will also be substituted with a default value (for example, nulls cast to numbers will be +converted to zeroes). + +|SQL type|Druid runtime type|Default value|Notes| +|--------|------------------|-------------|-----| +|CHAR|STRING|`''`|| +|VARCHAR|STRING|`''`|Druid STRING columns are reported as VARCHAR| +|DECIMAL|DOUBLE|`0.0`|DECIMAL uses floating point, not fixed point math| +|FLOAT|FLOAT|`0.0`|Druid FLOAT columns are reported as FLOAT| +|REAL|DOUBLE|`0.0`|| +|DOUBLE|DOUBLE|`0.0`|Druid DOUBLE columns are reported as DOUBLE| +|BOOLEAN|LONG|`false`|| +|TINYINT|LONG|`0`|| +|SMALLINT|LONG|`0`|| +|INTEGER|LONG|`0`|| +|BIGINT|LONG|`0`|Druid LONG columns (except `__time`) are reported as BIGINT| +|TIMESTAMP|LONG|`0`, meaning 1970-01-01 00:00:00 UTC|Druid's `__time` column is reported as TIMESTAMP. Casts between string and timestamp types assume standard SQL formatting, e.g. `2000-01-02 03:04:05`, _not_ ISO8601 formatting. For handling other formats, use one of the [time functions](#time-functions)| +|DATE|LONG|`0`, meaning 1970-01-01|Casting TIMESTAMP to DATE rounds down the timestamp to the nearest day. Casts between string and date types assume standard SQL formatting, e.g. `2000-01-02`. For handling other formats, use one of the [time functions](#time-functions)| +|OTHER|COMPLEX|none|May represent various Druid column types such as hyperUnique, approxHistogram, etc| + +## Built-in functions + ### Aggregation functions Aggregation functions can appear in the SELECT clause of any query. Any aggregator can be filtered using syntax like @@ -177,7 +177,7 @@ Only the COUNT aggregation can accept DISTINCT. |`MIN(expr)`|Takes the minimum of numbers.| |`MAX(expr)`|Takes the maximum of numbers.| |`AVG(expr)`|Averages numbers.| -|`APPROX_COUNT_DISTINCT(expr)`|Counts distinct values of expr, which can be a regular column or a hyperUnique column. This is always approximate, regardless of the value of "useApproximateCountDistinct". This uses Druid's builtin "cardinality" or "hyperUnique" aggregators. See also `COUNT(DISTINCT expr)`.| +|`APPROX_COUNT_DISTINCT(expr)`|Counts distinct values of expr, which can be a regular column or a hyperUnique column. This is always approximate, regardless of the value of "useApproximateCountDistinct". This uses Druid's built-in "cardinality" or "hyperUnique" aggregators. See also `COUNT(DISTINCT expr)`.| |`APPROX_COUNT_DISTINCT_DS_HLL(expr, [lgK, tgtHllType])`|Counts distinct values of expr, which can be a regular column or an [HLL sketch](../development/extensions-core/datasketches-hll.html) column. The `lgK` and `tgtHllType` parameters are described in the HLL sketch documentation. This is always approximate, regardless of the value of "useApproximateCountDistinct". See also `COUNT(DISTINCT expr)`. The [DataSketches extension](../development/extensions-core/datasketches-extension.html) must be loaded to use this function.| |`APPROX_COUNT_DISTINCT_DS_THETA(expr, [size])`|Counts distinct values of expr, which can be a regular column or a [Theta sketch](../development/extensions-core/datasketches-theta.html) column. The `size` parameter is described in the Theta sketch documentation. This is always approximate, regardless of the value of "useApproximateCountDistinct". See also `COUNT(DISTINCT expr)`. The [DataSketches extension](../development/extensions-core/datasketches-extension.html) must be loaded to use this function.| |`APPROX_QUANTILE(expr, probability, [resolution])`|Computes approximate quantiles on numeric or [approxHistogram](../development/extensions-core/approximate-histograms.html#approximate-histogram-aggregator) exprs. The "probability" should be between 0 and 1 (exclusive). The "resolution" is the number of centroids to use for the computation. Higher resolutions will give more precise results but also have higher overhead. If not provided, the default resolution is 50. The [approximate histogram extension](../development/extensions-core/approximate-histograms.html) must be loaded to use this function.| @@ -193,7 +193,6 @@ Only the COUNT aggregation can accept DISTINCT. |`STDDEV_SAMP(expr)`|Computes standard deviation sample of `expr`. See [stats extension](../development/extensions-core/stats.html) documentation for additional details.| |`STDDEV(expr)`|Computes standard deviation sample of `expr`. See [stats extension](../development/extensions-core/stats.html) documentation for additional details.| - For advice on choosing approximate aggregation functions, check out our [approximate aggregations documentation](aggregations.html#approx). ### Numeric functions @@ -336,13 +335,14 @@ argument should be a string formatted as an IPv4 address subnet in CIDR notation |`x IS NOT FALSE`|True if x is not false.| |`x IN (values)`|True if x is one of the listed values.| |`x NOT IN (values)`|True if x is not one of the listed values.| -|`x IN (subquery)`|True if x is returned by the subquery. See [Syntax and execution](#syntax-and-execution) above for details about how Druid SQL handles `IN (subquery)`.| -|`x NOT IN (subquery)`|True if x is not returned by the subquery. See [Syntax and execution](#syntax-and-execution) for details about how Druid SQL handles `IN (subquery)`.| +|`x IN (subquery)`|True if x is returned by the subquery. See [Query execution](#query-execution) above for details about how Druid SQL handles `IN (subquery)`.| +|`x NOT IN (subquery)`|True if x is not returned by the subquery. See [Query execution](#query-execution) for details about how Druid SQL handles `IN (subquery)`.| |`x AND y`|Boolean AND.| |`x OR y`|Boolean OR.| |`NOT x`|Boolean NOT.| ### Multi-value string functions + All 'array' references in the multi-value string function documentation can refer to multi-value string columns or `ARRAY` literals. @@ -386,11 +386,11 @@ Druid does not support all SQL features, including: Additionally, some Druid features are not supported by the SQL language. Some unsupported Druid features include: +- [Multi-value dimensions](multi-value-dimensions.html). - [Set operations on DataSketches aggregators](../development/extensions-core/datasketches-extension.html). - [Spatial filters](../development/geo.html). - [Query cancellation](querying.html#query-cancellation). - ## Query execution Queries without aggregations will use Druid's [Scan](scan-query.html) native query type. @@ -449,6 +449,8 @@ either through query context or through Broker configuration. - The APPROX_COUNT_DISTINCT and APPROX_QUANTILE aggregation functions always use approximate algorithms, regardless of configuration. + + ## Client APIs ### JSON over HTTP @@ -478,7 +480,7 @@ like: } ``` -Metadata is available over the HTTP API by querying [system tables](#retrieving-metadata). +Metadata is available over the HTTP API by querying [system tables](#metadata-tables). #### Responses @@ -555,7 +557,7 @@ try (Connection connection = DriverManager.getConnection(url, connectionProperti ``` Table metadata is available over JDBC using `connection.getMetaData()` or by querying the -["INFORMATION_SCHEMA" tables](#retrieving-metadata). Parameterized queries (using `?` or other placeholders) don't work properly, +["INFORMATION_SCHEMA" tables](#metadata-tables). Parameterized queries (using `?` or other placeholders) don't work properly, so avoid those. #### Connection stickiness @@ -564,7 +566,7 @@ Druid's JDBC server does not share connection state between Brokers. This means multiple Druid Brokers, you should either connect to a specific Broker, or use a load balancer with sticky sessions enabled. The Druid Router process provides connection stickiness when balancing JDBC requests, and can be used to achieve the necessary stickiness even with a normal non-sticky load balancer. Please see the -[Router](../development/router.html) documentation for more details. +[Router](../design/router.md) documentation for more details. Note that the non-JDBC [JSON over HTTP](#json-over-http) API is stateless and does not require stickiness. @@ -586,7 +588,9 @@ Connection context can be specified as JDBC connection properties or as a "conte |`useApproximateCountDistinct`|Whether to use an approximate cardinality algorithm for `COUNT(DISTINCT foo)`.|druid.sql.planner.useApproximateCountDistinct on the Broker (default: true)| |`useApproximateTopN`|Whether to use approximate [TopN queries](topnquery.html) when a SQL query could be expressed as such. If false, exact [GroupBy queries](groupbyquery.html) will be used instead.|druid.sql.planner.useApproximateTopN on the Broker (default: true)| -### Retrieving metadata + + +## Metadata tables Druid Brokers infer table and column metadata for each datasource from segments loaded in the cluster, and use this to plan SQL queries. This metadata is cached on Broker startup and also updated periodically in the background through @@ -596,7 +600,7 @@ segments entering and exiting the cluster, and can also be throttled through con Druid exposes system information through special system tables. There are two such schemas available: Information Schema and Sys Schema. Information schema provides details about table and column types. The "sys" schema provides information about Druid internals like segments/tasks/servers. -## INFORMATION SCHEMA +### INFORMATION SCHEMA You can access table and column metadata through JDBC using `connection.getMetaData()`, or through the INFORMATION_SCHEMA tables described below. For example, to retrieve metadata for the Druid @@ -606,7 +610,7 @@ datasource "foo", use the query: SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = 'druid' AND TABLE_NAME = 'foo' ``` -### SCHEMATA table +#### SCHEMATA table |Column|Notes| |------|-----| @@ -618,7 +622,7 @@ SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = 'druid' AND TABLE_ |DEFAULT_CHARACTER_SET_NAME|Unused| |SQL_PATH|Unused| -### TABLES table +#### TABLES table |Column|Notes| |------|-----| @@ -627,7 +631,7 @@ SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = 'druid' AND TABLE_ |TABLE_NAME|| |TABLE_TYPE|"TABLE" or "SYSTEM_TABLE"| -### COLUMNS table +#### COLUMNS table |Column|Notes| |------|-----| @@ -649,15 +653,13 @@ SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = 'druid' AND TABLE_ |COLLATION_NAME|| |JDBC_TYPE|Type code from java.sql.Types (Druid extension)| -## SYSTEM SCHEMA +### SYSTEM SCHEMA The "sys" schema provides visibility into Druid segments, servers and tasks. -### SEGMENTS table -Segments table provides details on all Druid segments, whether they are published yet or not. +#### SEGMENTS table -#### CAVEAT -Note that a segment can be served by more than one stream ingestion tasks or Historical processes, in that case it would have multiple replicas. These replicas are weakly consistent with each other when served by multiple ingestion tasks, until a segment is eventually served by a Historical, at that point the segment is immutable. Broker prefers to query a segment from Historical over an ingestion task. But if a segment has multiple realtime replicas, for eg. kafka index tasks, and one task is slower than other, then the sys.segments query results can vary for the duration of the tasks because only one of the ingestion tasks is queried by the Broker and it is not guaranteed that the same task gets picked every time. The `num_rows` column of segments table can have inconsistent values during this period. There is an open [issue](https://github.com/apache/incubator-druid/issues/5915) about this inconsistency with stream ingestion tasks. +Segments table provides details on all Druid segments, whether they are published yet or not. |Column|Type|Notes| |------|-----|-----| @@ -670,10 +672,10 @@ Note that a segment can be served by more than one stream ingestion tasks or His |partition_num|LONG|Partition number (an integer, unique within a datasource+interval+version; may not necessarily be contiguous)| |num_replicas|LONG|Number of replicas of this segment currently being served| |num_rows|LONG|Number of rows in current segment, this value could be null if unknown to Broker at query time| -|is_published|LONG|Boolean is represented as long type where 1 = true, 0 = false. 1 represents this segment has been published to the metadata store with `used=1`| -|is_available|LONG|Boolean is represented as long type where 1 = true, 0 = false. 1 if this segment is currently being served by any process(Historical or realtime)| -|is_realtime|LONG|Boolean is represented as long type where 1 = true, 0 = false. 1 if this segment is _only_ served by realtime tasks, and 0 if any historical process is serving this segment| -|is_overshadowed|LONG|Boolean is represented as long type where 1 = true, 0 = false. 1 if this segment is published and is _fully_ overshadowed by some other published segments. Currently, is_overshadowed is always false for unpublished segments, although this may change in the future. You can filter for segments that "should be published" by filtering for `is_published = 1 AND is_overshadowed = 0`. Segments can briefly be both published and overshadowed if they were recently replaced, but have not been unpublished yet. +|is_published|LONG|Boolean is represented as long type where 1 = true, 0 = false. 1 represents this segment has been published to the metadata store with `used=1`. See the [Architecture page](../design/architecture.md#segment-lifecycle) for more details.| +|is_available|LONG|Boolean is represented as long type where 1 = true, 0 = false. 1 if this segment is currently being served by any process(Historical or realtime). See the [Architecture page](../design/architecture.md#segment-lifecycle) for more details.| +|is_realtime|LONG|Boolean is represented as long type where 1 = true, 0 = false. 1 if this segment is _only_ served by realtime tasks, and 0 if any historical process is serving this segment.| +|is_overshadowed|LONG|Boolean is represented as long type where 1 = true, 0 = false. 1 if this segment is published and is _fully_ overshadowed by some other published segments. Currently, is_overshadowed is always false for unpublished segments, although this may change in the future. You can filter for segments that "should be published" by filtering for `is_published = 1 AND is_overshadowed = 0`. Segments can briefly be both published and overshadowed if they were recently replaced, but have not been unpublished yet. See the [Architecture page](../design/architecture.md#segment-lifecycle) for more details.| |payload|STRING|JSON-serialized data segment payload| For example to retrieve all segments for datasource "wikipedia", use the query: @@ -696,7 +698,10 @@ GROUP BY 1 ORDER BY 2 DESC ``` -### SERVERS table +*Caveat:* Note that a segment can be served by more than one stream ingestion tasks or Historical processes, in that case it would have multiple replicas. These replicas are weakly consistent with each other when served by multiple ingestion tasks, until a segment is eventually served by a Historical, at that point the segment is immutable. Broker prefers to query a segment from Historical over an ingestion task. But if a segment has multiple realtime replicas, for eg. kafka index tasks, and one task is slower than other, then the sys.segments query results can vary for the duration of the tasks because only one of the ingestion tasks is queried by the Broker and it is not gauranteed that the same task gets picked everytime. The `num_rows` column of segments table can have inconsistent values during this period. There is an open [issue](https://github.com/apache/incubator-druid/issues/5915) about this inconsistency with stream ingestion tasks. + +#### SERVERS table + Servers table lists all discovered servers in the cluster. |Column|Type|Notes| @@ -706,9 +711,9 @@ Servers table lists all discovered servers in the cluster. |plaintext_port|LONG|Unsecured port of the server, or -1 if plaintext traffic is disabled| |tls_port|LONG|TLS port of the server, or -1 if TLS is disabled| |server_type|STRING|Type of Druid service. Possible values include: COORDINATOR, OVERLORD, BROKER, ROUTER, HISTORICAL, MIDDLE_MANAGER or PEON.| -|tier|STRING|Distribution tier see [druid.server.tier](#../configuration/index.html#Historical-General-Configuration). Only valid for HISTORICAL type, for other types it's null| +|tier|STRING|Distribution tier see [druid.server.tier](../configuration/index.html#historical-general-configuration). Only valid for HISTORICAL type, for other types it's null| |current_size|LONG|Current size of segments in bytes on this server. Only valid for HISTORICAL type, for other types it's 0| -|max_size|LONG|Max size in bytes this server recommends to assign to segments see [druid.server.maxSize](#../configuration/index.html#Historical-General-Configuration). Only valid for HISTORICAL type, for other types it's 0| +|max_size|LONG|Max size in bytes this server recommends to assign to segments see [druid.server.maxSize](../configuration/index.html#historical-general-configuration). Only valid for HISTORICAL type, for other types it's 0| To retrieve information about all servers, use the query: @@ -716,14 +721,14 @@ To retrieve information about all servers, use the query: SELECT * FROM sys.servers; ``` -### SERVER_SEGMENTS table +#### SERVER_SEGMENTS table SERVER_SEGMENTS is used to join servers with segments table |Column|Type|Notes| |------|-----|-----| -|server|STRING|Server name in format host:port (Primary key of [servers table](#SERVERS-table))| -|segment_id|STRING|Segment identifier (Primary key of [segments table](#SEGMENTS-table))| +|server|STRING|Server name in format host:port (Primary key of [servers table](#servers-table))| +|segment_id|STRING|Segment identifier (Primary key of [segments table](#segments-table))| JOIN between "servers" and "segments" can be used to query the number of segments for a specific datasource, grouped by server, example query: @@ -738,15 +743,15 @@ WHERE segments.datasource = 'wikipedia' GROUP BY servers.server; ``` -### TASKS table +#### TASKS table The tasks table provides information about active and recently-completed indexing tasks. For more information -check out [ingestion tasks](#../ingestion/tasks.html) +check out the documentation for [ingestion tasks](../ingestion/tasks.html). |Column|Type|Notes| |------|-----|-----| |task_id|STRING|Unique task identifier| -|type|STRING|Task type, for example this value is "index" for indexing tasks. See [tasks-overview](../ingestion/tasks.html)| +|type|STRING|Task type, for example this value is "index" for indexing tasks. See [tasks-overview](../ingestion/tasks.md)| |datasource|STRING|Datasource name being indexed| |created_time|STRING|Timestamp in ISO8601 format corresponding to when the ingestion task was created. Note that this value is populated for completed and waiting tasks. For running and pending tasks this value is set to 1970-01-01T00:00:00Z| |queue_insertion_time|STRING|Timestamp in ISO8601 format corresponding to when this task was added to the queue on the Overlord| @@ -782,7 +787,7 @@ The Druid SQL server is configured through the following properties on the Broke |`druid.sql.http.enable`|Whether to enable JSON over HTTP querying at `/druid/v2/sql/`.|true| |`druid.sql.planner.maxQueryCount`|Maximum number of queries to issue, including nested queries. Set to 1 to disable sub-queries, or set to 0 for unlimited.|8| |`druid.sql.planner.maxSemiJoinRowsInMemory`|Maximum number of rows to keep in memory for executing two-stage semi-join queries like `SELECT * FROM Employee WHERE DeptName IN (SELECT DeptName FROM Dept)`.|100000| -|`druid.sql.planner.maxTopNLimit`|Maximum threshold for a [TopN query](../querying/topnquery.html). Higher limits will be planned as [GroupBy queries](../querying/groupbyquery.html) instead.|100000| +|`druid.sql.planner.maxTopNLimit`|Maximum threshold for a [TopN query](../querying/topnquery.md). Higher limits will be planned as [GroupBy queries](../querying/groupbyquery.md) instead.|100000| |`druid.sql.planner.metadataRefreshPeriod`|Throttle for metadata refreshes.|PT1M| |`druid.sql.planner.useApproximateCountDistinct`|Whether to use an approximate cardinalty algorithm for `COUNT(DISTINCT foo)`.|true| |`druid.sql.planner.useApproximateTopN`|Whether to use approximate [TopN queries](../querying/topnquery.html) when a SQL query could be expressed as such. If false, exact [GroupBy queries](../querying/groupbyquery.html) will be used instead.|true| @@ -800,7 +805,6 @@ Broker will emit the following metrics for SQL. |`sqlQuery/time`|Milliseconds taken to complete a SQL.|id, nativeQueryIds, dataSource, remoteAddress, success.|< 1s| |`sqlQuery/bytes`|number of bytes returned in SQL response.|id, nativeQueryIds, dataSource, remoteAddress, success.| | - ## Authorization Permissions Please see [Defining SQL permissions](../development/extensions-core/druid-basic-security.html#sql-permissions) for information on what permissions are needed for making SQL queries in a secured cluster. diff --git a/docs/content/querying/timeboundaryquery.md b/docs/querying/timeboundaryquery.md similarity index 86% rename from docs/content/querying/timeboundaryquery.md rename to docs/querying/timeboundaryquery.md index 686ef3e0da4b..34aaae393d94 100644 --- a/docs/content/querying/timeboundaryquery.md +++ b/docs/querying/timeboundaryquery.md @@ -1,6 +1,7 @@ --- -layout: doc_page -title: "Time Boundary Queries" +id: timeboundaryquery +title: "TimeBoundary queries" +sidebar_label: "TimeBoundary" --- -# Time Boundary Queries Time boundary queries return the earliest and latest data points of a data set. The grammar is: @@ -30,7 +30,7 @@ Time boundary queries return the earliest and latest data points of a data set. { "queryType" : "timeBoundary", "dataSource": "sample_datasource", - "bound" : < "maxTime" | "minTime" > # optional, defaults to returning both timestamps if not set + "bound" : < "maxTime" | "minTime" > # optional, defaults to returning both timestamps if not set "filter" : { "type": "and", "fields": [, , ...] } # optional } ``` @@ -40,10 +40,10 @@ There are 3 main parts to a time boundary query: |property|description|required?| |--------|-----------|---------| |queryType|This String should always be "timeBoundary"; this is the first thing Apache Druid (incubating) looks at to figure out how to interpret the query|yes| -|dataSource|A String or Object defining the data source to query, very similar to a table in a relational database. See [DataSource](../querying/datasource.html) for more information.|yes| +|dataSource|A String or Object defining the data source to query, very similar to a table in a relational database. See [DataSource](../querying/datasource.md) for more information.|yes| |bound | Optional, set to `maxTime` or `minTime` to return only the latest or earliest timestamp. Default to returning both if not set| no | -|filter|See [Filters](../querying/filters.html)|no| -|context|See [Context](../querying/query-context.html)|no| +|filter|See [Filters](../querying/filters.md)|no| +|context|See [Context](../querying/query-context.md)|no| The format of the result is: diff --git a/docs/content/querying/timeseriesquery.md b/docs/querying/timeseriesquery.md similarity index 93% rename from docs/content/querying/timeseriesquery.md rename to docs/querying/timeseriesquery.md index 39fea97000d7..41ca0c7d72fb 100644 --- a/docs/content/querying/timeseriesquery.md +++ b/docs/querying/timeseriesquery.md @@ -1,6 +1,7 @@ --- -layout: doc_page +id: timeseriesquery title: "Timeseries queries" +sidebar_label: "Timeseries" --- -# Timeseries queries These types of queries take a timeseries query object and return an array of JSON objects where each object represents a value asked for by the timeseries query. @@ -69,15 +69,15 @@ There are 7 main parts to a timeseries query: |property|description|required?| |--------|-----------|---------| |queryType|This String should always be "timeseries"; this is the first thing Apache Druid (incubating) looks at to figure out how to interpret the query|yes| -|dataSource|A String or Object defining the data source to query, very similar to a table in a relational database. See [DataSource](../querying/datasource.html) for more information.|yes| +|dataSource|A String or Object defining the data source to query, very similar to a table in a relational database. See [DataSource](../querying/datasource.md) for more information.|yes| |descending|Whether to make descending ordered result. Default is `false`(ascending).|no| |intervals|A JSON Object representing ISO-8601 Intervals. This defines the time ranges to run the query over.|yes| -|granularity|Defines the granularity to bucket query results. See [Granularities](../querying/granularities.html)|yes| -|filter|See [Filters](../querying/filters.html)|no| -|aggregations|See [Aggregations](../querying/aggregations.html)|no| -|postAggregations|See [Post Aggregations](../querying/post-aggregations.html)|no| +|granularity|Defines the granularity to bucket query results. See [Granularities](../querying/granularities.md)|yes| +|filter|See [Filters](../querying/filters.md)|no| +|aggregations|See [Aggregations](../querying/aggregations.md)|no| +|postAggregations|See [Post Aggregations](../querying/post-aggregations.md)|no| |limit|An integer that limits the number of results. The default is unlimited.|no| -|context|Can be used to modify query behavior, including [grand totals](#grand-totals) and [zero-filling](#zero-filling). See also [Context](../querying/query-context.html) for parameters that apply to all query types.|no| +|context|Can be used to modify query behavior, including [grand totals](#grand-totals) and [zero-filling](#zero-filling). See also [Context](../querying/query-context.md) for parameters that apply to all query types.|no| To pull it all together, the above query would return 2 data points, one for each day between 2012-01-01 and 2012-01-03, from the "sample\_datasource" table. Each data point would be the (long) sum of sample\_fieldName1, the (double) sum of sample\_fieldName2 and the (double) result of sample\_fieldName1 divided by sample\_fieldName2 for the filter set. The output looks like this: @@ -85,7 +85,7 @@ To pull it all together, the above query would return 2 data points, one for eac [ { "timestamp": "2012-01-01T00:00:00.000Z", - "result": { "sample_name1": , "sample_name2": , "sample_divide": } + "result": { "sample_name1": , "sample_name2": , "sample_divide": } }, { "timestamp": "2012-01-02T00:00:00.000Z", diff --git a/docs/content/querying/topnmetricspec.md b/docs/querying/topnmetricspec.md similarity index 95% rename from docs/content/querying/topnmetricspec.md rename to docs/querying/topnmetricspec.md index 43245cda029a..8c113f760e42 100644 --- a/docs/content/querying/topnmetricspec.md +++ b/docs/querying/topnmetricspec.md @@ -1,5 +1,5 @@ --- -layout: doc_page +id: topnmetricspec title: "TopNMetricSpec" --- @@ -22,7 +22,6 @@ title: "TopNMetricSpec" ~ under the License. --> -# TopNMetricSpec In Apache Druid (incubating), the topN metric spec specifies how topN values should be sorted. @@ -50,12 +49,12 @@ The metric field can also be given as a JSON object. The grammar for dimension v ## Dimension TopNMetricSpec -This metric specification sorts TopN results by dimension value, using one of the sorting orders described here: [Sorting Orders](./sorting-orders.html) +This metric specification sorts TopN results by dimension value, using one of the sorting orders described here: [Sorting Orders](./sorting-orders.md) |property|type|description|required?| |--------|----|-----------|---------| |type|String|this indicates a sort a dimension's values|yes, must be 'dimension'| -|ordering|String|Specifies the sorting order. Can be one of the following values: "lexicographic", "alphanumeric", "numeric", "strlen". See [Sorting Orders](./sorting-orders.html) for more details.|no, default: "lexicographic"| +|ordering|String|Specifies the sorting order. Can be one of the following values: "lexicographic", "alphanumeric", "numeric", "strlen". See [Sorting Orders](./sorting-orders.md) for more details.|no, default: "lexicographic"| |previousStop|String|the starting point of the sort. For example, if a previousStop value is 'b', all values before 'b' are discarded. This field can be used to paginate through all the dimension values.|no| The following metricSpec uses lexicographic sorting. diff --git a/docs/content/querying/topnquery.md b/docs/querying/topnquery.md similarity index 90% rename from docs/content/querying/topnquery.md rename to docs/querying/topnquery.md index f4acea0129fc..5df38bc1db67 100644 --- a/docs/content/querying/topnquery.md +++ b/docs/querying/topnquery.md @@ -1,6 +1,7 @@ --- -layout: doc_page +id: topnquery title: "TopN queries" +sidebar_label: "TopN" --- -# TopN queries -Apache Druid (incubating) TopN queries return a sorted set of results for the values in a given dimension according to some criteria. Conceptually, they can be thought of as an approximate [GroupByQuery](../querying/groupbyquery.html) over a single dimension with an [Ordering](../querying/limitspec.html) spec. TopNs are much faster and resource efficient than GroupBys for this use case. These types of queries take a topN query object and return an array of JSON objects where each object represents a value asked for by the topN query. +Apache Druid (incubating) TopN queries return a sorted set of results for the values in a given dimension according to some criteria. Conceptually, they can be thought of as an approximate [GroupByQuery](../querying/groupbyquery.md) over a single dimension with an [Ordering](../querying/limitspec.md) spec. TopNs are much faster and resource efficient than GroupBys for this use case. These types of queries take a topN query object and return an array of JSON objects where each object represents a value asked for by the topN query. TopNs are approximate in that each data process will rank their top K results and only return those top K results to the Broker. K, by default in Druid, is `max(1000, threshold)`. In practice, this means that if you ask for the top 1000 items ordered, the correctness of the first ~900 items will be 100%, and the ordering of the results after that is not guaranteed. TopNs can be made more accurate by increasing the threshold. @@ -95,16 +95,16 @@ There are 11 parts to a topN query. |property|description|required?| |--------|-----------|---------| |queryType|This String should always be "topN"; this is the first thing Druid looks at to figure out how to interpret the query|yes| -|dataSource|A String or Object defining the data source to query, very similar to a table in a relational database. See [DataSource](../querying/datasource.html) for more information.|yes| +|dataSource|A String or Object defining the data source to query, very similar to a table in a relational database. See [DataSource](../querying/datasource.md) for more information.|yes| |intervals|A JSON Object representing ISO-8601 Intervals. This defines the time ranges to run the query over.|yes| -|granularity|Defines the granularity to bucket query results. See [Granularities](../querying/granularities.html)|yes| -|filter|See [Filters](../querying/filters.html)|no| -|aggregations|See [Aggregations](../querying/aggregations.html)|for numeric metricSpec, aggregations or postAggregations should be specified. Otherwise no.| -|postAggregations|See [Post Aggregations](../querying/post-aggregations.html)|for numeric metricSpec, aggregations or postAggregations should be specified. Otherwise no.| -|dimension|A String or JSON object defining the dimension that you want the top taken for. For more info, see [DimensionSpecs](../querying/dimensionspecs.html)|yes| +|granularity|Defines the granularity to bucket query results. See [Granularities](../querying/granularities.md)|yes| +|filter|See [Filters](../querying/filters.md)|no| +|aggregations|See [Aggregations](../querying/aggregations.md)|for numeric metricSpec, aggregations or postAggregations should be specified. Otherwise no.| +|postAggregations|See [Post Aggregations](../querying/post-aggregations.md)|for numeric metricSpec, aggregations or postAggregations should be specified. Otherwise no.| +|dimension|A String or JSON object defining the dimension that you want the top taken for. For more info, see [DimensionSpecs](../querying/dimensionspecs.md)|yes| |threshold|An integer defining the N in the topN (i.e. how many results you want in the top list)|yes| -|metric|A String or JSON object specifying the metric to sort by for the top list. For more info, see [TopNMetricSpec](../querying/topnmetricspec.html).|yes| -|context|See [Context](../querying/query-context.html)|no| +|metric|A String or JSON object specifying the metric to sort by for the top list. For more info, see [TopNMetricSpec](../querying/topnmetricspec.md).|yes| +|context|See [Context](../querying/query-context.md)|no| Please note the context JSON object is also available for topN queries and should be used with the same caution as the timeseries case. The format of the results would look like so: @@ -164,7 +164,7 @@ See [Multi-value dimensions](multi-value-dimensions.html) for more details. The current TopN algorithm is an approximate algorithm. The top 1000 local results from each segment are returned for merging to determine the global topN. As such, the topN algorithm is approximate in both rank and results. Approximate results *ONLY APPLY WHEN THERE ARE MORE THAN 1000 DIM VALUES*. A topN over a dimension with fewer than 1000 unique dimension values can be considered accurate in rank and accurate in aggregates. -The threshold can be modified from it's default 1000 via the server parameter `druid.query.topN.minTopNThreshold` which need to restart servers to take effect or set `minTopNThreshold` in query context which take effect per query. +The threshold can be modified from it's default 1000 via the server parameter `druid.query.topN.minTopNThreshold` which need to restart servers to take effect or set `minTopNThreshold` in query context which take effect per query. If you are wanting the top 100 of a high cardinality, uniformly distributed dimension ordered by some low-cardinality, uniformly distributed dimension, you are potentially going to get aggregates back that are missing data. diff --git a/docs/content/querying/virtual-columns.md b/docs/querying/virtual-columns.md similarity index 90% rename from docs/content/querying/virtual-columns.md rename to docs/querying/virtual-columns.md index 0de728804ea8..6b4259832827 100644 --- a/docs/content/querying/virtual-columns.md +++ b/docs/querying/virtual-columns.md @@ -1,5 +1,5 @@ --- -layout: doc_page +id: virtual-columns title: "Virtual Columns" --- @@ -22,9 +22,8 @@ title: "Virtual Columns" ~ under the License. --> -# Virtual Columns -Virtual columns are queryable column "views" created from a set of columns during a query. +Virtual columns are queryable column "views" created from a set of columns during a query. A virtual column can potentially draw from multiple underlying columns, although a virtual column always presents itself as a single column. @@ -53,12 +52,12 @@ Each Apache Druid (incubating) query can accept a list of virtual columns as a p ], "intervals": [ "2013-01-01/2019-01-02" - ] + ] } ``` -## Virtual Column Types +## Virtual column types ### Expression virtual column @@ -76,5 +75,5 @@ The expression virtual column has the following syntax: |property|description|required?| |--------|-----------|---------| |name|The name of the virtual column.|yes| -|expression|An [expression](../misc/math-expr.html) that takes a row as input and outputs a value for the virtual column.|yes| +|expression|An [expression](../misc/math-expr.md) that takes a row as input and outputs a value for the virtual column.|yes| |outputType|The expression's output will be coerced to this type. Can be LONG, FLOAT, DOUBLE, or STRING.|no, default is FLOAT| diff --git a/docs/content/tutorials/cluster.md b/docs/tutorials/cluster.md similarity index 88% rename from docs/content/tutorials/cluster.md rename to docs/tutorials/cluster.md index 3a146c376f09..a6c97797cfc3 100644 --- a/docs/content/tutorials/cluster.md +++ b/docs/tutorials/cluster.md @@ -1,6 +1,6 @@ --- -layout: doc_page -title: "Setting up a Clustered Deployment" +id: cluster +title: "Clustered deployment" --- -# Setting up a Clustered Deployment Apache Druid (incubating) is designed to be deployed as a scalable, fault-tolerant cluster. In this document, we'll set up a simple cluster and discuss how it can be further configured to meet -your needs. +your needs. This simple cluster will feature: @@ -43,9 +42,9 @@ In production, we recommend deploying multiple Master servers and multiple Query If you do not have an existing Druid cluster, and wish to start running Druid in a clustered deployment, this guide provides an example clustered deployment with pre-made configurations. -#### Master Server +#### Master server -The Coordinator and Overlord processes are responsible for handling the metadata and coordination needs of your cluster. They can be colocated together on the same server. +The Coordinator and Overlord processes are responsible for handling the metadata and coordination needs of your cluster. They can be colocated together on the same server. In this example, we will be deploying the equivalent of one AWS [m5.2xlarge](https://aws.amazon.com/ec2/instance-types/m5/) instance. @@ -56,12 +55,12 @@ This hardware offers: Example Master server configurations that have been sized for this hardware can be found under `conf/druid/cluster/master`. -#### Data Server +#### Data server Historicals and MiddleManagers can be colocated on the same server to handle the actual data in your cluster. These servers benefit greatly from CPU, RAM, -and SSDs. +and SSDs. -In this example, we will be deploying the equivalent of two AWS [i3.4xlarge](https://aws.amazon.com/ec2/instance-types/i3/) instances. +In this example, we will be deploying the equivalent of two AWS [i3.4xlarge](https://aws.amazon.com/ec2/instance-types/i3/) instances. This hardware offers: @@ -71,12 +70,12 @@ This hardware offers: Example Data server configurations that have been sized for this hardware can be found under `conf/druid/cluster/data`. -#### Query Server +#### Query server Druid Brokers accept queries and farm them out to the rest of the cluster. They also optionally maintain an in-memory query cache. These servers benefit greatly from CPU and RAM. - -In this example, we will be deploying the equivalent of one AWS [m5.2xlarge](https://aws.amazon.com/ec2/instance-types/m5/) instance. + +In this example, we will be deploying the equivalent of one AWS [m5.2xlarge](https://aws.amazon.com/ec2/instance-types/m5/) instance. This hardware offers: @@ -95,13 +94,13 @@ You can choose smaller/larger hardware or less/more servers for your specific ne If your use case has complex scaling requirements, you can also choose to not co-locate Druid processes (e.g., standalone Historical servers). -The information in the [basic cluster tuning guide](../operations/basic-cluster-tuning.html) can help with your decision-making process and with sizing your configurations. +The information in the [basic cluster tuning guide](../operations/basic-cluster-tuning.md) can help with your decision-making process and with sizing your configurations. -### Migrating from a Single-Server Deployment +### Migrating from a single-server deployment -If you have an existing single-server deployment, such as the ones from the [single-server deployment examples](../operations/single-server.html), and you wish to migrate to a clustered deployment of similar scale, the following section contains guidelines for choosing equivalent hardware using the Master/Data/Query server organization. +If you have an existing single-server deployment, such as the ones from the [single-server deployment examples](../operations/single-server.md), and you wish to migrate to a clustered deployment of similar scale, the following section contains guidelines for choosing equivalent hardware using the Master/Data/Query server organization. -#### Master Server +#### Master server The main considerations for the Master server are available CPUs and RAM for the Coordinator and Overlord heaps. @@ -109,7 +108,7 @@ Sum up the allocated heap sizes for your Coordinator and Overlord from the singl For CPU cores, you can choose hardware with approximately 1/4th of the cores of the single-server deployment. -#### Data Server +#### Data server When choosing Data server hardware for the cluster, the main considerations are available CPUs and RAM, and using SSD storage if feasible. @@ -119,7 +118,7 @@ When choosing the Data server hardware, you can choose a split factor `N`, divid Instructions for adjusting the Historical/MiddleManager configs for the split are described in a later section in this guide. -#### Query Server +#### Query derver The main considerations for the Query server are available CPUs and RAM for the Broker heap + direct memory, and Router heap. @@ -127,7 +126,7 @@ Sum up the allocated memory sizes for your Broker and Router from the single-ser For CPU cores, you can choose hardware with approximately 1/4th of the cores of the single-server deployment. -The [basic cluster tuning guide](../operations/basic-cluster-tuning.html) has information on how to calculate Broker/Router memory usage. +The [basic cluster tuning guide](../operations/basic-cluster-tuning.md) has information on how to calculate Broker/Router memory usage. ## Select OS @@ -177,13 +176,13 @@ If you have an existing single-server deployment, please copy your existing conf ### Migrating from Single-Server Deployments -If you have an existing single-server deployment and you wish to preserve your data across the migration, please follow the instructions at [metadata migration](../operations/metadata-migration.html) and [deep storage migration](../operations/deep-storage-migration.html) before updating your metadata/deep storage configs. +If you have an existing single-server deployment and you wish to preserve your data across the migration, please follow the instructions at [metadata migration](../operations/metadata-migration.md) and [deep storage migration](../operations/deep-storage-migration.md) before updating your metadata/deep storage configs. These guides are targeted at single-server deployments that use the Derby metadata store and local deep storage. If you are already using a non-Derby metadata store in your single-server cluster, you can reuse the existing metadata store for the new cluster. These guides also provide information on migrating segments from local deep storage. A clustered deployment requires distributed deep storage like S3 or HDFS. If your single-server deployment was already using distributed deep storage, you can reuse the existing deep storage for the new cluster. -### Metadata Storage +### Metadata storage In `conf/druid/cluster/_common/common.runtime.properties`, replace "metadata.storage.*" with the address of the machine that you will use as your metadata store: @@ -193,9 +192,9 @@ In `conf/druid/cluster/_common/common.runtime.properties`, replace In a production deployment, we recommend running a dedicated metadata store such as MySQL or PostgreSQL with replication, deployed separately from the Druid servers. -The [MySQL extension](../development/extensions-core/mysql.html) and [PostgreSQL extension](../development/extensions-core/postgresql.html) docs have instructions for extension configuration and initial database setup. +The [MySQL extension](../development/extensions-core/mysql.md) and [PostgreSQL extension](../development/extensions-core/postgresql.md) docs have instructions for extension configuration and initial database setup. -### Deep Storage +### Deep storage Druid relies on a distributed filesystem or large object (blob) store for data storage. The most commonly used deep storage implementations are S3 (popular for those on AWS) and HDFS (popular if @@ -234,7 +233,7 @@ druid.indexer.logs.s3Bucket=your-bucket druid.indexer.logs.s3Prefix=druid/indexing-logs ``` -Please see the [S3 extension](../development/extensions-core/s3.html) documentation for more info. +Please see the [S3 extension](../development/extensions-core/s3.md) documentation for more info. #### HDFS @@ -271,13 +270,9 @@ Also, mapred-site.xml) on the classpath of your Druid processes. You can do this by copying them into `conf/druid/cluster/_common/`. -Please see the [HDFS extension](../development/extensions-core/hdfs.html) documentation for more info. - -## Configure Tranquility Server (optional) +Please see the [HDFS extension](../development/extensions-core/hdfs.md) documentation for more info. -Data streams can be sent to Druid through a simple HTTP API powered by Tranquility -Server. If you will be using this functionality, then at this point you should [configure -Tranquility Server](../ingestion/stream-ingestion.html#server). + ## Configure for connecting to Hadoop (optional) @@ -296,7 +291,7 @@ Note that you don't need to use HDFS deep storage in order to load data from Had your cluster is running on Amazon Web Services, we recommend using S3 for deep storage even if you are loading data using Hadoop or Elastic MapReduce. -For more info, please see [batch ingestion](../ingestion/batch-ingestion.html). +For more info, please see the [Hadoop-based ingestion](../ingestion/hadoop.md) page. ## Configure Zookeeper connection @@ -315,7 +310,7 @@ You can also choose to run ZK on the Master servers instead of having a dedicate #### Master -If you are using an example configuration from [single-server deployment examples](../operations/single-server.html), these examples combine the Coordinator and Overlord processes into one combined process. +If you are using an example configuration from [single-server deployment examples](../operations/single-server.md), these examples combine the Coordinator and Overlord processes into one combined process. The example configs under `conf/druid/cluster/master/coordinator-overlord` also combine the Coordinator and Overlord processes. @@ -389,7 +384,7 @@ If you are using the example cluster described above: The configurations under `conf/druid/cluster` have already been sized for this hardware and you do not need to make further modifications for general use cases. -If you have chosen different hardware, the [basic cluster tuning guide](../operations/basic-cluster-tuning.html) can help you size your configurations. +If you have chosen different hardware, the [basic cluster tuning guide](../operations/basic-cluster-tuning.md) can help you size your configurations. ## Open ports (if using a firewall) @@ -413,10 +408,8 @@ inbound connections on the following: ### Other - 8200 (Tranquility Server, if used) -
-In production, we recommend deploying ZooKeeper and your metadata store on their own dedicated hardware, -rather than on the Master server. -
+> In production, we recommend deploying ZooKeeper and your metadata store on their own dedicated hardware, +> rather than on the Master server. ## Start Master Server @@ -452,9 +445,7 @@ If you are running ZK on the Master server, you can start the Master server proc bin/start-cluster-master-with-zk-server ``` -
-In production, we also recommend running a ZooKeeper cluster on its own dedicated hardware. -
+> In production, we also recommend running a ZooKeeper cluster on its own dedicated hardware. ## Start Data Server @@ -468,16 +459,14 @@ bin/start-cluster-data-server You can add more Data servers as needed. -
-For clusters with complex resource allocation needs, you can break apart Historicals and MiddleManagers and scale the components individually. -This also allows you take advantage of Druid's built-in MiddleManager autoscaling facility. -
+> For clusters with complex resource allocation needs, you can break apart Historicals and MiddleManagers and scale the components individually. +> This also allows you take advantage of Druid's built-in MiddleManager autoscaling facility. ### Tranquility -If you are doing push-based stream ingestion with Kafka or over HTTP, you can also start Tranquility Server on the Data server. +If you are doing push-based stream ingestion with Kafka or over HTTP, you can also start Tranquility Server on the Data server. -For large scale production, Data server processes and the Tranquility Server can still be co-located. +For large scale production, Data server processes and the Tranquility Server can still be co-located. If you are running Tranquility (not server) with a stream processor, you can co-locate Tranquility with the stream processor and not require Tranquility Server. @@ -501,9 +490,9 @@ From the distribution root, run the following command to start the Query server: bin/start-cluster-query-server ``` -You can add more Query servers as needed based on query load. If you increase the number of Query servers, be sure to adjust the connection pools on your Historicals and Tasks as described in the [basic cluster tuning guide](../operations/basic-cluster-tuning.html). +You can add more Query servers as needed based on query load. If you increase the number of Query servers, be sure to adjust the connection pools on your Historicals and Tasks as described in the [basic cluster tuning guide](../operations/basic-cluster-tuning.md). ## Loading data Congratulations, you now have a Druid cluster! The next step is to learn about recommended ways to load data into -Druid based on your use case. Read more about [loading data](../ingestion/index.html). +Druid based on your use case. Read more about [loading data](../ingestion/index.md). diff --git a/docs/content/tutorials/index.md b/docs/tutorials/index.md similarity index 83% rename from docs/content/tutorials/index.md rename to docs/tutorials/index.md index a1cc4eff1b39..d8e1de99abfd 100644 --- a/docs/content/tutorials/index.md +++ b/docs/tutorials/index.md @@ -1,6 +1,6 @@ --- -layout: doc_page -title: "Apache Druid (incubating) Single-Server Quickstart" +id: index +title: "Quickstart" --- -# Apache Druid (incubating) Single-Server Quickstart In this quickstart, we will download Druid and set it up on a single machine. The cluster will be ready to load data after completing this initial setup. -Before beginning the quickstart, it is helpful to read the [general Druid overview](../design/index.html) and the -[ingestion overview](../ingestion/index.html), as the tutorials will refer to concepts discussed on those pages. +Before beginning the quickstart, it is helpful to read the [general Druid overview](../design/index.md) and the +[ingestion overview](../ingestion/index.md), as the tutorials will refer to concepts discussed on those pages. ## Prerequisites @@ -42,7 +41,7 @@ You will need: ### Hardware -Druid includes several example [single-server configurations](../operations/single-server.html), along with scripts to +Druid includes several example [single-server configurations](../operations/single-server.md), along with scripts to start the Druid processes using these configurations. If you're running on a small machine such as a laptop for a quick evaluation, the `micro-quickstart` configuration is @@ -104,7 +103,7 @@ From the apache-druid-#{DRUIDVERSION} package root, run the following command: This will bring up instances of Zookeeper and the Druid services, all running on the local machine, e.g.: ```bash -$ ./bin/start-micro-quickstart +$ ./bin/start-micro-quickstart [Fri May 3 11:40:50 2019] Running command[zk], logging to[/apache-druid-#{DRUIDVERSION}/var/sv/zk.log]: bin/run-zk conf [Fri May 3 11:40:50 2019] Running command[coordinator-overlord], logging to[/apache-druid-#{DRUIDVERSION}/var/sv/coordinator-overlord.log]: bin/run-druid coordinator-overlord conf/druid/single-server/micro-quickstart [Fri May 3 11:40:50 2019] Running command[broker], logging to[/apache-druid-#{DRUIDVERSION}/var/sv/broker.log]: bin/run-druid broker conf/druid/single-server/micro-quickstart @@ -118,9 +117,9 @@ All persistent state such as the cluster metadata store and segments for the ser Later on, if you'd like to stop the services, CTRL-C to exit the `bin/start-micro-quickstart` script, which will terminate the Druid processes. Once the cluster has started, you can navigate to [http://localhost:8888](http://localhost:8888). -The [Druid router process](../development/router.html), which serves the Druid console, resides at this address. +The [Druid router process](../design/router.md), which serves the Druid console, resides at this address. -![Druid console](../tutorials/img/tutorial-quickstart-01.png "Druid console") +![Druid console](../assets/tutorial-quickstart-01.png "Druid console") It takes a few seconds for all the Druid processes to fully start up. If you open the console immediately after starting the services, you may see some errors that you can safely ignore. @@ -186,12 +185,10 @@ The sample data has the following columns, and an example event is shown below: The following tutorials demonstrate various methods of loading data into Druid, including both batch and streaming use cases. All tutorials assume that you are using the `micro-quickstart` single-machine configuration mentioned above. -- [Loading a file](./tutorial-batch.html) - this tutorial demonstrates how to perform a batch file load, using Druid's native batch ingestion. -- [Loading stream data from Apache Kafka](./tutorial-kafka.html) - this tutorial demonstrates how to load streaming data from a Kafka topic. -- [Loading a file using Apache Hadoop](./tutorial-batch-hadoop.html) - this tutorial demonstrates how to perform a batch file load, using a remote Hadoop cluster. -- [Loading data using Tranquility](./tutorial-tranquility.html) - this tutorial demonstrates how to load streaming data by pushing events to Druid using the Tranquility service. -- [Writing your own ingestion spec](./tutorial-ingestion-spec.html) - this tutorial demonstrates how to write a new ingestion spec and use it to load data. - +- [Loading a file](./tutorial-batch.md) - this tutorial demonstrates how to perform a batch file load, using Druid's native batch ingestion. +- [Loading stream data from Apache Kafka](./tutorial-kafka.md) - this tutorial demonstrates how to load streaming data from a Kafka topic. +- [Loading a file using Apache Hadoop](./tutorial-batch-hadoop.md) - this tutorial demonstrates how to perform a batch file load, using a remote Hadoop cluster. +- [Writing your own ingestion spec](./tutorial-ingestion-spec.md) - this tutorial demonstrates how to write a new ingestion spec and use it to load data. ### Resetting cluster state @@ -201,7 +198,7 @@ Once every service has started, you are now ready to load data. #### Resetting Kafka -If you completed [Tutorial: Loading stream data from Kafka](./tutorial-kafka.html) and wish to reset the cluster state, you should additionally clear out any Kafka state. +If you completed [Tutorial: Loading stream data from Kafka](./tutorial-kafka.md) and wish to reset the cluster state, you should additionally clear out any Kafka state. Shut down the Kafka broker with CTRL-C before stopping Zookeeper and the Druid services, and then delete the Kafka log directory at `/tmp/kafka-logs`: diff --git a/docs/content/tutorials/tutorial-batch-hadoop.md b/docs/tutorials/tutorial-batch-hadoop.md similarity index 97% rename from docs/content/tutorials/tutorial-batch-hadoop.md rename to docs/tutorials/tutorial-batch-hadoop.md index 01dffeba3ab6..1c694121ff32 100644 --- a/docs/content/tutorials/tutorial-batch-hadoop.md +++ b/docs/tutorials/tutorial-batch-hadoop.md @@ -1,6 +1,7 @@ --- -layout: doc_page +id: tutorial-batch-hadoop title: "Tutorial: Load batch data using Apache Hadoop" +sidebar_label: "Load from Apache Hadoop" --- -# Tutorial: Load batch data using Hadoop This tutorial shows you how to load data files into Apache Druid (incubating) using a remote Hadoop cluster. @@ -95,7 +95,7 @@ starting yarn daemons starting resourcemanager, logging to /usr/local/hadoop/logs/yarn--resourcemanager-druid-hadoop-demo.out localhost: starting nodemanager, logging to /usr/local/hadoop/logs/yarn-root-nodemanager-druid-hadoop-demo.out starting historyserver, logging to /usr/local/hadoop/logs/mapred--historyserver-druid-hadoop-demo.out -bash-4.1# +bash-4.1# ``` The `Unable to load native-hadoop library for your platform... using builtin-java classes where applicable` warning messages can be safely ignored. @@ -213,11 +213,11 @@ bin/post-index-task --file quickstart/tutorial/wikipedia-index-hadoop.json --url ## Querying your data -After the data load is complete, please follow the [query tutorial](../tutorials/tutorial-query.html) to run some example queries on the newly loaded data. +After the data load is complete, please follow the [query tutorial](../tutorials/tutorial-query.md) to run some example queries on the newly loaded data. ## Cleanup -This tutorial is only meant to be used together with the [query tutorial](../tutorials/tutorial-query.html). +This tutorial is only meant to be used together with the [query tutorial](../tutorials/tutorial-query.md). If you wish to go through any of the other tutorials, you will need to: * Shut down the cluster and reset the cluster state by removing the contents of the `var` directory under the druid package. @@ -255,7 +255,6 @@ druid.indexer.logs.directory=var/druid/indexing-logs ``` - ## Further reading -For more information on loading batch data with Hadoop, please see [the Hadoop batch ingestion documentation](../ingestion/hadoop.html). +For more information on loading batch data with Hadoop, please see [the Hadoop batch ingestion documentation](../ingestion/hadoop.md). diff --git a/docs/content/tutorials/tutorial-batch.md b/docs/tutorials/tutorial-batch.md similarity index 84% rename from docs/content/tutorials/tutorial-batch.md rename to docs/tutorials/tutorial-batch.md index 1d47123ff0dd..3fd01fa58bc1 100644 --- a/docs/content/tutorials/tutorial-batch.md +++ b/docs/tutorials/tutorial-batch.md @@ -1,6 +1,7 @@ --- -layout: doc_page +id: tutorial-batch title: "Tutorial: Loading a file" +sidebar_label: "Loading files natively" --- -# Tutorial: Loading a file This tutorial demonstrates how to perform a batch file load, using Apache Druid (incubating)'s native batch ingestion. -For this tutorial, we'll assume you've already downloaded Druid as described in +For this tutorial, we'll assume you've already downloaded Druid as described in the [quickstart](index.html) using the `micro-quickstart` single-machine configuration and have it running on your local machine. You don't need to have loaded any data yet. @@ -45,28 +45,28 @@ We've included a sample of Wikipedia edits from September 12, 2015 to get you st Navigate to [localhost:8888](http://localhost:8888) and click `Load data` in the console header. Select `Local disk`. -![Data loader init](../tutorials/img/tutorial-batch-data-loader-01.png "Data loader init") +![Data loader init](../assets/tutorial-batch-data-loader-01.png "Data loader init") Enter the value of `quickstart/tutorial/` as the base directory and `wikiticker-2015-09-12-sampled.json.gz` as a filter. The separation of base directory and [wildcard file filter](https://commons.apache.org/proper/commons-io/apidocs/org/apache/commons/io/filefilter/WildcardFileFilter.html) is there if you need to ingest data from multiple files. Click `Preview` and make sure that the the data you are seeing is correct. -![Data loader sample](../tutorials/img/tutorial-batch-data-loader-02.png "Data loader sample") +![Data loader sample](../assets/tutorial-batch-data-loader-02.png "Data loader sample") Once the data is located, you can click "Next: Parse data" to go to the next step. The data loader will try to automatically determine the correct parser for the data. In this case it will successfully determine `json`. Feel free to play around with different parser options to get a preview of how Druid will parse your data. -![Data loader parse data](../tutorials/img/tutorial-batch-data-loader-03.png "Data loader parse data") +![Data loader parse data](../assets/tutorial-batch-data-loader-03.png "Data loader parse data") With the `json` parser selected, click `Next: Parse time` to get to the step centered around determining your primary timestamp column. Druid's architecture requires a primary timestamp column (internally stored in a column called `__time`). If you do not have a timestamp in your data, select `Constant value`. -In our example, the data loader will determine that the `time` column in our raw data is the only candidate that can be used as the primary time column. +In our example, the data loader will determine that the `time` column in our raw data is the only candidate that can be used as the primary time column. -![Data loader parse time](../tutorials/img/tutorial-batch-data-loader-04.png "Data loader parse time") +![Data loader parse time](../assets/tutorial-batch-data-loader-04.png "Data loader parse time") Click `Next: ...` twice to go past the `Transform` and `Filter` steps. You do not need to enter anything in these steps as applying ingestion time transforms and filters are out of scope for this tutorial. @@ -75,49 +75,49 @@ In the `Configure schema` step, you can configure which dimensions (and metrics) This is exactly what the data will appear like in Druid once it is ingested. Since our dataset is very small, go ahead and turn off `Rollup` by clicking on the switch and confirming the change. -![Data loader schema](../tutorials/img/tutorial-batch-data-loader-05.png "Data loader schema") +![Data loader schema](../assets/tutorial-batch-data-loader-05.png "Data loader schema") Once you are satisfied with the schema, click `Next` to go to the `Partition` step where you can fine tune how the data will be partitioned into segments. Here you can adjust how the data will be split up into segments in Druid. Since this is a small dataset, there are no adjustments that need to be made in this step. -![Data loader partition](../tutorials/img/tutorial-batch-data-loader-06.png "Data loader partition") +![Data loader partition](../assets/tutorial-batch-data-loader-06.png "Data loader partition") Clicking past the `Tune` step, we get to the publish step, which is where we can specify what the datasource name in Druid. -Let's name this datasource `wikipedia`. +Let's name this datasource `wikipedia`. -![Data loader publish](../tutorials/img/tutorial-batch-data-loader-07.png "Data loader publish") +![Data loader publish](../assets/tutorial-batch-data-loader-07.png "Data loader publish") Finally, click `Next` to review your spec. This is the spec you have constructed. Feel free to go back and make changes in previous steps to see how changes will update the spec. Similarly, you can also edit the spec directly and see it reflected in the previous steps. -![Data loader spec](../tutorials/img/tutorial-batch-data-loader-08.png "Data loader spec") +![Data loader spec](../assets/tutorial-batch-data-loader-08.png "Data loader spec") Once you are satisfied with the spec, click `Submit` and an ingestion task will be created. -You will be taken to the task view with the focus on the newly created task. +You will be taken to the task view with the focus on the newly created task. -![Tasks view](../tutorials/img/tutorial-batch-data-loader-09.png "Tasks view") +![Tasks view](../assets/tutorial-batch-data-loader-09.png "Tasks view") In the tasks view, you can click `Refresh` a couple of times until your ingestion task (hopefully) succeeds. -When a tasks succeeds it means that it built one or more segments that will now be picked up by the data servers. +When a tasks succeeds it means that it built one or more segments that will now be picked up by the data servers. Navigate to the `Datasources` view and click refresh until your datasource (`wikipedia`) appears. -This can take a few seconds as the segments are being loaded. +This can take a few seconds as the segments are being loaded. -![Datasource view](../tutorials/img/tutorial-batch-data-loader-10.png "Datasource view") +![Datasource view](../assets/tutorial-batch-data-loader-10.png "Datasource view") A datasource is queryable once you see a green (fully available) circle. At this point, you can go to the `Query` view to run SQL queries against the datasource. Since this is a small dataset, you can simply run a `SELECT * FROM wikipedia` query to see your results. -![Query view](../tutorials/img/tutorial-batch-data-loader-11.png "Query view") +![Query view](../assets/tutorial-batch-data-loader-11.png "Query view") -Check out the [query tutorial](../tutorials/tutorial-query.html) to run some example queries on the newly loaded data. +Check out the [query tutorial](../tutorials/tutorial-query.md) to run some example queries on the newly loaded data. ## Loading data with a spec (via console) @@ -195,11 +195,11 @@ This spec will create a datasource named "wikipedia". From the task view, click on `Submit task` and select `Raw JSON task`. -![Tasks view add task](../tutorials/img/tutorial-batch-submit-task-01.png "Tasks view add task") +![Tasks view add task](../assets/tutorial-batch-submit-task-01.png "Tasks view add task") -This will bring up the spec submission dialog where you can paste the spec above. +This will bring up the spec submission dialog where you can paste the spec above. -![Query view](../tutorials/img/tutorial-batch-submit-task-02.png "Query view") +![Query view](../assets/tutorial-batch-submit-task-02.png "Query view") Once the spec is submitted, you can follow the same instructions as above to wait for the data to load and then query it. @@ -249,12 +249,12 @@ Which will print the ID of the task if the submission was successful: {"task":"index_wikipedia_2018-06-09T21:30:32.802Z"} ``` -You can monitor the status of this task from the console as outlined above. +You can monitor the status of this task from the console as outlined above. ## Querying your data -Once the data is loaded, please follow the [query tutorial](../tutorials/tutorial-query.html) to run some example queries on the newly loaded data. +Once the data is loaded, please follow the [query tutorial](../tutorials/tutorial-query.md) to run some example queries on the newly loaded data. ## Cleanup @@ -264,4 +264,4 @@ If you wish to go through any of the other ingestion tutorials, you will need to ## Further reading -For more information on loading batch data, please see [the batch ingestion documentation](../ingestion/batch-ingestion.html). +For more information on loading batch data, please see [the native batch ingestion documentation](../ingestion/native-batch.md). diff --git a/docs/content/tutorials/tutorial-compaction.md b/docs/tutorials/tutorial-compaction.md similarity index 77% rename from docs/content/tutorials/tutorial-compaction.md rename to docs/tutorials/tutorial-compaction.md index 0051796d106c..bec0cafc15ae 100644 --- a/docs/content/tutorials/tutorial-compaction.md +++ b/docs/tutorials/tutorial-compaction.md @@ -1,6 +1,7 @@ --- -layout: doc_page +id: tutorial-compaction title: "Tutorial: Compacting segments" +sidebar_label: "Compacting segments" --- -# Tutorial: Compacting segments This tutorial demonstrates how to compact existing segments into fewer but larger segments. Because there is some per-segment memory and processing overhead, it can sometimes be beneficial to reduce the total number of segments. -Please check [Segment size optimization](../operations/segment-optimization.html) for details. +Please check [Segment size optimization](../operations/segment-optimization.md) for details. -For this tutorial, we'll assume you've already downloaded Apache Druid (incubating) as described in -the [single-machine quickstart](index.html) and have it running on your local machine. +For this tutorial, we'll assume you've already downloaded Apache Druid (incubating) as described in +the [single-machine quickstart](index.html) and have it running on your local machine. -It will also be helpful to have finished [Tutorial: Loading a file](../tutorials/tutorial-batch.html) and [Tutorial: Querying data](../tutorials/tutorial-query.html). +It will also be helpful to have finished [Tutorial: Loading a file](../tutorials/tutorial-batch.md) and [Tutorial: Querying data](../tutorials/tutorial-query.md). ## Load the initial data @@ -44,20 +44,18 @@ The ingestion spec can be found at `quickstart/tutorial/compaction-init-index.js bin/post-index-task --file quickstart/tutorial/compaction-init-index.json --url http://localhost:8081 ``` -
-Please note that `maxRowsPerSegment` in the ingestion spec is set to 1000. This is to generate multiple segments per hour and _NOT_ recommended in production. -It's 5000000 by default and may need to be adjusted to make your segments optimized. -
+> Please note that `maxRowsPerSegment` in the ingestion spec is set to 1000. This is to generate multiple segments per hour and _NOT_ recommended in production. +> It's 5000000 by default and may need to be adjusted to make your segments optimized. After the ingestion completes, go to [http://localhost:8888/unified-console.html#datasources](http://localhost:8888/unified-console.html#datasources) in a browser to see the new datasource in the Druid Console. -![compaction-tutorial datasource](../tutorials/img/tutorial-compaction-01.png "compaction-tutorial datasource") +![compaction-tutorial datasource](../assets/tutorial-compaction-01.png "compaction-tutorial datasource") Click the `51 segments` link next to "Fully Available" for the `compaction-tutorial` datasource to view information about the datasource's segments: - + There will be 51 segments for this datasource, 1-3 segments per hour in the input data: -![Original segments](../tutorials/img/tutorial-compaction-02.png "Original segments") +![Original segments](../assets/tutorial-compaction-02.png "Original segments") Running a COUNT(*) query on this datasource shows that there are 39,244 rows: @@ -90,9 +88,9 @@ We have included a compaction task spec for this tutorial datasource at `quickst } ``` -This will compact all segments for the interval `2015-09-12/2015-09-13` in the `compaction-tutorial` datasource. +This will compact all segments for the interval `2015-09-12/2015-09-13` in the `compaction-tutorial` datasource. -The parameters in the `tuningConfig` control how many segments will be present in the compacted set of segments. +The parameters in the `tuningConfig` control how many segments will be present in the compacted set of segments. In this tutorial example, only one compacted segment will be created per hour, as each hour has less rows than the 5000000 `maxRowsPerSegment` (note that the total number of rows is 39244). @@ -108,9 +106,9 @@ The original 51 segments will eventually be marked as "unused" by the Coordinato By default, the Druid Coordinator will not mark segments as unused until the Coordinator process has been up for at least 15 minutes, so you may see the old segment set and the new compacted set at the same time in the Druid Console, with 75 total segments: -![Compacted segments intermediate state 1](../tutorials/img/tutorial-compaction-03.png "Compacted segments intermediate state 1") +![Compacted segments intermediate state 1](../assets/tutorial-compaction-03.png "Compacted segments intermediate state 1") -![Compacted segments intermediate state 2](../tutorials/img/tutorial-compaction-04.png "Compacted segments intermediate state 2") +![Compacted segments intermediate state 2](../assets/tutorial-compaction-04.png "Compacted segments intermediate state 2") The new compacted segments have a more recent version than the original segments, so even when both sets of segments are shown in the Druid Console, queries will only read from the new compacted segments. @@ -128,9 +126,9 @@ Retrieved 1 row in 1.30s. After the Coordinator has been running for at least 15 minutes, the [segments view](http://localhost:8888/unified-console.html#segments) should show there are 24 segments, one per hour: -![Compacted segments hourly granularity 1](../tutorials/img/tutorial-compaction-05.png "Compacted segments hourly granularity 1") +![Compacted segments hourly granularity 1](../assets/tutorial-compaction-05.png "Compacted segments hourly granularity 1") -![Compacted segments hourly granularity 2](../tutorials/img/tutorial-compaction-06.png "Compacted segments hourly granularity 2") +![Compacted segments hourly granularity 2](../assets/tutorial-compaction-06.png "Compacted segments hourly granularity 2") ## Compact the data with new segment granularity @@ -163,13 +161,13 @@ bin/post-index-task --file quickstart/tutorial/compaction-day-granularity.json - It will take a bit of time before the Coordinator marks the old input segments as unused, so you may see an intermediate state with 25 total segments. Eventually, there will only be one DAY granularity segment: -![Compacted segments day granularity 1](../tutorials/img/tutorial-compaction-07.png "Compacted segments day granularity 1") +![Compacted segments day granularity 1](../assets/tutorial-compaction-07.png "Compacted segments day granularity 1") -![Compacted segments day granularity 2](../tutorials/img/tutorial-compaction-08.png "Compacted segments day granularity 2") +![Compacted segments day granularity 2](../assets/tutorial-compaction-08.png "Compacted segments day granularity 2") ## Further reading -[Task documentation](../ingestion/tasks.html) +[Task documentation](../ingestion/tasks.md) -[Segment optimization](../operations/segment-optimization.html) \ No newline at end of file +[Segment optimization](../operations/segment-optimization.md) diff --git a/docs/content/tutorials/tutorial-delete-data.md b/docs/tutorials/tutorial-delete-data.md similarity index 96% rename from docs/content/tutorials/tutorial-delete-data.md rename to docs/tutorials/tutorial-delete-data.md index 90091222d091..cd1e054c52d2 100644 --- a/docs/content/tutorials/tutorial-delete-data.md +++ b/docs/tutorials/tutorial-delete-data.md @@ -1,6 +1,7 @@ --- -layout: doc_page +id: tutorial-delete-data title: "Tutorial: Deleting data" +sidebar_label: "Deleting data" --- -# Tutorial: Deleting data This tutorial demonstrates how to delete existing data. -For this tutorial, we'll assume you've already downloaded Apache Druid (incubating) as described in -the [single-machine quickstart](index.html) and have it running on your local machine. +For this tutorial, we'll assume you've already downloaded Apache Druid (incubating) as described in +the [single-machine quickstart](index.html) and have it running on your local machine. ## Load initial data @@ -61,7 +61,7 @@ curl -X 'POST' -H 'Content-Type:application/json' -d '{ "interval" : "2015-09-12 After that command completes, you should see that the segment for hour 18 and 19 have been disabled: -![Segments 2](../tutorials/img/tutorial-deletion-02.png "Segments 2") +![Segments 2](../assets/tutorial-deletion-02.png "Segments 2") Note that the hour 18 and 19 segments are still present in deep storage: @@ -99,7 +99,7 @@ Let's disable some segments by their segmentID. This will again mark the segment In the [segments view](http://localhost:8888/unified-console.html#segments), click the arrow on the left side of one of the remaining segments to expand the segment entry: -![Segments](../tutorials/img/tutorial-deletion-01.png "Segments") +![Segments](../assets/tutorial-deletion-01.png "Segments") The top of the info box shows the full segment ID, e.g. `deletion-tutorial_2015-09-12T14:00:00.000Z_2015-09-12T15:00:00.000Z_2019-02-28T01:11:51.606Z` for the segment of hour 14. @@ -123,7 +123,7 @@ curl -X 'POST' -H 'Content-Type:application/json' -d @quickstart/tutorial/deleti After that command completes, you should see that the segments for hour 13 and 14 have been disabled: -![Segments 3](../tutorials/img/tutorial-deletion-03.png "Segments 3") +![Segments 3](../assets/tutorial-deletion-03.png "Segments 3") Note that the hour 13 and 14 segments are still in deep storage: diff --git a/docs/content/tutorials/tutorial-ingestion-spec.md b/docs/tutorials/tutorial-ingestion-spec.md similarity index 97% rename from docs/content/tutorials/tutorial-ingestion-spec.md rename to docs/tutorials/tutorial-ingestion-spec.md index 5f05d182593c..96926c429fde 100644 --- a/docs/content/tutorials/tutorial-ingestion-spec.md +++ b/docs/tutorials/tutorial-ingestion-spec.md @@ -1,6 +1,7 @@ --- -layout: doc_page +id: tutorial-ingestion-spec title: "Tutorial: Writing an ingestion spec" +sidebar_label: "Writing an ingestion spec" --- -# Tutorial: Writing an ingestion spec This tutorial will guide the reader through the process of defining an ingestion spec, pointing out key considerations and guidelines. -For this tutorial, we'll assume you've already downloaded Apache Druid (incubating) as described in -the [single-machine quickstart](index.html) and have it running on your local machine. +For this tutorial, we'll assume you've already downloaded Apache Druid (incubating) as described in +the [single-machine quickstart](index.html) and have it running on your local machine. -It will also be helpful to have finished [Tutorial: Loading a file](../tutorials/tutorial-batch.html), [Tutorial: Querying data](../tutorials/tutorial-query.html), and [Tutorial: Rollup](../tutorials/tutorial-rollup.html). +It will also be helpful to have finished [Tutorial: Loading a file](../tutorials/tutorial-batch.md), [Tutorial: Querying data](../tutorials/tutorial-query.md), and [Tutorial: Rollup](../tutorials/tutorial-rollup.md). ## Example data @@ -58,7 +58,7 @@ Suppose we have the following network flow data: Save the JSON contents above into a file called `ingestion-tutorial-data.json` in `quickstart/`. -Let's walk through the process of defining an ingestion spec that can load this data. +Let's walk through the process of defining an ingestion spec that can load this data. For this tutorial, we will be using the native batch indexing task. When using other task types, some aspects of the ingestion spec will differ, and this tutorial will point out such areas. @@ -108,7 +108,7 @@ Since our input data is represented as JSON strings, we'll use a `string` parser ### Time column -The `parser` needs to know how to extract the main timestamp field from the input data. When using a `json` type `parseSpec`, the timestamp is defined in a `timestampSpec`. +The `parser` needs to know how to extract the main timestamp field from the input data. When using a `json` type `parseSpec`, the timestamp is defined in a `timestampSpec`. The timestamp column in our input data is named "ts", containing ISO 8601 timestamps, so let's add a `timestampSpec` with that information to the `parseSpec`: @@ -144,7 +144,7 @@ When ingesting data, we must consider whether we wish to use rollup or not. * If rollup is disabled, then all columns are treated as "dimensions" and no pre-aggregation occurs. -For this tutorial, let's enable rollup. This is specified with a `granularitySpec` on the `dataSchema`. +For this tutorial, let's enable rollup. This is specified with a `granularitySpec` on the `dataSchema`. Note that the `granularitySpec` lies outside of the `parser`. We will revist the `parser` soon when we define our dimensions and metrics. @@ -216,7 +216,7 @@ Each dimension has a `name` and a `type`, where `type` can be "long", "float", " Note that `srcIP` is a "string" dimension; for string dimensions, it is enough to specify just a dimension name, since "string" is the default dimension type. Also note that `protocol` is a numeric value in the input data, but we are ingesting it as a "string" column; Druid will coerce the input longs to strings during ingestion. - + ##### Strings vs. Numerics Should a numeric input be ingested as a numeric dimension or as a string dimension? @@ -248,7 +248,7 @@ Metrics are specified with a `metricsSpec` inside the `dataSchema`: { "name" : "dstPort", "type" : "long" }, { "name" : "protocol", "type" : "string" } ] - } + } } }, "metricsSpec" : [ @@ -323,7 +323,7 @@ Segment granularity is configured by the `segmentGranularity` property in the `g { "name" : "dstPort", "type" : "long" }, { "name" : "protocol", "type" : "string" } ] - } + } } }, "metricsSpec" : [ @@ -365,7 +365,7 @@ The query granularity is configured by the `queryGranularity` property in the `g { "name" : "dstPort", "type" : "long" }, { "name" : "protocol", "type" : "string" } ] - } + } } }, "metricsSpec" : [ @@ -420,7 +420,7 @@ The interval is also specified in the `granularitySpec`: { "name" : "dstPort", "type" : "long" }, { "name" : "protocol", "type" : "string" } ] - } + } } }, "metricsSpec" : [ @@ -466,8 +466,8 @@ The `dataSchema` is shared across all task types, but each task type has its own { "name" : "dstIP", "type" : "string" }, { "name" : "dstPort", "type" : "long" }, { "name" : "protocol", "type" : "string" } - ] - } + ] + } } }, "metricsSpec" : [ @@ -526,7 +526,7 @@ Now let's define our input source, which is specified in an `ioConfig` object. E { "name" : "dstPort", "type" : "long" }, { "name" : "protocol", "type" : "string" } ] - } + } } }, "metricsSpec" : [ @@ -596,7 +596,7 @@ We've finished defining the ingestion spec, it should now look like the followin { "name" : "dstPort", "type" : "long" }, { "name" : "protocol", "type" : "string" } ] - } + } } }, "metricsSpec" : [ @@ -658,5 +658,5 @@ dsql> select * from "ingestion-tutorial"; └──────────────────────────┴───────┴──────┴───────┴─────────┴─────────┴─────────┴──────────┴─────────┴─────────┘ Retrieved 5 rows in 0.12s. -dsql> +dsql> ``` diff --git a/docs/content/tutorials/tutorial-kafka.md b/docs/tutorials/tutorial-kafka.md similarity index 92% rename from docs/content/tutorials/tutorial-kafka.md rename to docs/tutorials/tutorial-kafka.md index 0dc91cf83e17..e29d7d3ed79e 100644 --- a/docs/content/tutorials/tutorial-kafka.md +++ b/docs/tutorials/tutorial-kafka.md @@ -1,6 +1,7 @@ --- -layout: doc_page +id: tutorial-kafka title: "Tutorial: Load streaming data from Apache Kafka" +sidebar_label: "Load from Apache Kafka" --- -# Tutorial: Load streaming data from Kafka ## Getting started This tutorial demonstrates how to load data into Apache Druid (incubating) from a Kafka stream, using Druid's Kafka indexing service. -For this tutorial, we'll assume you've already downloaded Druid as described in +For this tutorial, we'll assume you've already downloaded Druid as described in the [quickstart](index.html) using the `micro-quickstart` single-machine configuration and have it running on your local machine. You don't need to have loaded any data yet. @@ -64,7 +64,7 @@ We will use Druid's Kafka indexing service to ingest messages from our newly cre In the console, click `Submit supervisor` to open the submit supervisor dialog. -![Submit supervisor](../tutorials/img/tutorial-kafka-01.png "Submit supervisor") +![Submit supervisor](../assets/tutorial-kafka-01.png "Submit supervisor") Paste in this spec and click `Submit`. @@ -132,7 +132,7 @@ Paste in this spec and click `Submit`. This will start the supervisor that will in turn spawn some tasks that will start listening for incoming data. -![Running supervisor](../tutorials/img/tutorial-kafka-02.png "Running supervisor") +![Running supervisor](../assets/tutorial-kafka-02.png "Running supervisor") ### Submit a supervisor directly @@ -146,7 +146,7 @@ curl -XPOST -H'Content-Type: application/json' -d @quickstart/tutorial/wikipedia If the supervisor was successfully created, you will get a response containing the ID of the supervisor; in our case we should see `{"id":"wikipedia"}`. For more details about what's going on here, check out the -[Druid Kafka indexing service documentation](../development/extensions-core/kafka-ingestion.html). +[Druid Kafka indexing service documentation](../development/extensions-core/kafka-ingestion.md). You can view the current supervisors and tasks in the Druid Console: [http://localhost:8888/unified-console.html#tasks](http://localhost:8888/unified-console.html#tasks). @@ -175,7 +175,7 @@ The previous command posted sample events to the *wikipedia* Kafka topic which w After data is sent to the Kafka stream, it is immediately available for querying. -Please follow the [query tutorial](../tutorials/tutorial-query.html) to run some example queries on the newly loaded data. +Please follow the [query tutorial](../tutorials/tutorial-query.md) to run some example queries on the newly loaded data. ## Cleanup @@ -183,4 +183,4 @@ If you wish to go through any of the other ingestion tutorials, you will need to ## Further reading -For more information on loading data from Kafka streams, please see the [Druid Kafka indexing service documentation](../development/extensions-core/kafka-ingestion.html). +For more information on loading data from Kafka streams, please see the [Druid Kafka indexing service documentation](../development/extensions-core/kafka-ingestion.md). diff --git a/docs/content/tutorials/tutorial-kerberos-hadoop.md b/docs/tutorials/tutorial-kerberos-hadoop.md similarity index 93% rename from docs/content/tutorials/tutorial-kerberos-hadoop.md rename to docs/tutorials/tutorial-kerberos-hadoop.md index 6f4bfb6d1e13..da7a9af6594c 100644 --- a/docs/content/tutorials/tutorial-kerberos-hadoop.md +++ b/docs/tutorials/tutorial-kerberos-hadoop.md @@ -1,6 +1,7 @@ --- -layout: doc_page -title: "Configuring Apache Druid (incubating) to use Kerberized Apache Hadoop as Deep Storage" +id: tutorial-kerberos-hadoop +title: "Configuring Apache Druid to use Kerberized Apache Hadoop as deep storage" +sidebar_label: "Kerberized HDFS deep storage" --- - -# Configuring Druid to use a Kerberized Hadoop as Deep Storage + ## Hadoop Setup @@ -56,7 +56,6 @@ Edit common.runtime.properties at conf/druid/_common/common.runtime.properties t ### common_runtime_properties -```properties # Deep storage # # For HDFS: @@ -89,13 +88,14 @@ druid.extensions.directory=dist/druid/extensions druid.extensions.hadoopDependenciesDir=dist/druid/hadoop-dependencies druid.extensions.loadList=["mysql-metadata-storage", "druid-hdfs-storage", "druid-kerberos"] ``` + ### Hadoop Jars Ensure that Druid has necessary jars to support the Hadoop version. -Find the hadoop version using command, `hadoop version` +Find the hadoop version using command, `hadoop version` -In case there are other softwares used with hadoop, like WanDisco, ensure that +In case there are other softwares used with hadoop, like WanDisco, ensure that 1. the necessary libraries are available 2. add the requisite extensions to `druid.extensions.loadlist` in `conf/druid/_common/common.runtime.properties` diff --git a/docs/content/tutorials/tutorial-query.md b/docs/tutorials/tutorial-query.md similarity index 93% rename from docs/content/tutorials/tutorial-query.md rename to docs/tutorials/tutorial-query.md index 960655ed2769..5f6471601561 100644 --- a/docs/content/tutorials/tutorial-query.md +++ b/docs/tutorials/tutorial-query.md @@ -1,6 +1,7 @@ --- -layout: doc_page +id: tutorial-query title: "Tutorial: Querying data" +sidebar_label: "Querying data" --- -# Tutorial: Querying data This tutorial will demonstrate how to query data in Apache Druid (incubating), with examples for Druid SQL and Druid's native query format. The tutorial assumes that you've already completed one of the 4 ingestion tutorials, as we will be querying the sample Wikipedia edits data. -* [Tutorial: Loading a file](../tutorials/tutorial-batch.html) -* [Tutorial: Loading stream data from Kafka](../tutorials/tutorial-kafka.html) -* [Tutorial: Loading a file using Hadoop](../tutorials/tutorial-batch-hadoop.html) -* [Tutorial: Loading stream data using Tranquility](../tutorials/tutorial-tranquility.html) +* [Tutorial: Loading a file](../tutorials/tutorial-batch.md) +* [Tutorial: Loading stream data from Kafka](../tutorials/tutorial-kafka.md) +* [Tutorial: Loading a file using Hadoop](../tutorials/tutorial-batch-hadoop.md) Druid queries are sent over HTTP. -The Druid console includes a view to issue queries to Druid and nicely format the results. +The Druid console includes a view to issue queries to Druid and nicely format the results. ## Druid SQL queries @@ -56,14 +55,14 @@ Let's look at the different ways to issue this query. You can issue the above query from the console. -![Query autocomplete](../tutorials/img/tutorial-query-01.png "Query autocomplete") +![Query autocomplete](../assets/tutorial-query-01.png "Query autocomplete") The console query view provides autocomplete together with inline function documentation. You can also configure extra context flags to be sent with the query from the more options menu. -![Query options](../tutorials/img/tutorial-query-02.png "Query options") +![Query options](../assets/tutorial-query-02.png "Query options") -Note that the console will by default wrap your SQL queries in a limit so that you can issue queries like `SELECT * FROM wikipedia` without much hesitation - you can turn off this behaviour. +Note that the console will by default wrap your SQL queries in a limit so that you can issue queries like `SELECT * FROM wikipedia` without much hesitation - you can turn off this behaviour. ### Query SQL via dsql @@ -74,7 +73,7 @@ Let's now run `bin/dsql`; you should see the following prompt: ```bash Welcome to dsql, the command-line client for Druid SQL. Type "\h" for help. -dsql> +dsql> ``` To submit the query, paste it to the `dsql` prompt and press enter: @@ -168,7 +167,7 @@ FROM wikipedia WHERE "__time" BETWEEN TIMESTAMP '2015-09-12 00:00:00' AND TIMEST GROUP BY 1 ``` -![Query example](../tutorials/img/tutorial-query-03.png "Query example") +![Query example](../assets/tutorial-query-03.png "Query example") #### General group by @@ -179,7 +178,7 @@ GROUP BY channel, page ORDER BY SUM(added) DESC ``` -![Query example](../tutorials/img/tutorial-query-04.png "Query example") +![Query example](../assets/tutorial-query-04.png "Query example") #### Select raw data @@ -189,14 +188,14 @@ FROM wikipedia WHERE "__time" BETWEEN TIMESTAMP '2015-09-12 02:00:00' AND TIMEST LIMIT 5 ``` -![Query example](../tutorials/img/tutorial-query-05.png "Query example") +![Query example](../assets/tutorial-query-05.png "Query example") ### Explain query plan Druid SQL has the ability to explain the query plan for a given query. In the console this functionality is accessible from the `...` button. -![Explain query](../tutorials/img/tutorial-query-06.png "Explain query") +![Explain query](../assets/tutorial-query-06.png "Explain query") If you are querying in other ways you can get the plan by prepending `EXPLAIN PLAN FOR ` to a Druid SQL query. @@ -245,7 +244,7 @@ Here is a query that retrieves the 10 Wikipedia pages with the most page edits o Simply paste it into the console to switch the editor into JSON mode. -![Native query](../tutorials/img/tutorial-query-07.png "Native query") +![Native query](../assets/tutorial-query-07.png "Native query") ### Native queries over HTTP @@ -300,6 +299,6 @@ You should see the following query results: ## Further reading -The [Queries documentation](../querying/querying.html) has more information on Druid's native JSON queries. +The [Queries documentation](../querying/querying.md) has more information on Druid's native JSON queries. -The [Druid SQL documentation](../querying/sql.html) has more information on using Druid SQL queries. +The [Druid SQL documentation](../querying/sql.md) has more information on using Druid SQL queries. diff --git a/docs/content/tutorials/tutorial-retention.md b/docs/tutorials/tutorial-retention.md similarity index 84% rename from docs/content/tutorials/tutorial-retention.md rename to docs/tutorials/tutorial-retention.md index 6f5c91c6a414..adf352d24085 100644 --- a/docs/content/tutorials/tutorial-retention.md +++ b/docs/tutorials/tutorial-retention.md @@ -1,6 +1,7 @@ --- -layout: doc_page +id: tutorial-retention title: "Tutorial: Configuring data retention" +sidebar_label: "Configuring data retention" --- -# Tutorial: Configuring data retention This tutorial demonstrates how to configure retention rules on a datasource to set the time intervals of data that will be retained or dropped. -For this tutorial, we'll assume you've already downloaded Apache Druid (incubating) as described in -the [single-machine quickstart](index.html) and have it running on your local machine. +For this tutorial, we'll assume you've already downloaded Apache Druid (incubating) as described in +the [single-machine quickstart](index.html) and have it running on your local machine. -It will also be helpful to have finished [Tutorial: Loading a file](../tutorials/tutorial-batch.html) and [Tutorial: Querying data](../tutorials/tutorial-query.html). +It will also be helpful to have finished [Tutorial: Loading a file](../tutorials/tutorial-batch.md) and [Tutorial: Querying data](../tutorials/tutorial-query.md). ## Load the example data @@ -42,14 +42,14 @@ bin/post-index-task --file quickstart/tutorial/retention-index.json --url http:/ ``` After the ingestion completes, go to [http://localhost:8888/unified-console.html#datasources](http://localhost:8888/unified-console.html#datasources) in a browser to access the Druid Console's datasource view. - + This view shows the available datasources and a summary of the retention rules for each datasource: -![Summary](../tutorials/img/tutorial-retention-01.png "Summary") +![Summary](../assets/tutorial-retention-01.png "Summary") -Currently there are no rules set for the `retention-tutorial` datasource. Note that there are default rules for the cluster: load forever with 2 replicants in `_default_tier`. +Currently there are no rules set for the `retention-tutorial` datasource. Note that there are default rules for the cluster: load forever with 2 replicants in `_default_tier`. -This means that all data will be loaded regardless of timestamp, and each segment will be replicated to two Historical processes in the default tier. +This means that all data will be loaded regardless of timestamp, and each segment will be replicated to two Historical processes in the default tier. In this tutorial, we will ignore the tiering and redundancy concepts for now. @@ -57,7 +57,7 @@ Let's view the segments for the `retention-tutorial` datasource by clicking the The segments view ([http://localhost:8888/unified-console.html#segments](http://localhost:8888/unified-console.html#segments)) provides information about what segments a datasource contains. The page shows that there are 24 segments, each one containing data for a specific hour of 2015-09-12: -![Original segments](../tutorials/img/tutorial-retention-02.png "Original segments") +![Original segments](../assets/tutorial-retention-02.png "Original segments") ## Set retention rules @@ -67,9 +67,9 @@ Go to the [datasources view](http://localhost:8888/unified-console.html#datasour A rule configuration window will appear: -![Rule configuration](../tutorials/img/tutorial-retention-03.png "Rule configuration") +![Rule configuration](../assets/tutorial-retention-03.png "Rule configuration") -Now click the `+ New rule` button twice. +Now click the `+ New rule` button twice. In the upper rule box, select `Load` and `by interval`, and then enter `2015-09-12T12:00:00.000Z/2015-09-13T00:00:00.000Z` in field next to `by interval`. Replicants can remain at 2 in the `_default_tier`. @@ -77,18 +77,18 @@ In the lower rule box, select `Drop` and `forever`. The rules should look like this: -![Set rules](../tutorials/img/tutorial-retention-04.png "Set rules") +![Set rules](../assets/tutorial-retention-04.png "Set rules") Now click `Next`. The rule configuration process will ask for a user name and comment, for change logging purposes. You can enter `tutorial` for both. Now click `Save`. You can see the new rules in the datasources view: -![New rules](../tutorials/img/tutorial-retention-05.png "New rules") +![New rules](../assets/tutorial-retention-05.png "New rules") Give the cluster a few minutes to apply the rule change, and go to the [segments view](http://localhost:8888/unified-console.html#segments) in the Druid Console. The segments for the first 12 hours of 2015-09-12 are now gone: -![New segments](../tutorials/img/tutorial-retention-06.png "New segments") +![New segments](../assets/tutorial-retention-06.png "New segments") The resulting retention rule chain is the following: @@ -100,16 +100,16 @@ The resulting retention rule chain is the following: The rule chain is evaluated from top to bottom, with the default rule chain always added at the bottom. -The tutorial rule chain we just created loads data if it is within the specified 12 hour interval. +The tutorial rule chain we just created loads data if it is within the specified 12 hour interval. If data is not within the 12 hour interval, the rule chain evaluates `dropForever` next, which will drop any data. The `dropForever` terminates the rule chain, effectively overriding the default `loadForever` rule, which will never be reached in this rule chain. -Note that in this tutorial we defined a load rule on a specific interval. +Note that in this tutorial we defined a load rule on a specific interval. If instead you want to retain data based on how old it is (e.g., retain data that ranges from 3 months in the past to the present time), you would define a Period load rule instead. ## Further reading -* [Load rules](../operations/rule-configuration.html) +* [Load rules](../operations/rule-configuration.md) diff --git a/docs/content/tutorials/tutorial-rollup.md b/docs/tutorials/tutorial-rollup.md similarity index 97% rename from docs/content/tutorials/tutorial-rollup.md rename to docs/tutorials/tutorial-rollup.md index e4ca65818a4c..4831618f4357 100644 --- a/docs/content/tutorials/tutorial-rollup.md +++ b/docs/tutorials/tutorial-rollup.md @@ -1,6 +1,7 @@ --- -layout: doc_page +id: tutorial-rollup title: "Tutorial: Roll-up" +sidebar_label: "Roll-up" --- -# Tutorial: Roll-up Apache Druid (incubating) can summarize raw data at ingestion time using a process we refer to as "roll-up". Roll-up is a first-level aggregation operation over a selected set of columns that reduces the size of stored segments. This tutorial will demonstrate the effects of roll-up on an example dataset. -For this tutorial, we'll assume you've already downloaded Druid as described in +For this tutorial, we'll assume you've already downloaded Druid as described in the [single-machine quickstart](index.html) and have it running on your local machine. -It will also be helpful to have finished [Tutorial: Loading a file](../tutorials/tutorial-batch.html) and [Tutorial: Querying data](../tutorials/tutorial-query.html). +It will also be helpful to have finished [Tutorial: Loading a file](../tutorials/tutorial-batch.md) and [Tutorial: Querying data](../tutorials/tutorial-query.md). ## Example data @@ -108,7 +108,7 @@ We'll ingest this data using the following ingestion task spec, located at `quic Roll-up has been enabled by setting `"rollup" : true` in the `granularitySpec`. -Note that we have `srcIP` and `dstIP` defined as dimensions, a longSum metric is defined for the `packets` and `bytes` columns, and the `queryGranularity` has been defined as `minute`. +Note that we have `srcIP` and `dstIP` defined as dimensions, a longSum metric is defined for the `packets` and `bytes` columns, and the `queryGranularity` has been defined as `minute`. We will see how these definitions are used after we load this data. @@ -142,7 +142,7 @@ dsql> select * from "rollup-tutorial"; └──────────────────────────┴────────┴───────┴─────────┴─────────┴─────────┘ Retrieved 5 rows in 1.18s. -dsql> +dsql> ``` Let's look at the three events in the original input data that occurred during `2018-01-01T01:01`: diff --git a/docs/content/tutorials/tutorial-transform-spec.md b/docs/tutorials/tutorial-transform-spec.md similarity index 96% rename from docs/content/tutorials/tutorial-transform-spec.md rename to docs/tutorials/tutorial-transform-spec.md index b30eebbdaccf..b917df81e985 100644 --- a/docs/content/tutorials/tutorial-transform-spec.md +++ b/docs/tutorials/tutorial-transform-spec.md @@ -1,6 +1,7 @@ --- -layout: doc_page +id: tutorial-transform-spec title: "Tutorial: Transforming input data" +sidebar_label: "Transforming input data" --- -# Tutorial: Transforming input data This tutorial will demonstrate how to use transform specs to filter and transform input data during ingestion. -For this tutorial, we'll assume you've already downloaded Apache Druid (incubating) as described in +For this tutorial, we'll assume you've already downloaded Apache Druid (incubating) as described in the [single-machine quickstart](index.html) and have it running on your local machine. -It will also be helpful to have finished [Tutorial: Loading a file](../tutorials/tutorial-batch.html) and [Tutorial: Querying data](../tutorials/tutorial-query.html). +It will also be helpful to have finished [Tutorial: Loading a file](../tutorials/tutorial-batch.md) and [Tutorial: Querying data](../tutorials/tutorial-query.md). ## Sample data diff --git a/docs/content/tutorials/tutorial-update-data.md b/docs/tutorials/tutorial-update-data.md similarity index 96% rename from docs/content/tutorials/tutorial-update-data.md rename to docs/tutorials/tutorial-update-data.md index ce0abfc8f2fd..e9435cfcb925 100644 --- a/docs/content/tutorials/tutorial-update-data.md +++ b/docs/tutorials/tutorial-update-data.md @@ -1,6 +1,7 @@ --- -layout: doc_page +id: tutorial-update-data title: "Tutorial: Updating existing data" +sidebar_label: "Updating existing data" --- -# Tutorial: Updating existing data This tutorial demonstrates how to update existing data, showing both overwrites and appends. -For this tutorial, we'll assume you've already downloaded Apache Druid (incubating) as described in -the [single-machine quickstart](index.html) and have it running on your local machine. +For this tutorial, we'll assume you've already downloaded Apache Druid (incubating) as described in +the [single-machine quickstart](index.html) and have it running on your local machine. -It will also be helpful to have finished [Tutorial: Loading a file](../tutorials/tutorial-batch.html), [Tutorial: Querying data](../tutorials/tutorial-query.html), and [Tutorial: Rollup](../tutorials/tutorial-rollup.html). +It will also be helpful to have finished [Tutorial: Loading a file](../tutorials/tutorial-batch.md), [Tutorial: Querying data](../tutorials/tutorial-query.md), and [Tutorial: Rollup](../tutorials/tutorial-rollup.md). ## Overwrite @@ -50,7 +50,7 @@ bin/post-index-task --file quickstart/tutorial/updates-init-index.json --url htt We have three initial rows containing an "animal" dimension and "number" metric: ```bash -dsql> select * from "updates-tutorial"; +dsql> select * from "updates-tutorial"; ┌──────────────────────────┬──────────┬───────┬────────┐ │ __time │ animal │ count │ number │ ├──────────────────────────┼──────────┼───────┼────────┤ diff --git a/web-console/script/create-sql-function-doc.js b/web-console/script/create-sql-function-doc.js index f8dd6380a385..785e86db740f 100755 --- a/web-console/script/create-sql-function-doc.js +++ b/web-console/script/create-sql-function-doc.js @@ -20,7 +20,7 @@ const fs = require('fs-extra'); -const readfile = '../docs/content/querying/sql.md'; +const readfile = '../docs/querying/sql.md'; const writefile = 'lib/sql-function-doc.ts'; const readDoc = async () => { diff --git a/website/.gitignore b/website/.gitignore new file mode 100644 index 000000000000..b2cf7aa8fc7b --- /dev/null +++ b/website/.gitignore @@ -0,0 +1,3 @@ +.idea/ +build/ +node_modules/ diff --git a/docs/index.html b/website/README.md similarity index 81% rename from docs/index.html rename to website/README.md index ce7975432fb3..495879685061 100644 --- a/docs/index.html +++ b/website/README.md @@ -1,4 +1,3 @@ - - - - - - - +# Druid doc builder + +This website was created with [Docusaurus](https://docusaurus.io/). + +To edit this documentation run: + +`npm install` + +Then run + +`npm start` diff --git a/website/core/Footer.js b/website/core/Footer.js new file mode 100644 index 000000000000..13fe7a040f5a --- /dev/null +++ b/website/core/Footer.js @@ -0,0 +1,82 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you 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. + */ + +const React = require('react'); + +class Footer extends React.Component { + render() { + return ( + + ); + } +} + +module.exports = Footer; diff --git a/website/i18n/en.json b/website/i18n/en.json new file mode 100644 index 000000000000..cab6bf283440 --- /dev/null +++ b/website/i18n/en.json @@ -0,0 +1,550 @@ +{ + "_comment": "This file is auto-generated by write-translations.js", + "localized-strings": { + "next": "Next", + "previous": "Previous", + "tagline": "A fast analytical database", + "docs": { + "comparisons/druid-vs-elasticsearch": { + "title": "Apache Druid vs Elasticsearch" + }, + "comparisons/druid-vs-key-value": { + "title": "Apache Druid vs. Key/Value Stores (HBase/Cassandra/OpenTSDB)" + }, + "comparisons/druid-vs-kudu": { + "title": "Apache Druid vs Kudu" + }, + "comparisons/druid-vs-redshift": { + "title": "Apache Druid vs Redshift" + }, + "comparisons/druid-vs-spark": { + "title": "Apache Druid vs Spark" + }, + "comparisons/druid-vs-sql-on-hadoop": { + "title": "Apache Druid vs SQL-on-Hadoop" + }, + "configuration/index": { + "title": "Configuration reference" + }, + "configuration/logging": { + "title": "Logging" + }, + "dependencies/deep-storage": { + "title": "Deep storage" + }, + "dependencies/metadata-storage": { + "title": "Metadata storage" + }, + "dependencies/zookeeper": { + "title": "ZooKeeper" + }, + "design/architecture": { + "title": "Design" + }, + "design/auth": { + "title": "Authentication and Authorization" + }, + "design/broker": { + "title": "Broker" + }, + "design/coordinator": { + "title": "Coordinator Process" + }, + "design/historical": { + "title": "Historical Process" + }, + "design/index": { + "title": "Introduction to Apache Druid" + }, + "design/indexer": { + "title": "Indexer Process" + }, + "design/indexing-service": { + "title": "Indexing Service" + }, + "design/middlemanager": { + "title": "MiddleManager Process" + }, + "design/overlord": { + "title": "Overlord Process" + }, + "design/peons": { + "title": "Peons" + }, + "design/processes": { + "title": "Processes and servers" + }, + "design/router": { + "title": "Router Process" + }, + "design/segments": { + "title": "Segments" + }, + "development/build": { + "title": "Build from source" + }, + "development/experimental": { + "title": "Experimental features" + }, + "development/extensions-contrib/ambari-metrics-emitter": { + "title": "Ambari Metrics Emitter" + }, + "development/extensions-contrib/azure": { + "title": "Microsoft Azure" + }, + "development/extensions-contrib/cassandra": { + "title": "Apache Cassandra" + }, + "development/extensions-contrib/cloudfiles": { + "title": "Rackspace Cloud Files" + }, + "development/extensions-contrib/distinctcount": { + "title": "DistinctCount Aggregator" + }, + "development/extensions-contrib/google": { + "title": "Google Cloud Storage" + }, + "development/extensions-contrib/graphite": { + "title": "Graphite Emitter" + }, + "development/extensions-contrib/influx": { + "title": "InfluxDB Line Protocol Parser" + }, + "development/extensions-contrib/influxdb-emitter": { + "title": "InfluxDB Emitter" + }, + "development/extensions-contrib/kafka-emitter": { + "title": "Kafka Emitter" + }, + "development/extensions-contrib/materialized-view": { + "title": "Materialized View" + }, + "development/extensions-contrib/momentsketch-quantiles": { + "title": "Moment Sketches for Approximate Quantiles module" + }, + "development/extensions-contrib/moving-average-query": { + "title": "development/extensions-contrib/moving-average-query" + }, + "development/extensions-contrib/opentsdb-emitter": { + "title": "OpenTSDB Emitter" + }, + "development/extensions-contrib/redis-cache": { + "title": "Druid Redis Cache" + }, + "development/extensions-contrib/sqlserver": { + "title": "Microsoft SQLServer" + }, + "development/extensions-contrib/statsd": { + "title": "StatsD Emitter" + }, + "development/extensions-contrib/tdigestsketch-quantiles": { + "title": "T-Digest Quantiles Sketch module" + }, + "development/extensions-contrib/thrift": { + "title": "Thrift" + }, + "development/extensions-contrib/time-min-max": { + "title": "Timestamp Min/Max aggregators" + }, + "development/extensions-core/approximate-histograms": { + "title": "Approximate Histogram aggregators" + }, + "development/extensions-core/avro": { + "title": "Apache Avro" + }, + "development/extensions-core/bloom-filter": { + "title": "Bloom Filter" + }, + "development/extensions-core/datasketches-extension": { + "title": "DataSketches extension" + }, + "development/extensions-core/datasketches-hll": { + "title": "DataSketches HLL Sketch module" + }, + "development/extensions-core/datasketches-quantiles": { + "title": "DataSketches Quantiles Sketch module" + }, + "development/extensions-core/datasketches-theta": { + "title": "DataSketches Theta Sketch module" + }, + "development/extensions-core/datasketches-tuple": { + "title": "DataSketches Tuple Sketch module" + }, + "development/extensions-core/druid-basic-security": { + "title": "Basic Security" + }, + "development/extensions-core/druid-kerberos": { + "title": "Kerberos" + }, + "development/extensions-core/druid-lookups": { + "title": "Cached Lookup Module" + }, + "development/extensions-core/examples": { + "title": "Extension Examples" + }, + "development/extensions-core/hdfs": { + "title": "HDFS" + }, + "development/extensions-core/kafka-extraction-namespace": { + "title": "Apache Kafka Lookups" + }, + "development/extensions-core/kafka-ingestion": { + "title": "Apache Kafka ingestion", + "sidebar_label": "Apache Kafka" + }, + "development/extensions-core/kinesis-ingestion": { + "title": "Amazon Kinesis ingestion", + "sidebar_label": "Amazon Kinesis" + }, + "development/extensions-core/lookups-cached-global": { + "title": "Globally Cached Lookups" + }, + "development/extensions-core/mysql": { + "title": "MySQL Metadata Store" + }, + "development/extensions-core/orc": { + "title": "ORC Extension" + }, + "development/extensions-core/parquet": { + "title": "Apache Parquet Extension" + }, + "development/extensions-core/postgresql": { + "title": "PostgreSQL Metadata Store" + }, + "development/extensions-core/protobuf": { + "title": "Protobuf" + }, + "development/extensions-core/s3": { + "title": "S3-compatible" + }, + "development/extensions-core/simple-client-sslcontext": { + "title": "Simple SSLContext Provider Module" + }, + "development/extensions-core/stats": { + "title": "Stats aggregator" + }, + "development/extensions-core/test-stats": { + "title": "Test Stats Aggregators" + }, + "development/extensions": { + "title": "Extensions" + }, + "development/geo": { + "title": "Spatial filters" + }, + "development/integrating-druid-with-other-technologies": { + "title": "Integrating Apache Druid with other technologies", + "sidebar_label": "Integrating with other technologies" + }, + "development/javascript": { + "title": "JavaScript programming guide", + "sidebar_label": "JavaScript functionality" + }, + "development/modules": { + "title": "Creating extensions" + }, + "development/overview": { + "title": "Developing on Apache Druid", + "sidebar_label": "Developing on Druid" + }, + "development/versioning": { + "title": "Versioning" + }, + "ingestion/data-formats": { + "title": "Data formats" + }, + "ingestion/data-management": { + "title": "Data management" + }, + "ingestion/faq": { + "title": "Ingestion troubleshooting FAQ", + "sidebar_label": "Troubleshooting FAQ" + }, + "ingestion/hadoop": { + "title": "Hadoop-based ingestion", + "sidebar_label": "Hadoop-based" + }, + "ingestion/index": { + "title": "Ingestion" + }, + "ingestion/native-batch": { + "title": "Native batch ingestion", + "sidebar_label": "Native batch" + }, + "ingestion/schema-design": { + "title": "Schema design tips" + }, + "ingestion/standalone-realtime": { + "title": "Realtime Process" + }, + "ingestion/tasks": { + "title": "Task reference" + }, + "ingestion/tranquility": { + "title": "Tranquility" + }, + "misc/math-expr": { + "title": "Expressions" + }, + "misc/papers-and-talks": { + "title": "Papers" + }, + "operations/alerts": { + "title": "Alerts" + }, + "operations/api-reference": { + "title": "API reference" + }, + "operations/basic-cluster-tuning": { + "title": "Basic cluster tuning" + }, + "operations/deep-storage-migration": { + "title": "Deep storage migration" + }, + "operations/druid-console": { + "title": "Web console" + }, + "operations/dump-segment": { + "title": "dump-segment tool" + }, + "operations/export-metadata": { + "title": "Export Metadata Tool" + }, + "operations/getting-started": { + "title": "Getting started with Apache Druid" + }, + "operations/high-availability": { + "title": "High availability" + }, + "operations/http-compression": { + "title": "HTTP compression" + }, + "operations/insert-segment-to-db": { + "title": "insert-segment-to-db tool" + }, + "operations/management-uis": { + "title": "Management UIs" + }, + "operations/metadata-migration": { + "title": "Metadata Migration" + }, + "operations/metrics": { + "title": "Metrics" + }, + "operations/other-hadoop": { + "title": "Working with different versions of Apache Hadoop" + }, + "operations/password-provider": { + "title": "Password providers" + }, + "operations/pull-deps": { + "title": "pull-deps tool" + }, + "operations/recommendations": { + "title": "Recommendations" + }, + "operations/reset-cluster": { + "title": "reset-cluster tool" + }, + "operations/rolling-updates": { + "title": "Rolling updates" + }, + "operations/rule-configuration": { + "title": "Retaining or automatically dropping data" + }, + "operations/segment-optimization": { + "title": "Segment Size Optimization" + }, + "operations/single-server": { + "title": "Single server deployment" + }, + "operations/tls-support": { + "title": "TLS support" + }, + "operations/use_sbt_to_build_fat_jar": { + "title": "Content for build.sbt" + }, + "querying/aggregations": { + "title": "Aggregations" + }, + "querying/caching": { + "title": "Query caching" + }, + "querying/datasource": { + "title": "Datasources" + }, + "querying/datasourcemetadataquery": { + "title": "DatasourceMetadata queries", + "sidebar_label": "DatasourceMetadata" + }, + "querying/dimensionspecs": { + "title": "Transforming Dimension Values" + }, + "querying/filters": { + "title": "Query Filters" + }, + "querying/granularities": { + "title": "Aggregation Granularity" + }, + "querying/groupbyquery": { + "title": "GroupBy queries", + "sidebar_label": "GroupBy" + }, + "querying/having": { + "title": "Filter groupBy query results" + }, + "querying/hll-old": { + "title": "Cardinality/HyperUnique aggregators" + }, + "querying/joins": { + "title": "Joins" + }, + "querying/limitspec": { + "title": "Sort groupBy query results" + }, + "querying/lookups": { + "title": "Lookups" + }, + "querying/multi-value-dimensions": { + "title": "Multi-value dimensions" + }, + "querying/multitenancy": { + "title": "Multitenancy considerations" + }, + "querying/post-aggregations": { + "title": "Post-Aggregations" + }, + "querying/query-context": { + "title": "Query context" + }, + "querying/querying": { + "title": "Native queries", + "sidebar_label": "Making native queries" + }, + "querying/scan-query": { + "title": "Scan queries", + "sidebar_label": "Scan" + }, + "querying/searchquery": { + "title": "Search queries", + "sidebar_label": "Search" + }, + "querying/searchqueryspec": { + "title": "Refining search queries" + }, + "querying/segmentmetadataquery": { + "title": "SegmentMetadata queries", + "sidebar_label": "SegmentMetadata" + }, + "querying/select-query": { + "title": "Select queries", + "sidebar_label": "Select" + }, + "querying/sorting-orders": { + "title": "Sorting Orders" + }, + "querying/sql": { + "title": "SQL", + "sidebar_label": "Druid SQL" + }, + "querying/timeboundaryquery": { + "title": "TimeBoundary queries", + "sidebar_label": "TimeBoundary" + }, + "querying/timeseriesquery": { + "title": "Timeseries queries", + "sidebar_label": "Timeseries" + }, + "querying/topnmetricspec": { + "title": "TopNMetricSpec" + }, + "querying/topnquery": { + "title": "TopN queries", + "sidebar_label": "TopN" + }, + "querying/virtual-columns": { + "title": "Virtual Columns" + }, + "tutorials/cluster": { + "title": "Clustered deployment" + }, + "tutorials/index": { + "title": "Quickstart" + }, + "tutorials/tutorial-batch-hadoop": { + "title": "Tutorial: Load batch data using Apache Hadoop", + "sidebar_label": "Load from Apache Hadoop" + }, + "tutorials/tutorial-batch": { + "title": "Tutorial: Loading a file", + "sidebar_label": "Loading files natively" + }, + "tutorials/tutorial-compaction": { + "title": "Tutorial: Compacting segments", + "sidebar_label": "Compacting segments" + }, + "tutorials/tutorial-delete-data": { + "title": "Tutorial: Deleting data", + "sidebar_label": "Deleting data" + }, + "tutorials/tutorial-ingestion-spec": { + "title": "Tutorial: Writing an ingestion spec", + "sidebar_label": "Writing an ingestion spec" + }, + "tutorials/tutorial-kafka": { + "title": "Tutorial: Load streaming data from Apache Kafka", + "sidebar_label": "Load from Apache Kafka" + }, + "tutorials/tutorial-kerberos-hadoop": { + "title": "Configuring Apache Druid to use Kerberized Apache Hadoop as deep storage", + "sidebar_label": "Kerberized HDFS deep storage" + }, + "tutorials/tutorial-query": { + "title": "Tutorial: Querying data", + "sidebar_label": "Querying data" + }, + "tutorials/tutorial-retention": { + "title": "Tutorial: Configuring data retention", + "sidebar_label": "Configuring data retention" + }, + "tutorials/tutorial-rollup": { + "title": "Tutorial: Roll-up", + "sidebar_label": "Roll-up" + }, + "tutorials/tutorial-transform-spec": { + "title": "Tutorial: Transforming input data", + "sidebar_label": "Transforming input data" + }, + "tutorials/tutorial-update-data": { + "title": "Tutorial: Updating existing data", + "sidebar_label": "Updating existing data" + } + }, + "links": { + "Technology": "Technology", + "Use Cases": "Use Cases", + "Powered By": "Powered By", + "Docs": "Docs", + "Community": "Community", + "Apache": "Apache", + "Download": "Download" + }, + "categories": { + "Getting started": "Getting started", + "Tutorials": "Tutorials", + "Design": "Design", + "Data ingestion": "Data ingestion", + "Querying": "Querying", + "Configuration": "Configuration", + "Operations": "Operations", + "Development": "Development", + "Misc": "Misc", + "Hidden": "Hidden" + } + }, + "pages-strings": { + "Help Translate|recruit community translators for your project": "Help Translate", + "Edit this Doc|recruitment message asking to edit the doc source": "Edit", + "Translate this Doc|recruitment message asking to translate the docs": "Translate" + } +} diff --git a/website/package-lock.json b/website/package-lock.json new file mode 100644 index 000000000000..7689d7a9f1b7 --- /dev/null +++ b/website/package-lock.json @@ -0,0 +1,10136 @@ +{ + "requires": true, + "lockfileVersion": 1, + "dependencies": { + "@babel/code-frame": { + "version": "7.5.5", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.5.5.tgz", + "integrity": "sha512-27d4lZoomVyo51VegxI20xZPuSHusqbQag/ztrBC7wegWoQ1nLREPVSKSW8byhTlzTKyNE4ifaTA6lCp7JjpFw==", + "dev": true, + "requires": { + "@babel/highlight": "^7.0.0" + } + }, + "@babel/core": { + "version": "7.5.5", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.5.5.tgz", + "integrity": "sha512-i4qoSr2KTtce0DmkuuQBV4AuQgGPUcPXMr9L5MyYAtk06z068lQ10a4O009fe5OB/DfNV+h+qqT7ddNV8UnRjg==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.5.5", + "@babel/generator": "^7.5.5", + "@babel/helpers": "^7.5.5", + "@babel/parser": "^7.5.5", + "@babel/template": "^7.4.4", + "@babel/traverse": "^7.5.5", + "@babel/types": "^7.5.5", + "convert-source-map": "^1.1.0", + "debug": "^4.1.0", + "json5": "^2.1.0", + "lodash": "^4.17.13", + "resolve": "^1.3.2", + "semver": "^5.4.1", + "source-map": "^0.5.0" + } + }, + "@babel/generator": { + "version": "7.5.5", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.5.5.tgz", + "integrity": "sha512-ETI/4vyTSxTzGnU2c49XHv2zhExkv9JHLTwDAFz85kmcwuShvYG2H08FwgIguQf4JC75CBnXAUM5PqeF4fj0nQ==", + "dev": true, + "requires": { + "@babel/types": "^7.5.5", + "jsesc": "^2.5.1", + "lodash": "^4.17.13", + "source-map": "^0.5.0", + "trim-right": "^1.0.1" + } + }, + "@babel/helper-annotate-as-pure": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.0.0.tgz", + "integrity": "sha512-3UYcJUj9kvSLbLbUIfQTqzcy5VX7GRZ/CCDrnOaZorFFM01aXp1+GJwuFGV4NDDoAS+mOUyHcO6UD/RfqOks3Q==", + "dev": true, + "requires": { + "@babel/types": "^7.0.0" + } + }, + "@babel/helper-builder-binary-assignment-operator-visitor": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.1.0.tgz", + "integrity": "sha512-qNSR4jrmJ8M1VMM9tibvyRAHXQs2PmaksQF7c1CGJNipfe3D8p+wgNwgso/P2A2r2mdgBWAXljNWR0QRZAMW8w==", + "dev": true, + "requires": { + "@babel/helper-explode-assignable-expression": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "@babel/helper-builder-react-jsx": { + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-react-jsx/-/helper-builder-react-jsx-7.3.0.tgz", + "integrity": "sha512-MjA9KgwCuPEkQd9ncSXvSyJ5y+j2sICHyrI0M3L+6fnS4wMSNDc1ARXsbTfbb2cXHn17VisSnU/sHFTCxVxSMw==", + "dev": true, + "requires": { + "@babel/types": "^7.3.0", + "esutils": "^2.0.0" + } + }, + "@babel/helper-call-delegate": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@babel/helper-call-delegate/-/helper-call-delegate-7.4.4.tgz", + "integrity": "sha512-l79boDFJ8S1c5hvQvG+rc+wHw6IuH7YldmRKsYtpbawsxURu/paVy57FZMomGK22/JckepaikOkY0MoAmdyOlQ==", + "dev": true, + "requires": { + "@babel/helper-hoist-variables": "^7.4.4", + "@babel/traverse": "^7.4.4", + "@babel/types": "^7.4.4" + } + }, + "@babel/helper-create-class-features-plugin": { + "version": "7.5.5", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.5.5.tgz", + "integrity": "sha512-ZsxkyYiRA7Bg+ZTRpPvB6AbOFKTFFK4LrvTet8lInm0V468MWCaSYJE+I7v2z2r8KNLtYiV+K5kTCnR7dvyZjg==", + "dev": true, + "requires": { + "@babel/helper-function-name": "^7.1.0", + "@babel/helper-member-expression-to-functions": "^7.5.5", + "@babel/helper-optimise-call-expression": "^7.0.0", + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/helper-replace-supers": "^7.5.5", + "@babel/helper-split-export-declaration": "^7.4.4" + } + }, + "@babel/helper-define-map": { + "version": "7.5.5", + "resolved": "https://registry.npmjs.org/@babel/helper-define-map/-/helper-define-map-7.5.5.tgz", + "integrity": "sha512-fTfxx7i0B5NJqvUOBBGREnrqbTxRh7zinBANpZXAVDlsZxYdclDp467G1sQ8VZYMnAURY3RpBUAgOYT9GfzHBg==", + "dev": true, + "requires": { + "@babel/helper-function-name": "^7.1.0", + "@babel/types": "^7.5.5", + "lodash": "^4.17.13" + } + }, + "@babel/helper-explode-assignable-expression": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.1.0.tgz", + "integrity": "sha512-NRQpfHrJ1msCHtKjbzs9YcMmJZOg6mQMmGRB+hbamEdG5PNpaSm95275VD92DvJKuyl0s2sFiDmMZ+EnnvufqA==", + "dev": true, + "requires": { + "@babel/traverse": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "@babel/helper-function-name": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.1.0.tgz", + "integrity": "sha512-A95XEoCpb3TO+KZzJ4S/5uW5fNe26DjBGqf1o9ucyLyCmi1dXq/B3c8iaWTfBk3VvetUxl16e8tIrd5teOCfGw==", + "dev": true, + "requires": { + "@babel/helper-get-function-arity": "^7.0.0", + "@babel/template": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "@babel/helper-get-function-arity": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0.tgz", + "integrity": "sha512-r2DbJeg4svYvt3HOS74U4eWKsUAMRH01Z1ds1zx8KNTPtpTL5JAsdFv8BNyOpVqdFhHkkRDIg5B4AsxmkjAlmQ==", + "dev": true, + "requires": { + "@babel/types": "^7.0.0" + } + }, + "@babel/helper-hoist-variables": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.4.4.tgz", + "integrity": "sha512-VYk2/H/BnYbZDDg39hr3t2kKyifAm1W6zHRfhx8jGjIHpQEBv9dry7oQ2f3+J703TLu69nYdxsovl0XYfcnK4w==", + "dev": true, + "requires": { + "@babel/types": "^7.4.4" + } + }, + "@babel/helper-member-expression-to-functions": { + "version": "7.5.5", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.5.5.tgz", + "integrity": "sha512-5qZ3D1uMclSNqYcXqiHoA0meVdv+xUEex9em2fqMnrk/scphGlGgg66zjMrPJESPwrFJ6sbfFQYUSa0Mz7FabA==", + "dev": true, + "requires": { + "@babel/types": "^7.5.5" + } + }, + "@babel/helper-module-imports": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.0.0.tgz", + "integrity": "sha512-aP/hlLq01DWNEiDg4Jn23i+CXxW/owM4WpDLFUbpjxe4NS3BhLVZQ5i7E0ZrxuQ/vwekIeciyamgB1UIYxxM6A==", + "dev": true, + "requires": { + "@babel/types": "^7.0.0" + } + }, + "@babel/helper-module-transforms": { + "version": "7.5.5", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.5.5.tgz", + "integrity": "sha512-jBeCvETKuJqeiaCdyaheF40aXnnU1+wkSiUs/IQg3tB85up1LyL8x77ClY8qJpuRJUcXQo+ZtdNESmZl4j56Pw==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.0.0", + "@babel/helper-simple-access": "^7.1.0", + "@babel/helper-split-export-declaration": "^7.4.4", + "@babel/template": "^7.4.4", + "@babel/types": "^7.5.5", + "lodash": "^4.17.13" + } + }, + "@babel/helper-optimise-call-expression": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.0.0.tgz", + "integrity": "sha512-u8nd9NQePYNQV8iPWu/pLLYBqZBa4ZaY1YWRFMuxrid94wKI1QNt67NEZ7GAe5Kc/0LLScbim05xZFWkAdrj9g==", + "dev": true, + "requires": { + "@babel/types": "^7.0.0" + } + }, + "@babel/helper-plugin-utils": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.0.0.tgz", + "integrity": "sha512-CYAOUCARwExnEixLdB6sDm2dIJ/YgEAKDM1MOeMeZu9Ld/bDgVo8aiWrXwcY7OBh+1Ea2uUcVRcxKk0GJvW7QA==", + "dev": true + }, + "@babel/helper-regex": { + "version": "7.5.5", + "resolved": "https://registry.npmjs.org/@babel/helper-regex/-/helper-regex-7.5.5.tgz", + "integrity": "sha512-CkCYQLkfkiugbRDO8eZn6lRuR8kzZoGXCg3149iTk5se7g6qykSpy3+hELSwquhu+TgHn8nkLiBwHvNX8Hofcw==", + "dev": true, + "requires": { + "lodash": "^4.17.13" + } + }, + "@babel/helper-remap-async-to-generator": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.1.0.tgz", + "integrity": "sha512-3fOK0L+Fdlg8S5al8u/hWE6vhufGSn0bN09xm2LXMy//REAF8kDCrYoOBKYmA8m5Nom+sV9LyLCwrFynA8/slg==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.0.0", + "@babel/helper-wrap-function": "^7.1.0", + "@babel/template": "^7.1.0", + "@babel/traverse": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "@babel/helper-replace-supers": { + "version": "7.5.5", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.5.5.tgz", + "integrity": "sha512-XvRFWrNnlsow2u7jXDuH4jDDctkxbS7gXssrP4q2nUD606ukXHRvydj346wmNg+zAgpFx4MWf4+usfC93bElJg==", + "dev": true, + "requires": { + "@babel/helper-member-expression-to-functions": "^7.5.5", + "@babel/helper-optimise-call-expression": "^7.0.0", + "@babel/traverse": "^7.5.5", + "@babel/types": "^7.5.5" + } + }, + "@babel/helper-simple-access": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.1.0.tgz", + "integrity": "sha512-Vk+78hNjRbsiu49zAPALxTb+JUQCz1aolpd8osOF16BGnLtseD21nbHgLPGUwrXEurZgiCOUmvs3ExTu4F5x6w==", + "dev": true, + "requires": { + "@babel/template": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.4.4.tgz", + "integrity": "sha512-Ro/XkzLf3JFITkW6b+hNxzZ1n5OQ80NvIUdmHspih1XAhtN3vPTuUFT4eQnela+2MaZ5ulH+iyP513KJrxbN7Q==", + "dev": true, + "requires": { + "@babel/types": "^7.4.4" + } + }, + "@babel/helper-wrap-function": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.2.0.tgz", + "integrity": "sha512-o9fP1BZLLSrYlxYEYyl2aS+Flun5gtjTIG8iln+XuEzQTs0PLagAGSXUcqruJwD5fM48jzIEggCKpIfWTcR7pQ==", + "dev": true, + "requires": { + "@babel/helper-function-name": "^7.1.0", + "@babel/template": "^7.1.0", + "@babel/traverse": "^7.1.0", + "@babel/types": "^7.2.0" + } + }, + "@babel/helpers": { + "version": "7.5.5", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.5.5.tgz", + "integrity": "sha512-nRq2BUhxZFnfEn/ciJuhklHvFOqjJUD5wpx+1bxUF2axL9C+v4DE/dmp5sT2dKnpOs4orZWzpAZqlCy8QqE/7g==", + "dev": true, + "requires": { + "@babel/template": "^7.4.4", + "@babel/traverse": "^7.5.5", + "@babel/types": "^7.5.5" + } + }, + "@babel/highlight": { + "version": "7.5.0", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.5.0.tgz", + "integrity": "sha512-7dV4eu9gBxoM0dAnj/BCFDW9LFU0zvTrkq0ugM7pnHEgguOEeOz1so2ZghEdzviYzQEED0r4EAgpsBChKy1TRQ==", + "dev": true, + "requires": { + "chalk": "^2.0.0", + "esutils": "^2.0.2", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.5.5", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.5.5.tgz", + "integrity": "sha512-E5BN68cqR7dhKan1SfqgPGhQ178bkVKpXTPEXnFJBrEt8/DKRZlybmy+IgYLTeN7tp1R5Ccmbm2rBk17sHYU3g==", + "dev": true + }, + "@babel/plugin-proposal-async-generator-functions": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.2.0.tgz", + "integrity": "sha512-+Dfo/SCQqrwx48ptLVGLdE39YtWRuKc/Y9I5Fy0P1DDBB9lsAHpjcEJQt+4IifuSOSTLBKJObJqMvaO1pIE8LQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/helper-remap-async-to-generator": "^7.1.0", + "@babel/plugin-syntax-async-generators": "^7.2.0" + } + }, + "@babel/plugin-proposal-class-properties": { + "version": "7.5.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.5.5.tgz", + "integrity": "sha512-AF79FsnWFxjlaosgdi421vmYG6/jg79bVD0dpD44QdgobzHKuLZ6S3vl8la9qIeSwGi8i1fS0O1mfuDAAdo1/A==", + "dev": true, + "requires": { + "@babel/helper-create-class-features-plugin": "^7.5.5", + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "@babel/plugin-proposal-dynamic-import": { + "version": "7.5.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.5.0.tgz", + "integrity": "sha512-x/iMjggsKTFHYC6g11PL7Qy58IK8H5zqfm9e6hu4z1iH2IRyAp9u9dL80zA6R76yFovETFLKz2VJIC2iIPBuFw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-syntax-dynamic-import": "^7.2.0" + } + }, + "@babel/plugin-proposal-json-strings": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.2.0.tgz", + "integrity": "sha512-MAFV1CA/YVmYwZG0fBQyXhmj0BHCB5egZHCKWIFVv/XCxAeVGIHfos3SwDck4LvCllENIAg7xMKOG5kH0dzyUg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-syntax-json-strings": "^7.2.0" + } + }, + "@babel/plugin-proposal-object-rest-spread": { + "version": "7.5.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.5.5.tgz", + "integrity": "sha512-F2DxJJSQ7f64FyTVl5cw/9MWn6naXGdk3Q3UhDbFEEHv+EilCPoeRD3Zh/Utx1CJz4uyKlQ4uH+bJPbEhMV7Zw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-syntax-object-rest-spread": "^7.2.0" + } + }, + "@babel/plugin-proposal-optional-catch-binding": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.2.0.tgz", + "integrity": "sha512-mgYj3jCcxug6KUcX4OBoOJz3CMrwRfQELPQ5560F70YQUBZB7uac9fqaWamKR1iWUzGiK2t0ygzjTScZnVz75g==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-syntax-optional-catch-binding": "^7.2.0" + } + }, + "@babel/plugin-proposal-unicode-property-regex": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.4.4.tgz", + "integrity": "sha512-j1NwnOqMG9mFUOH58JTFsA/+ZYzQLUZ/drqWUqxCYLGeu2JFZL8YrNC9hBxKmWtAuOCHPcRpgv7fhap09Fb4kA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/helper-regex": "^7.4.4", + "regexpu-core": "^4.5.4" + } + }, + "@babel/plugin-syntax-async-generators": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.2.0.tgz", + "integrity": "sha512-1ZrIRBv2t0GSlcwVoQ6VgSLpLgiN/FVQUzt9znxo7v2Ov4jJrs8RY8tv0wvDmFN3qIdMKWrmMMW6yZ0G19MfGg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "@babel/plugin-syntax-dynamic-import": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.2.0.tgz", + "integrity": "sha512-mVxuJ0YroI/h/tbFTPGZR8cv6ai+STMKNBq0f8hFxsxWjl94qqhsb+wXbpNMDPU3cfR1TIsVFzU3nXyZMqyK4w==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "@babel/plugin-syntax-json-strings": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.2.0.tgz", + "integrity": "sha512-5UGYnMSLRE1dqqZwug+1LISpA403HzlSfsg6P9VXU6TBjcSHeNlw4DxDx7LgpF+iKZoOG/+uzqoRHTdcUpiZNg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "@babel/plugin-syntax-jsx": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.2.0.tgz", + "integrity": "sha512-VyN4QANJkRW6lDBmENzRszvZf3/4AXaj9YR7GwrWeeN9tEBPuXbmDYVU9bYBN0D70zCWVwUy0HWq2553VCb6Hw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "@babel/plugin-syntax-object-rest-spread": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.2.0.tgz", + "integrity": "sha512-t0JKGgqk2We+9may3t0xDdmneaXmyxq0xieYcKHxIsrJO64n1OiMWNUtc5gQK1PA0NpdCRrtZp4z+IUaKugrSA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "@babel/plugin-syntax-optional-catch-binding": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.2.0.tgz", + "integrity": "sha512-bDe4xKNhb0LI7IvZHiA13kff0KEfaGX/Hv4lMA9+7TEc63hMNvfKo6ZFpXhKuEp+II/q35Gc4NoMeDZyaUbj9w==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "@babel/plugin-transform-arrow-functions": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.2.0.tgz", + "integrity": "sha512-ER77Cax1+8/8jCB9fo4Ud161OZzWN5qawi4GusDuRLcDbDG+bIGYY20zb2dfAFdTRGzrfq2xZPvF0R64EHnimg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "@babel/plugin-transform-async-to-generator": { + "version": "7.5.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.5.0.tgz", + "integrity": "sha512-mqvkzwIGkq0bEF1zLRRiTdjfomZJDV33AH3oQzHVGkI2VzEmXLpKKOBvEVaFZBJdN0XTyH38s9j/Kiqr68dggg==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.0.0", + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/helper-remap-async-to-generator": "^7.1.0" + } + }, + "@babel/plugin-transform-block-scoped-functions": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.2.0.tgz", + "integrity": "sha512-ntQPR6q1/NKuphly49+QiQiTN0O63uOwjdD6dhIjSWBI5xlrbUFh720TIpzBhpnrLfv2tNH/BXvLIab1+BAI0w==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "@babel/plugin-transform-block-scoping": { + "version": "7.5.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.5.5.tgz", + "integrity": "sha512-82A3CLRRdYubkG85lKwhZB0WZoHxLGsJdux/cOVaJCJpvYFl1LVzAIFyRsa7CvXqW8rBM4Zf3Bfn8PHt5DP0Sg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "lodash": "^4.17.13" + } + }, + "@babel/plugin-transform-classes": { + "version": "7.5.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.5.5.tgz", + "integrity": "sha512-U2htCNK/6e9K7jGyJ++1p5XRU+LJjrwtoiVn9SzRlDT2KubcZ11OOwy3s24TjHxPgxNwonCYP7U2K51uVYCMDg==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.0.0", + "@babel/helper-define-map": "^7.5.5", + "@babel/helper-function-name": "^7.1.0", + "@babel/helper-optimise-call-expression": "^7.0.0", + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/helper-replace-supers": "^7.5.5", + "@babel/helper-split-export-declaration": "^7.4.4", + "globals": "^11.1.0" + } + }, + "@babel/plugin-transform-computed-properties": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.2.0.tgz", + "integrity": "sha512-kP/drqTxY6Xt3NNpKiMomfgkNn4o7+vKxK2DDKcBG9sHj51vHqMBGy8wbDS/J4lMxnqs153/T3+DmCEAkC5cpA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "@babel/plugin-transform-destructuring": { + "version": "7.5.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.5.0.tgz", + "integrity": "sha512-YbYgbd3TryYYLGyC7ZR+Tq8H/+bCmwoaxHfJHupom5ECstzbRLTch6gOQbhEY9Z4hiCNHEURgq06ykFv9JZ/QQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "@babel/plugin-transform-dotall-regex": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.4.4.tgz", + "integrity": "sha512-P05YEhRc2h53lZDjRPk/OektxCVevFzZs2Gfjd545Wde3k+yFDbXORgl2e0xpbq8mLcKJ7Idss4fAg0zORN/zg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/helper-regex": "^7.4.4", + "regexpu-core": "^4.5.4" + } + }, + "@babel/plugin-transform-duplicate-keys": { + "version": "7.5.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.5.0.tgz", + "integrity": "sha512-igcziksHizyQPlX9gfSjHkE2wmoCH3evvD2qR5w29/Dk0SMKE/eOI7f1HhBdNhR/zxJDqrgpoDTq5YSLH/XMsQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "@babel/plugin-transform-exponentiation-operator": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.2.0.tgz", + "integrity": "sha512-umh4hR6N7mu4Elq9GG8TOu9M0bakvlsREEC+ialrQN6ABS4oDQ69qJv1VtR3uxlKMCQMCvzk7vr17RHKcjx68A==", + "dev": true, + "requires": { + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.1.0", + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "@babel/plugin-transform-for-of": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.4.4.tgz", + "integrity": "sha512-9T/5Dlr14Z9TIEXLXkt8T1DU7F24cbhwhMNUziN3hB1AXoZcdzPcTiKGRn/6iOymDqtTKWnr/BtRKN9JwbKtdQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "@babel/plugin-transform-function-name": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.4.4.tgz", + "integrity": "sha512-iU9pv7U+2jC9ANQkKeNF6DrPy4GBa4NWQtl6dHB4Pb3izX2JOEvDTFarlNsBj/63ZEzNNIAMs3Qw4fNCcSOXJA==", + "dev": true, + "requires": { + "@babel/helper-function-name": "^7.1.0", + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "@babel/plugin-transform-literals": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.2.0.tgz", + "integrity": "sha512-2ThDhm4lI4oV7fVQ6pNNK+sx+c/GM5/SaML0w/r4ZB7sAneD/piDJtwdKlNckXeyGK7wlwg2E2w33C/Hh+VFCg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "@babel/plugin-transform-member-expression-literals": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.2.0.tgz", + "integrity": "sha512-HiU3zKkSU6scTidmnFJ0bMX8hz5ixC93b4MHMiYebmk2lUVNGOboPsqQvx5LzooihijUoLR/v7Nc1rbBtnc7FA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "@babel/plugin-transform-modules-amd": { + "version": "7.5.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.5.0.tgz", + "integrity": "sha512-n20UsQMKnWrltocZZm24cRURxQnWIvsABPJlw/fvoy9c6AgHZzoelAIzajDHAQrDpuKFFPPcFGd7ChsYuIUMpg==", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.1.0", + "@babel/helper-plugin-utils": "^7.0.0", + "babel-plugin-dynamic-import-node": "^2.3.0" + } + }, + "@babel/plugin-transform-modules-commonjs": { + "version": "7.5.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.5.0.tgz", + "integrity": "sha512-xmHq0B+ytyrWJvQTc5OWAC4ii6Dhr0s22STOoydokG51JjWhyYo5mRPXoi+ZmtHQhZZwuXNN+GG5jy5UZZJxIQ==", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.4.4", + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/helper-simple-access": "^7.1.0", + "babel-plugin-dynamic-import-node": "^2.3.0" + } + }, + "@babel/plugin-transform-modules-systemjs": { + "version": "7.5.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.5.0.tgz", + "integrity": "sha512-Q2m56tyoQWmuNGxEtUyeEkm6qJYFqs4c+XyXH5RAuYxObRNz9Zgj/1g2GMnjYp2EUyEy7YTrxliGCXzecl/vJg==", + "dev": true, + "requires": { + "@babel/helper-hoist-variables": "^7.4.4", + "@babel/helper-plugin-utils": "^7.0.0", + "babel-plugin-dynamic-import-node": "^2.3.0" + } + }, + "@babel/plugin-transform-modules-umd": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.2.0.tgz", + "integrity": "sha512-BV3bw6MyUH1iIsGhXlOK6sXhmSarZjtJ/vMiD9dNmpY8QXFFQTj+6v92pcfy1iqa8DeAfJFwoxcrS/TUZda6sw==", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.1.0", + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.4.5.tgz", + "integrity": "sha512-z7+2IsWafTBbjNsOxU/Iv5CvTJlr5w4+HGu1HovKYTtgJ362f7kBcQglkfmlspKKZ3bgrbSGvLfNx++ZJgCWsg==", + "dev": true, + "requires": { + "regexp-tree": "^0.1.6" + } + }, + "@babel/plugin-transform-new-target": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.4.4.tgz", + "integrity": "sha512-r1z3T2DNGQwwe2vPGZMBNjioT2scgWzK9BCnDEh+46z8EEwXBq24uRzd65I7pjtugzPSj921aM15RpESgzsSuA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "@babel/plugin-transform-object-super": { + "version": "7.5.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.5.5.tgz", + "integrity": "sha512-un1zJQAhSosGFBduPgN/YFNvWVpRuHKU7IHBglLoLZsGmruJPOo6pbInneflUdmq7YvSVqhpPs5zdBvLnteltQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/helper-replace-supers": "^7.5.5" + } + }, + "@babel/plugin-transform-parameters": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.4.4.tgz", + "integrity": "sha512-oMh5DUO1V63nZcu/ZVLQFqiihBGo4OpxJxR1otF50GMeCLiRx5nUdtokd+u9SuVJrvvuIh9OosRFPP4pIPnwmw==", + "dev": true, + "requires": { + "@babel/helper-call-delegate": "^7.4.4", + "@babel/helper-get-function-arity": "^7.0.0", + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "@babel/plugin-transform-property-literals": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.2.0.tgz", + "integrity": "sha512-9q7Dbk4RhgcLp8ebduOpCbtjh7C0itoLYHXd9ueASKAG/is5PQtMR5VJGka9NKqGhYEGn5ITahd4h9QeBMylWQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "@babel/plugin-transform-react-display-name": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.2.0.tgz", + "integrity": "sha512-Htf/tPa5haZvRMiNSQSFifK12gtr/8vwfr+A9y69uF0QcU77AVu4K7MiHEkTxF7lQoHOL0F9ErqgfNEAKgXj7A==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "@babel/plugin-transform-react-jsx": { + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.3.0.tgz", + "integrity": "sha512-a/+aRb7R06WcKvQLOu4/TpjKOdvVEKRLWFpKcNuHhiREPgGRB4TQJxq07+EZLS8LFVYpfq1a5lDUnuMdcCpBKg==", + "dev": true, + "requires": { + "@babel/helper-builder-react-jsx": "^7.3.0", + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-syntax-jsx": "^7.2.0" + } + }, + "@babel/plugin-transform-react-jsx-self": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.2.0.tgz", + "integrity": "sha512-v6S5L/myicZEy+jr6ielB0OR8h+EH/1QFx/YJ7c7Ua+7lqsjj/vW6fD5FR9hB/6y7mGbfT4vAURn3xqBxsUcdg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-syntax-jsx": "^7.2.0" + } + }, + "@babel/plugin-transform-react-jsx-source": { + "version": "7.5.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.5.0.tgz", + "integrity": "sha512-58Q+Jsy4IDCZx7kqEZuSDdam/1oW8OdDX8f+Loo6xyxdfg1yF0GE2XNJQSTZCaMol93+FBzpWiPEwtbMloAcPg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-syntax-jsx": "^7.2.0" + } + }, + "@babel/plugin-transform-regenerator": { + "version": "7.4.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.4.5.tgz", + "integrity": "sha512-gBKRh5qAaCWntnd09S8QC7r3auLCqq5DI6O0DlfoyDjslSBVqBibrMdsqO+Uhmx3+BlOmE/Kw1HFxmGbv0N9dA==", + "dev": true, + "requires": { + "regenerator-transform": "^0.14.0" + } + }, + "@babel/plugin-transform-reserved-words": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.2.0.tgz", + "integrity": "sha512-fz43fqW8E1tAB3DKF19/vxbpib1fuyCwSPE418ge5ZxILnBhWyhtPgz8eh1RCGGJlwvksHkyxMxh0eenFi+kFw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "@babel/plugin-transform-shorthand-properties": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.2.0.tgz", + "integrity": "sha512-QP4eUM83ha9zmYtpbnyjTLAGKQritA5XW/iG9cjtuOI8s1RuL/3V6a3DeSHfKutJQ+ayUfeZJPcnCYEQzaPQqg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "@babel/plugin-transform-spread": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.2.2.tgz", + "integrity": "sha512-KWfky/58vubwtS0hLqEnrWJjsMGaOeSBn90Ezn5Jeg9Z8KKHmELbP1yGylMlm5N6TPKeY9A2+UaSYLdxahg01w==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "@babel/plugin-transform-sticky-regex": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.2.0.tgz", + "integrity": "sha512-KKYCoGaRAf+ckH8gEL3JHUaFVyNHKe3ASNsZ+AlktgHevvxGigoIttrEJb8iKN03Q7Eazlv1s6cx2B2cQ3Jabw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/helper-regex": "^7.0.0" + } + }, + "@babel/plugin-transform-template-literals": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.4.4.tgz", + "integrity": "sha512-mQrEC4TWkhLN0z8ygIvEL9ZEToPhG5K7KDW3pzGqOfIGZ28Jb0POUkeWcoz8HnHvhFy6dwAT1j8OzqN8s804+g==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.0.0", + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "@babel/plugin-transform-typeof-symbol": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.2.0.tgz", + "integrity": "sha512-2LNhETWYxiYysBtrBTqL8+La0jIoQQnIScUJc74OYvUGRmkskNY4EzLCnjHBzdmb38wqtTaixpo1NctEcvMDZw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0" + } + }, + "@babel/plugin-transform-unicode-regex": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.4.4.tgz", + "integrity": "sha512-il+/XdNw01i93+M9J9u4T7/e/Ue/vWfNZE4IRUQjplu2Mqb/AFTDimkw2tdEdSH50wuQXZAbXSql0UphQke+vA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/helper-regex": "^7.4.4", + "regexpu-core": "^4.5.4" + } + }, + "@babel/polyfill": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@babel/polyfill/-/polyfill-7.4.4.tgz", + "integrity": "sha512-WlthFLfhQQhh+A2Gn5NSFl0Huxz36x86Jn+E9OW7ibK8edKPq+KLy4apM1yDpQ8kJOVi1OVjpP4vSDLdrI04dg==", + "dev": true, + "requires": { + "core-js": "^2.6.5", + "regenerator-runtime": "^0.13.2" + } + }, + "@babel/preset-env": { + "version": "7.5.5", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.5.5.tgz", + "integrity": "sha512-GMZQka/+INwsMz1A5UEql8tG015h5j/qjptpKY2gJ7giy8ohzU710YciJB5rcKsWGWHiW3RUnHib0E5/m3Tp3A==", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.0.0", + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-proposal-async-generator-functions": "^7.2.0", + "@babel/plugin-proposal-dynamic-import": "^7.5.0", + "@babel/plugin-proposal-json-strings": "^7.2.0", + "@babel/plugin-proposal-object-rest-spread": "^7.5.5", + "@babel/plugin-proposal-optional-catch-binding": "^7.2.0", + "@babel/plugin-proposal-unicode-property-regex": "^7.4.4", + "@babel/plugin-syntax-async-generators": "^7.2.0", + "@babel/plugin-syntax-dynamic-import": "^7.2.0", + "@babel/plugin-syntax-json-strings": "^7.2.0", + "@babel/plugin-syntax-object-rest-spread": "^7.2.0", + "@babel/plugin-syntax-optional-catch-binding": "^7.2.0", + "@babel/plugin-transform-arrow-functions": "^7.2.0", + "@babel/plugin-transform-async-to-generator": "^7.5.0", + "@babel/plugin-transform-block-scoped-functions": "^7.2.0", + "@babel/plugin-transform-block-scoping": "^7.5.5", + "@babel/plugin-transform-classes": "^7.5.5", + "@babel/plugin-transform-computed-properties": "^7.2.0", + "@babel/plugin-transform-destructuring": "^7.5.0", + "@babel/plugin-transform-dotall-regex": "^7.4.4", + "@babel/plugin-transform-duplicate-keys": "^7.5.0", + "@babel/plugin-transform-exponentiation-operator": "^7.2.0", + "@babel/plugin-transform-for-of": "^7.4.4", + "@babel/plugin-transform-function-name": "^7.4.4", + "@babel/plugin-transform-literals": "^7.2.0", + "@babel/plugin-transform-member-expression-literals": "^7.2.0", + "@babel/plugin-transform-modules-amd": "^7.5.0", + "@babel/plugin-transform-modules-commonjs": "^7.5.0", + "@babel/plugin-transform-modules-systemjs": "^7.5.0", + "@babel/plugin-transform-modules-umd": "^7.2.0", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.4.5", + "@babel/plugin-transform-new-target": "^7.4.4", + "@babel/plugin-transform-object-super": "^7.5.5", + "@babel/plugin-transform-parameters": "^7.4.4", + "@babel/plugin-transform-property-literals": "^7.2.0", + "@babel/plugin-transform-regenerator": "^7.4.5", + "@babel/plugin-transform-reserved-words": "^7.2.0", + "@babel/plugin-transform-shorthand-properties": "^7.2.0", + "@babel/plugin-transform-spread": "^7.2.0", + "@babel/plugin-transform-sticky-regex": "^7.2.0", + "@babel/plugin-transform-template-literals": "^7.4.4", + "@babel/plugin-transform-typeof-symbol": "^7.2.0", + "@babel/plugin-transform-unicode-regex": "^7.4.4", + "@babel/types": "^7.5.5", + "browserslist": "^4.6.0", + "core-js-compat": "^3.1.1", + "invariant": "^2.2.2", + "js-levenshtein": "^1.1.3", + "semver": "^5.5.0" + } + }, + "@babel/preset-react": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.0.0.tgz", + "integrity": "sha512-oayxyPS4Zj+hF6Et11BwuBkmpgT/zMxyuZgFrMeZID6Hdh3dGlk4sHCAhdBCpuCKW2ppBfl2uCCetlrUIJRY3w==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-transform-react-display-name": "^7.0.0", + "@babel/plugin-transform-react-jsx": "^7.0.0", + "@babel/plugin-transform-react-jsx-self": "^7.0.0", + "@babel/plugin-transform-react-jsx-source": "^7.0.0" + } + }, + "@babel/register": { + "version": "7.5.5", + "resolved": "https://registry.npmjs.org/@babel/register/-/register-7.5.5.tgz", + "integrity": "sha512-pdd5nNR+g2qDkXZlW1yRCWFlNrAn2PPdnZUB72zjX4l1Vv4fMRRLwyf+n/idFCLI1UgVGboUU8oVziwTBiyNKQ==", + "dev": true, + "requires": { + "core-js": "^3.0.0", + "find-cache-dir": "^2.0.0", + "lodash": "^4.17.13", + "mkdirp": "^0.5.1", + "pirates": "^4.0.0", + "source-map-support": "^0.5.9" + }, + "dependencies": { + "core-js": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.2.1.tgz", + "integrity": "sha512-Qa5XSVefSVPRxy2XfUC13WbvqkxhkwB3ve+pgCQveNgYzbM/UxZeu1dcOX/xr4UmfUd+muuvsaxilQzCyUurMw==", + "dev": true + } + } + }, + "@babel/template": { + "version": "7.4.4", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.4.4.tgz", + "integrity": "sha512-CiGzLN9KgAvgZsnivND7rkA+AeJ9JB0ciPOD4U59GKbQP2iQl+olF1l76kJOupqidozfZ32ghwBEJDhnk9MEcw==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "@babel/parser": "^7.4.4", + "@babel/types": "^7.4.4" + } + }, + "@babel/traverse": { + "version": "7.5.5", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.5.5.tgz", + "integrity": "sha512-MqB0782whsfffYfSjH4TM+LMjrJnhCNEDMDIjeTpl+ASaUvxcjoiVCo/sM1GhS1pHOXYfWVCYneLjMckuUxDaQ==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.5.5", + "@babel/generator": "^7.5.5", + "@babel/helper-function-name": "^7.1.0", + "@babel/helper-split-export-declaration": "^7.4.4", + "@babel/parser": "^7.5.5", + "@babel/types": "^7.5.5", + "debug": "^4.1.0", + "globals": "^11.1.0", + "lodash": "^4.17.13" + } + }, + "@babel/types": { + "version": "7.5.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.5.5.tgz", + "integrity": "sha512-s63F9nJioLqOlW3UkyMd+BYhXt44YuaFm/VV0VwuteqjYwRrObkU7ra9pY4wAJR3oXi8hJrMcrcJdO/HH33vtw==", + "dev": true, + "requires": { + "esutils": "^2.0.2", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" + } + }, + "@mrmlnc/readdir-enhanced": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz", + "integrity": "sha512-bPHp6Ji8b41szTOcaP63VlnbbO5Ny6dwAATtY6JTjh5N2OLrb5Qk/Th5cRkRQhkWCt+EJsYrNB0MiL+Gpn6e3g==", + "dev": true, + "requires": { + "call-me-maybe": "^1.0.1", + "glob-to-regexp": "^0.3.0" + } + }, + "@nodelib/fs.scandir": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.1.tgz", + "integrity": "sha512-NT/skIZjgotDSiXs0WqYhgcuBKhUMgfekCmCGtkUAiLqZdOnrdjmZr9wRl3ll64J9NF79uZ4fk16Dx0yMc/Xbg==", + "requires": { + "@nodelib/fs.stat": "2.0.1", + "run-parallel": "^1.1.9" + } + }, + "@nodelib/fs.stat": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.1.tgz", + "integrity": "sha512-+RqhBlLn6YRBGOIoVYthsG0J9dfpO79eJyN7BYBkZJtfqrBwf2KK+rD/M/yjZR6WBmIhAgOV7S60eCgaSWtbFw==" + }, + "@nodelib/fs.walk": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.2.tgz", + "integrity": "sha512-J/DR3+W12uCzAJkw7niXDcqcKBg6+5G5Q/ZpThpGNzAUz70eOR6RV4XnnSN01qHZiVl0eavoxJsBypQoKsV2QQ==", + "requires": { + "@nodelib/fs.scandir": "2.1.1", + "fastq": "^1.6.0" + } + }, + "@sindresorhus/is": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.7.0.tgz", + "integrity": "sha512-ONhaKPIufzzrlNbqtWFFd+jlnemX6lJAgq9ZeiZtS7I1PIf/la7CW4m83rTXRnVnsMbW2k56pGYu7AUFJD9Pow==", + "dev": true + }, + "@types/cheerio": { + "version": "0.22.13", + "resolved": "https://registry.npmjs.org/@types/cheerio/-/cheerio-0.22.13.tgz", + "integrity": "sha512-OZd7dCUOUkiTorf97vJKwZnSja/DmHfuBAroe1kREZZTCf/tlFecwHhsOos3uVHxeKGZDwzolIrCUApClkdLuA==", + "dev": true, + "requires": { + "@types/node": "*" + } + }, + "@types/node": { + "version": "12.7.2", + "resolved": "https://registry.npmjs.org/@types/node/-/node-12.7.2.tgz", + "integrity": "sha512-dyYO+f6ihZEtNPDcWNR1fkoTDf3zAK3lAABDze3mz6POyIercH0lEUawUFXlG8xaQZmm1yEBON/4TsYv/laDYg==", + "dev": true + }, + "@types/q": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.2.tgz", + "integrity": "sha512-ce5d3q03Ex0sy4R14722Rmt6MT07Ua+k4FwDfdcToYJcMKNtRVQvJ6JCAPdAmAnbRb6CsX6aYb9m96NGod9uTw==", + "dev": true + }, + "abbrev": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", + "dev": true + }, + "accepts": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", + "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", + "dev": true, + "requires": { + "mime-types": "~2.1.24", + "negotiator": "0.6.2" + } + }, + "address": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/address/-/address-1.1.0.tgz", + "integrity": "sha512-4diPfzWbLEIElVG4AnqP+00SULlPzNuyJFNnmMrLgyaxG6tZXJ1sn7mjBu4fHrJE+Yp/jgylOweJn2xsLMFggQ==", + "dev": true + }, + "ajv": { + "version": "6.10.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.2.tgz", + "integrity": "sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw==", + "dev": true, + "requires": { + "fast-deep-equal": "^2.0.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "alphanum-sort": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/alphanum-sort/-/alphanum-sort-1.0.2.tgz", + "integrity": "sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM=", + "dev": true + }, + "amdefine": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", + "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=", + "dev": true + }, + "ansi-escapes": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz", + "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==", + "dev": true + }, + "ansi-red": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/ansi-red/-/ansi-red-0.1.1.tgz", + "integrity": "sha1-jGOPnRCAgAo1PJwoyKgcpHBdlGw=", + "dev": true, + "requires": { + "ansi-wrap": "0.1.0" + } + }, + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==" + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "requires": { + "color-convert": "^1.9.0" + } + }, + "ansi-wrap": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/ansi-wrap/-/ansi-wrap-0.1.0.tgz", + "integrity": "sha1-qCJQ3bABXponyoLoLqYDu/pF768=", + "dev": true + }, + "anymatch": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.0.3.tgz", + "integrity": "sha512-c6IvoeBECQlMVuYUjSwimnhmztImpErfxJzWZhIQinIvQWoGOnB0dLIgifbPHQt5heS6mNlaZG16f06H3C8t1g==", + "dev": true, + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } + }, + "aproba": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", + "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", + "dev": true + }, + "arch": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/arch/-/arch-2.1.1.tgz", + "integrity": "sha512-BLM56aPo9vLLFVa8+/+pJLnrZ7QGGTVHWsCwieAWT9o9K8UeGaQbzZbGoabWLOo2ksBCztoXdqBZBplqLDDCSg==", + "dev": true + }, + "archive-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/archive-type/-/archive-type-4.0.0.tgz", + "integrity": "sha1-+S5yIzBW38aWlHJ0nCZ72wRrHXA=", + "dev": true, + "requires": { + "file-type": "^4.2.0" + }, + "dependencies": { + "file-type": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/file-type/-/file-type-4.4.0.tgz", + "integrity": "sha1-G2AOX8ofvcboDApwxxyNul95BsU=", + "dev": true + } + } + }, + "are-we-there-yet": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz", + "integrity": "sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==", + "dev": true, + "requires": { + "delegates": "^1.0.0", + "readable-stream": "^2.0.6" + } + }, + "argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "requires": { + "sprintf-js": "~1.0.2" + } + }, + "arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", + "dev": true + }, + "arr-flatten": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", + "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", + "dev": true + }, + "arr-union": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", + "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", + "dev": true + }, + "array-filter": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/array-filter/-/array-filter-0.0.1.tgz", + "integrity": "sha1-fajPLiZijtcygDWB/SH2fKzS7uw=", + "dev": true + }, + "array-find-index": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz", + "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=", + "dev": true + }, + "array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=", + "dev": true + }, + "array-map": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/array-map/-/array-map-0.0.0.tgz", + "integrity": "sha1-iKK6tz0c97zVwbEYoAP2b2ZfpmI=", + "dev": true + }, + "array-reduce": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/array-reduce/-/array-reduce-0.0.0.tgz", + "integrity": "sha1-FziZ0//Rx9k4PkR5Ul2+J4yrXys=", + "dev": true + }, + "array-union": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", + "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", + "dev": true, + "requires": { + "array-uniq": "^1.0.1" + } + }, + "array-uniq": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", + "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=", + "dev": true + }, + "array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", + "dev": true + }, + "arrify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", + "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", + "dev": true + }, + "asn1": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", + "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", + "dev": true, + "requires": { + "safer-buffer": "~2.1.0" + } + }, + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "dev": true + }, + "assign-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", + "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", + "dev": true + }, + "async": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", + "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", + "dev": true + }, + "async-each": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz", + "integrity": "sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==", + "dev": true + }, + "async-foreach": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/async-foreach/-/async-foreach-0.1.3.tgz", + "integrity": "sha1-NhIfhFwFeBct5Bmpfb6x0W7DRUI=", + "dev": true + }, + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", + "dev": true + }, + "atob": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", + "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", + "dev": true + }, + "autolinker": { + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/autolinker/-/autolinker-0.28.1.tgz", + "integrity": "sha1-BlK0kYgYefB3XazgzcoyM5QqTkc=", + "dev": true, + "requires": { + "gulp-header": "^1.7.1" + } + }, + "autoprefixer": { + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.6.1.tgz", + "integrity": "sha512-aVo5WxR3VyvyJxcJC3h4FKfwCQvQWb1tSI5VHNibddCVWrcD1NvlxEweg3TSgiPztMnWfjpy2FURKA2kvDE+Tw==", + "dev": true, + "requires": { + "browserslist": "^4.6.3", + "caniuse-lite": "^1.0.30000980", + "chalk": "^2.4.2", + "normalize-range": "^0.1.2", + "num2fraction": "^1.2.2", + "postcss": "^7.0.17", + "postcss-value-parser": "^4.0.0" + } + }, + "aws-sign2": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", + "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", + "dev": true + }, + "aws4": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.8.0.tgz", + "integrity": "sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ==", + "dev": true + }, + "babel-code-frame": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", + "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", + "dev": true, + "requires": { + "chalk": "^1.1.3", + "esutils": "^2.0.2", + "js-tokens": "^3.0.2" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + }, + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, + "requires": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + } + }, + "js-tokens": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", + "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", + "dev": true + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + } + } + }, + "babel-plugin-dynamic-import-node": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.0.tgz", + "integrity": "sha512-o6qFkpeQEBxcqt0XYlWzAVxNCSCZdUgcR8IRlhD/8DylxjjO4foPcvTW0GGKa/cVt3rvxZ7o5ippJ+/0nvLhlQ==", + "dev": true, + "requires": { + "object.assign": "^4.1.0" + } + }, + "babylon": { + "version": "6.18.0", + "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", + "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==", + "dev": true + }, + "balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" + }, + "base": { + "version": "0.11.2", + "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", + "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", + "dev": true, + "requires": { + "cache-base": "^1.0.1", + "class-utils": "^0.3.5", + "component-emitter": "^1.2.1", + "define-property": "^1.0.0", + "isobject": "^3.0.1", + "mixin-deep": "^1.2.0", + "pascalcase": "^0.1.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, + "base64-js": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.1.tgz", + "integrity": "sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g==", + "dev": true + }, + "bcrypt-pbkdf": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", + "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", + "dev": true, + "requires": { + "tweetnacl": "^0.14.3" + } + }, + "big.js": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", + "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", + "dev": true + }, + "bin-build": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/bin-build/-/bin-build-3.0.0.tgz", + "integrity": "sha512-jcUOof71/TNAI2uM5uoUaDq2ePcVBQ3R/qhxAz1rX7UfvduAL/RXD3jXzvn8cVcDJdGVkiR1shal3OH0ImpuhA==", + "dev": true, + "requires": { + "decompress": "^4.0.0", + "download": "^6.2.2", + "execa": "^0.7.0", + "p-map-series": "^1.0.0", + "tempfile": "^2.0.0" + } + }, + "bin-check": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/bin-check/-/bin-check-4.1.0.tgz", + "integrity": "sha512-b6weQyEUKsDGFlACWSIOfveEnImkJyK/FGW6FAG42loyoquvjdtOIqO6yBFzHyqyVVhNgNkQxxx09SFLK28YnA==", + "dev": true, + "requires": { + "execa": "^0.7.0", + "executable": "^4.1.0" + } + }, + "bin-version": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/bin-version/-/bin-version-3.1.0.tgz", + "integrity": "sha512-Mkfm4iE1VFt4xd4vH+gx+0/71esbfus2LsnCGe8Pi4mndSPyT+NGES/Eg99jx8/lUGWfu3z2yuB/bt5UB+iVbQ==", + "dev": true, + "requires": { + "execa": "^1.0.0", + "find-versions": "^3.0.0" + }, + "dependencies": { + "execa": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", + "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", + "dev": true, + "requires": { + "cross-spawn": "^6.0.0", + "get-stream": "^4.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + } + }, + "get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "dev": true, + "requires": { + "pump": "^3.0.0" + } + } + } + }, + "bin-version-check": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/bin-version-check/-/bin-version-check-4.0.0.tgz", + "integrity": "sha512-sR631OrhC+1f8Cvs8WyVWOA33Y8tgwjETNPyyD/myRBXLkfS/vl74FmH/lFcRl9KY3zwGh7jFhvyk9vV3/3ilQ==", + "dev": true, + "requires": { + "bin-version": "^3.0.0", + "semver": "^5.6.0", + "semver-truncate": "^1.1.2" + } + }, + "bin-wrapper": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/bin-wrapper/-/bin-wrapper-4.1.0.tgz", + "integrity": "sha512-hfRmo7hWIXPkbpi0ZltboCMVrU+0ClXR/JgbCKKjlDjQf6igXa7OwdqNcFWQZPZTgiY7ZpzE3+LjjkLiTN2T7Q==", + "dev": true, + "requires": { + "bin-check": "^4.1.0", + "bin-version-check": "^4.0.0", + "download": "^7.1.0", + "import-lazy": "^3.1.0", + "os-filter-obj": "^2.0.0", + "pify": "^4.0.1" + }, + "dependencies": { + "download": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/download/-/download-7.1.0.tgz", + "integrity": "sha512-xqnBTVd/E+GxJVrX5/eUJiLYjCGPwMpdL+jGhGU57BvtcA7wwhtHVbXBeUk51kOpW3S7Jn3BQbN9Q1R1Km2qDQ==", + "dev": true, + "requires": { + "archive-type": "^4.0.0", + "caw": "^2.0.1", + "content-disposition": "^0.5.2", + "decompress": "^4.2.0", + "ext-name": "^5.0.0", + "file-type": "^8.1.0", + "filenamify": "^2.0.0", + "get-stream": "^3.0.0", + "got": "^8.3.1", + "make-dir": "^1.2.0", + "p-event": "^2.1.0", + "pify": "^3.0.0" + }, + "dependencies": { + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "dev": true + } + } + }, + "file-type": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/file-type/-/file-type-8.1.0.tgz", + "integrity": "sha512-qyQ0pzAy78gVoJsmYeNgl8uH8yKhr1lVhW7JbzJmnlRi0I4R2eEDEJZVKG8agpDnLpacwNbDhLNG/LMdxHD2YQ==", + "dev": true + }, + "got": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/got/-/got-8.3.2.tgz", + "integrity": "sha512-qjUJ5U/hawxosMryILofZCkm3C84PLJS/0grRIpjAwu+Lkxxj5cxeCU25BG0/3mDSpXKTyZr8oh8wIgLaH0QCw==", + "dev": true, + "requires": { + "@sindresorhus/is": "^0.7.0", + "cacheable-request": "^2.1.1", + "decompress-response": "^3.3.0", + "duplexer3": "^0.1.4", + "get-stream": "^3.0.0", + "into-stream": "^3.1.0", + "is-retry-allowed": "^1.1.0", + "isurl": "^1.0.0-alpha5", + "lowercase-keys": "^1.0.0", + "mimic-response": "^1.0.0", + "p-cancelable": "^0.4.0", + "p-timeout": "^2.0.1", + "pify": "^3.0.0", + "safe-buffer": "^5.1.1", + "timed-out": "^4.0.1", + "url-parse-lax": "^3.0.0", + "url-to-options": "^1.0.1" + }, + "dependencies": { + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "dev": true + } + } + }, + "make-dir": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", + "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", + "dev": true, + "requires": { + "pify": "^3.0.0" + }, + "dependencies": { + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "dev": true + } + } + }, + "p-cancelable": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-0.4.1.tgz", + "integrity": "sha512-HNa1A8LvB1kie7cERyy21VNeHb2CWJJYqyyC2o3klWFfMGlFmWv2Z7sFgZH8ZiaYL95ydToKTFVXgMV/Os0bBQ==", + "dev": true + }, + "p-event": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/p-event/-/p-event-2.3.1.tgz", + "integrity": "sha512-NQCqOFhbpVTMX4qMe8PF8lbGtzZ+LCiN7pcNrb/413Na7+TRoe1xkKUzuWa/YEJdGQ0FvKtj35EEbDoVPO2kbA==", + "dev": true, + "requires": { + "p-timeout": "^2.0.1" + } + }, + "p-timeout": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-2.0.1.tgz", + "integrity": "sha512-88em58dDVB/KzPEx1X0N3LwFfYZPyDc4B6eF38M1rk9VTZMbxXXgjugz8mmwpS9Ox4BDZ+t6t3QP5+/gazweIA==", + "dev": true, + "requires": { + "p-finally": "^1.0.0" + } + }, + "prepend-http": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", + "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=", + "dev": true + }, + "url-parse-lax": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", + "integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=", + "dev": true, + "requires": { + "prepend-http": "^2.0.0" + } + } + } + }, + "binary-extensions": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.0.0.tgz", + "integrity": "sha512-Phlt0plgpIIBOGTT/ehfFnbNlfsDEiqmzE2KRXoX1bLIlir4X/MR+zSyBEkL05ffWgnRSf/DXv+WrUAVr93/ow==", + "dev": true + }, + "bl": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/bl/-/bl-1.2.2.tgz", + "integrity": "sha512-e8tQYnZodmebYDWGH7KMRvtzKXaJHx3BbilrgZCfvyLUYdKpK1t5PSPmpkny/SgiTSCnjfLW7v5rlONXVFkQEA==", + "dev": true, + "requires": { + "readable-stream": "^2.3.5", + "safe-buffer": "^5.1.1" + } + }, + "block-stream": { + "version": "0.0.9", + "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz", + "integrity": "sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=", + "dev": true, + "requires": { + "inherits": "~2.0.0" + } + }, + "body": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/body/-/body-5.1.0.tgz", + "integrity": "sha1-5LoM5BCkaTYyM2dgnstOZVMSUGk=", + "dev": true, + "requires": { + "continuable-cache": "^0.3.1", + "error": "^7.0.0", + "raw-body": "~1.1.0", + "safe-json-parse": "~1.0.1" + }, + "dependencies": { + "bytes": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-1.0.0.tgz", + "integrity": "sha1-NWnt6Lo0MV+rmcPpLLBMciDeH6g=", + "dev": true + }, + "raw-body": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-1.1.7.tgz", + "integrity": "sha1-HQJ8K/oRasxmI7yo8AAWVyqH1CU=", + "dev": true, + "requires": { + "bytes": "1", + "string_decoder": "0.10" + } + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", + "dev": true + } + } + }, + "body-parser": { + "version": "1.19.0", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz", + "integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==", + "dev": true, + "requires": { + "bytes": "3.1.0", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "~1.1.2", + "http-errors": "1.7.2", + "iconv-lite": "0.4.24", + "on-finished": "~2.3.0", + "qs": "6.7.0", + "raw-body": "2.4.0", + "type-is": "~1.6.17" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "qs": { + "version": "6.7.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", + "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==", + "dev": true + } + } + }, + "boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=", + "dev": true + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "requires": { + "fill-range": "^7.0.1" + } + }, + "browserslist": { + "version": "4.6.6", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.6.6.tgz", + "integrity": "sha512-D2Nk3W9JL9Fp/gIcWei8LrERCS+eXu9AM5cfXA8WEZ84lFks+ARnZ0q/R69m2SV3Wjma83QDDPxsNKXUwdIsyA==", + "dev": true, + "requires": { + "caniuse-lite": "^1.0.30000984", + "electron-to-chromium": "^1.3.191", + "node-releases": "^1.1.25" + } + }, + "buffer": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.4.0.tgz", + "integrity": "sha512-Xpgy0IwHK2N01ncykXTy6FpCWuM+CJSHoPVBLyNqyrWxsedpLvwsYUhf0ME3WRFNUhos0dMamz9cOS/xRDtU5g==", + "dev": true, + "requires": { + "base64-js": "^1.0.2", + "ieee754": "^1.1.4" + } + }, + "buffer-alloc": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/buffer-alloc/-/buffer-alloc-1.2.0.tgz", + "integrity": "sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow==", + "dev": true, + "requires": { + "buffer-alloc-unsafe": "^1.1.0", + "buffer-fill": "^1.0.0" + } + }, + "buffer-alloc-unsafe": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz", + "integrity": "sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg==", + "dev": true + }, + "buffer-crc32": { + "version": "0.2.13", + "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", + "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=", + "dev": true + }, + "buffer-fill": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/buffer-fill/-/buffer-fill-1.0.0.tgz", + "integrity": "sha1-+PeLdniYiO858gXNY39o5wISKyw=", + "dev": true + }, + "buffer-from": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", + "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==", + "dev": true + }, + "bytes": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", + "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==", + "dev": true + }, + "cache-base": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", + "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", + "dev": true, + "requires": { + "collection-visit": "^1.0.0", + "component-emitter": "^1.2.1", + "get-value": "^2.0.6", + "has-value": "^1.0.0", + "isobject": "^3.0.1", + "set-value": "^2.0.0", + "to-object-path": "^0.3.0", + "union-value": "^1.0.0", + "unset-value": "^1.0.0" + } + }, + "cacheable-request": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-2.1.4.tgz", + "integrity": "sha1-DYCIAbY0KtM8kd+dC0TcCbkeXD0=", + "dev": true, + "requires": { + "clone-response": "1.0.2", + "get-stream": "3.0.0", + "http-cache-semantics": "3.8.1", + "keyv": "3.0.0", + "lowercase-keys": "1.0.0", + "normalize-url": "2.0.1", + "responselike": "1.0.2" + }, + "dependencies": { + "lowercase-keys": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.0.tgz", + "integrity": "sha1-TjNms55/VFfjXxMkvfb4jQv8cwY=", + "dev": true + }, + "normalize-url": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-2.0.1.tgz", + "integrity": "sha512-D6MUW4K/VzoJ4rJ01JFKxDrtY1v9wrgzCX5f2qj/lzH1m/lW6MhUZFKerVsnyjOhOsYzI9Kqqak+10l4LvLpMw==", + "dev": true, + "requires": { + "prepend-http": "^2.0.0", + "query-string": "^5.0.1", + "sort-keys": "^2.0.0" + } + }, + "prepend-http": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", + "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=", + "dev": true + }, + "sort-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-2.0.0.tgz", + "integrity": "sha1-ZYU1WEhh7JfXMNbPQYIuH1ZoQSg=", + "dev": true, + "requires": { + "is-plain-obj": "^1.0.0" + } + } + } + }, + "call-me-maybe": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.1.tgz", + "integrity": "sha1-JtII6onje1y95gJQoV8DHBak1ms=", + "dev": true + }, + "caller-callsite": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/caller-callsite/-/caller-callsite-2.0.0.tgz", + "integrity": "sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ=", + "dev": true, + "requires": { + "callsites": "^2.0.0" + } + }, + "caller-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-2.0.0.tgz", + "integrity": "sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ=", + "dev": true, + "requires": { + "caller-callsite": "^2.0.0" + } + }, + "callsites": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz", + "integrity": "sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA=", + "dev": true + }, + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" + }, + "camelcase-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz", + "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=", + "dev": true, + "requires": { + "camelcase": "^2.0.0", + "map-obj": "^1.0.0" + }, + "dependencies": { + "camelcase": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz", + "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=", + "dev": true + } + } + }, + "caniuse-api": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz", + "integrity": "sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==", + "dev": true, + "requires": { + "browserslist": "^4.0.0", + "caniuse-lite": "^1.0.0", + "lodash.memoize": "^4.1.2", + "lodash.uniq": "^4.5.0" + } + }, + "caniuse-lite": { + "version": "1.0.30000989", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000989.tgz", + "integrity": "sha512-vrMcvSuMz16YY6GSVZ0dWDTJP8jqk3iFQ/Aq5iqblPwxSVVZI+zxDyTX0VPqtQsDnfdrBDcsmhgTEOh5R8Lbpw==", + "dev": true + }, + "caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", + "dev": true + }, + "caw": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/caw/-/caw-2.0.1.tgz", + "integrity": "sha512-Cg8/ZSBEa8ZVY9HspcGUYaK63d/bN7rqS3CYCzEGUxuYv6UlmcjzDUz2fCFFHyTvUW5Pk0I+3hkA3iXlIj6guA==", + "dev": true, + "requires": { + "get-proxy": "^2.0.0", + "isurl": "^1.0.0-alpha5", + "tunnel-agent": "^0.6.0", + "url-to-options": "^1.0.1" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "chardet": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", + "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", + "dev": true + }, + "cheerio": { + "version": "0.22.0", + "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-0.22.0.tgz", + "integrity": "sha1-qbqoYKP5tZWmuBsahocxIe06Jp4=", + "dev": true, + "requires": { + "css-select": "~1.2.0", + "dom-serializer": "~0.1.0", + "entities": "~1.1.1", + "htmlparser2": "^3.9.1", + "lodash.assignin": "^4.0.9", + "lodash.bind": "^4.1.4", + "lodash.defaults": "^4.0.1", + "lodash.filter": "^4.4.0", + "lodash.flatten": "^4.2.0", + "lodash.foreach": "^4.3.0", + "lodash.map": "^4.4.0", + "lodash.merge": "^4.4.0", + "lodash.pick": "^4.2.1", + "lodash.reduce": "^4.4.0", + "lodash.reject": "^4.4.0", + "lodash.some": "^4.4.0" + }, + "dependencies": { + "css-select": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-1.2.0.tgz", + "integrity": "sha1-KzoRBTnFNV8c2NMUYj6HCxIeyFg=", + "dev": true, + "requires": { + "boolbase": "~1.0.0", + "css-what": "2.1", + "domutils": "1.5.1", + "nth-check": "~1.0.1" + } + }, + "dom-serializer": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.1.tgz", + "integrity": "sha512-l0IU0pPzLWSHBcieZbpOKgkIn3ts3vAh7ZuFyXNwJxJXk/c4Gwj9xaTJwIDVQCXawWD0qb3IzMGH5rglQaO0XA==", + "dev": true, + "requires": { + "domelementtype": "^1.3.0", + "entities": "^1.1.1" + } + }, + "domutils": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz", + "integrity": "sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8=", + "dev": true, + "requires": { + "dom-serializer": "0", + "domelementtype": "1" + } + }, + "entities": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz", + "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==", + "dev": true + } + } + }, + "chokidar": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.0.2.tgz", + "integrity": "sha512-c4PR2egjNjI1um6bamCQ6bUNPDiyofNQruHvKgHQ4gDUP/ITSVSzNsiI5OWtHOsX323i5ha/kk4YmOZ1Ktg7KA==", + "dev": true, + "requires": { + "anymatch": "^3.0.1", + "braces": "^3.0.2", + "fsevents": "^2.0.6", + "glob-parent": "^5.0.0", + "is-binary-path": "^2.1.0", + "is-glob": "^4.0.1", + "normalize-path": "^3.0.0", + "readdirp": "^3.1.1" + } + }, + "class-utils": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", + "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", + "dev": true, + "requires": { + "arr-union": "^3.1.0", + "define-property": "^0.2.5", + "isobject": "^3.0.0", + "static-extend": "^0.1.1" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + } + } + }, + "classnames": { + "version": "2.2.6", + "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.2.6.tgz", + "integrity": "sha512-JR/iSQOSt+LQIWwrwEzJ9uk0xfN3mTVYMwt1Ir5mUcSN6pU+V4zQFFaJsclJbPuAUQH+yfWef6tm7l1quW3C8Q==", + "dev": true + }, + "cli-cursor": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", + "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", + "dev": true, + "requires": { + "restore-cursor": "^2.0.0" + } + }, + "cli-width": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.0.tgz", + "integrity": "sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk=", + "dev": true + }, + "clipboard": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/clipboard/-/clipboard-2.0.4.tgz", + "integrity": "sha512-Vw26VSLRpJfBofiVaFb/I8PVfdI1OxKcYShe6fm0sP/DtmiWQNCjhM/okTvdCo0G+lMMm1rMYbk4IK4x1X+kgQ==", + "dev": true, + "optional": true, + "requires": { + "good-listener": "^1.2.2", + "select": "^1.1.2", + "tiny-emitter": "^2.0.0" + } + }, + "cliui": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", + "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", + "requires": { + "string-width": "^3.1.0", + "strip-ansi": "^5.2.0", + "wrap-ansi": "^5.1.0" + } + }, + "clone-response": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", + "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=", + "dev": true, + "requires": { + "mimic-response": "^1.0.0" + } + }, + "coa": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/coa/-/coa-2.0.2.tgz", + "integrity": "sha512-q5/jG+YQnSy4nRTV4F7lPepBJZ8qBNJJDBuJdoejDyLXgmL7IEo+Le2JDZudFTFt7mrCqIRaSjws4ygRCTCAXA==", + "dev": true, + "requires": { + "@types/q": "^1.5.1", + "chalk": "^2.4.1", + "q": "^1.1.2" + } + }, + "code-point-at": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", + "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", + "dev": true + }, + "coffee-script": { + "version": "1.12.7", + "resolved": "https://registry.npmjs.org/coffee-script/-/coffee-script-1.12.7.tgz", + "integrity": "sha512-fLeEhqwymYat/MpTPUjSKHVYYl0ec2mOyALEMLmzr5i1isuG+6jfI2j2d5oBO3VIzgUXgBVIcOT9uH1TFxBckw==", + "dev": true + }, + "collection-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", + "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", + "dev": true, + "requires": { + "map-visit": "^1.0.0", + "object-visit": "^1.0.0" + } + }, + "color": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color/-/color-2.0.1.tgz", + "integrity": "sha512-ubUCVVKfT7r2w2D3qtHakj8mbmKms+tThR8gI8zEYCbUBl8/voqFGt3kgBqGwXAopgXybnkuOq+qMYCRrp4cXw==", + "dev": true, + "requires": { + "color-convert": "^1.9.1", + "color-string": "^1.5.2" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" + }, + "color-string": { + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.5.3.tgz", + "integrity": "sha512-dC2C5qeWoYkxki5UAXapdjqO672AM4vZuPGRQfO8b5HKuKGBbKWpITyDYN7TOFKvRW7kOgAn3746clDBMDJyQw==", + "dev": true, + "requires": { + "color-name": "^1.0.0", + "simple-swizzle": "^0.2.2" + } + }, + "combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dev": true, + "requires": { + "delayed-stream": "~1.0.0" + } + }, + "commander": { + "version": "2.20.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.0.tgz", + "integrity": "sha512-7j2y+40w61zy6YC2iRNpUe/NwhNyoXrYpHMrSunaMG64nRnaf96zO/KMQR4OyN/UnE5KLyEBnKHd4aG3rskjpQ==", + "dev": true + }, + "commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", + "dev": true + }, + "component-emitter": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", + "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", + "dev": true + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" + }, + "concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "dev": true, + "requires": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + }, + "concat-with-sourcemaps": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/concat-with-sourcemaps/-/concat-with-sourcemaps-1.1.0.tgz", + "integrity": "sha512-4gEjHJFT9e+2W/77h/DS5SGUgwDaOwprX8L/gl5+3ixnzkVJJsZWDSelmN3Oilw3LNDZjZV0yqH1hLG3k6nghg==", + "dev": true, + "requires": { + "source-map": "^0.6.1" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "config-chain": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.12.tgz", + "integrity": "sha512-a1eOIcu8+7lUInge4Rpf/n4Krkf3Dd9lqhljRzII1/Zno/kRtUWnznPO3jOKBmTEktkt3fkxisUcivoj0ebzoA==", + "dev": true, + "requires": { + "ini": "^1.3.4", + "proto-list": "~1.2.1" + } + }, + "console-control-strings": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", + "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=", + "dev": true + }, + "console-stream": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/console-stream/-/console-stream-0.1.1.tgz", + "integrity": "sha1-oJX+B7IEZZVfL6/Si11yvM2UnUQ=", + "dev": true + }, + "content-disposition": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz", + "integrity": "sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==", + "dev": true, + "requires": { + "safe-buffer": "5.1.2" + } + }, + "content-type": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", + "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==", + "dev": true + }, + "continuable-cache": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/continuable-cache/-/continuable-cache-0.3.1.tgz", + "integrity": "sha1-vXJ6f67XfnH/OYWskzUakSczrQ8=", + "dev": true + }, + "convert-source-map": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.6.0.tgz", + "integrity": "sha512-eFu7XigvxdZ1ETfbgPBohgyQ/Z++C0eEhTor0qRwBw9unw+L0/6V8wkSuGgzdThkiS5lSpdptOQPD8Ak40a+7A==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.1" + } + }, + "cookie": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz", + "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==", + "dev": true + }, + "cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=", + "dev": true + }, + "copy-descriptor": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", + "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", + "dev": true + }, + "core-js": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.9.tgz", + "integrity": "sha512-HOpZf6eXmnl7la+cUdMnLvUxKNqLUzJvgIziQ0DiF3JwSImNphIqdGqzj6hIKyX04MmV0poclQ7+wjWvxQyR2A==", + "dev": true + }, + "core-js-compat": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.2.1.tgz", + "integrity": "sha512-MwPZle5CF9dEaMYdDeWm73ao/IflDH+FjeJCWEADcEgFSE9TLimFKwJsfmkwzI8eC0Aj0mgvMDjeQjrElkz4/A==", + "dev": true, + "requires": { + "browserslist": "^4.6.6", + "semver": "^6.3.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, + "core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", + "dev": true + }, + "cosmiconfig": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz", + "integrity": "sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==", + "dev": true, + "requires": { + "import-fresh": "^2.0.0", + "is-directory": "^0.3.1", + "js-yaml": "^3.13.1", + "parse-json": "^4.0.0" + } + }, + "cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "dev": true, + "requires": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, + "crowdin-cli": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/crowdin-cli/-/crowdin-cli-0.3.0.tgz", + "integrity": "sha1-6smYmm/n/qrzMJA5evwYfGe0YZE=", + "dev": true, + "requires": { + "request": "^2.53.0", + "yamljs": "^0.2.1", + "yargs": "^2.3.0" + }, + "dependencies": { + "yargs": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-2.3.0.tgz", + "integrity": "sha1-6QDIclDsXNCA22AJ/j3WMVbx1/s=", + "dev": true, + "requires": { + "wordwrap": "0.0.2" + } + } + } + }, + "css-color-names": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/css-color-names/-/css-color-names-0.0.4.tgz", + "integrity": "sha1-gIrcLnnPhHOAabZGyyDsJ762KeA=", + "dev": true + }, + "css-declaration-sorter": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-4.0.1.tgz", + "integrity": "sha512-BcxQSKTSEEQUftYpBVnsH4SF05NTuBokb19/sBt6asXGKZ/6VP7PLG1CBCkFDYOnhXhPh0jMhO6xZ71oYHXHBA==", + "dev": true, + "requires": { + "postcss": "^7.0.1", + "timsort": "^0.3.0" + } + }, + "css-select": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-2.0.2.tgz", + "integrity": "sha512-dSpYaDVoWaELjvZ3mS6IKZM/y2PMPa/XYoEfYNZePL4U/XgyxZNroHEHReDx/d+VgXh9VbCTtFqLkFbmeqeaRQ==", + "dev": true, + "requires": { + "boolbase": "^1.0.0", + "css-what": "^2.1.2", + "domutils": "^1.7.0", + "nth-check": "^1.0.2" + } + }, + "css-select-base-adapter": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz", + "integrity": "sha512-jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w==", + "dev": true + }, + "css-tree": { + "version": "1.0.0-alpha.33", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0-alpha.33.tgz", + "integrity": "sha512-SPt57bh5nQnpsTBsx/IXbO14sRc9xXu5MtMAVuo0BaQQmyf0NupNPPSoMaqiAF5tDFafYsTkfeH4Q/HCKXkg4w==", + "dev": true, + "requires": { + "mdn-data": "2.0.4", + "source-map": "^0.5.3" + } + }, + "css-unit-converter": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/css-unit-converter/-/css-unit-converter-1.1.1.tgz", + "integrity": "sha1-2bkoGtz9jO2TW9urqDeGiX9k6ZY=", + "dev": true + }, + "css-what": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-2.1.3.tgz", + "integrity": "sha512-a+EPoD+uZiNfh+5fxw2nO9QwFa6nJe2Or35fGY6Ipw1R3R4AGz1d1TEZrCegvw2YTmZ0jXirGYlzxxpYSHwpEg==", + "dev": true + }, + "cssesc": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-2.0.0.tgz", + "integrity": "sha512-MsCAG1z9lPdoO/IUMLSBWBSVxVtJ1395VGIQ+Fc2gNdkQ1hNDnQdw3YhA71WJCBW1vdwA0cAnk/DnW6bqoEUYg==", + "dev": true + }, + "cssnano": { + "version": "4.1.10", + "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-4.1.10.tgz", + "integrity": "sha512-5wny+F6H4/8RgNlaqab4ktc3e0/blKutmq8yNlBFXA//nSFFAqAngjNVRzUvCgYROULmZZUoosL/KSoZo5aUaQ==", + "dev": true, + "requires": { + "cosmiconfig": "^5.0.0", + "cssnano-preset-default": "^4.0.7", + "is-resolvable": "^1.0.0", + "postcss": "^7.0.0" + } + }, + "cssnano-preset-default": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-4.0.7.tgz", + "integrity": "sha512-x0YHHx2h6p0fCl1zY9L9roD7rnlltugGu7zXSKQx6k2rYw0Hi3IqxcoAGF7u9Q5w1nt7vK0ulxV8Lo+EvllGsA==", + "dev": true, + "requires": { + "css-declaration-sorter": "^4.0.1", + "cssnano-util-raw-cache": "^4.0.1", + "postcss": "^7.0.0", + "postcss-calc": "^7.0.1", + "postcss-colormin": "^4.0.3", + "postcss-convert-values": "^4.0.1", + "postcss-discard-comments": "^4.0.2", + "postcss-discard-duplicates": "^4.0.2", + "postcss-discard-empty": "^4.0.1", + "postcss-discard-overridden": "^4.0.1", + "postcss-merge-longhand": "^4.0.11", + "postcss-merge-rules": "^4.0.3", + "postcss-minify-font-values": "^4.0.2", + "postcss-minify-gradients": "^4.0.2", + "postcss-minify-params": "^4.0.2", + "postcss-minify-selectors": "^4.0.2", + "postcss-normalize-charset": "^4.0.1", + "postcss-normalize-display-values": "^4.0.2", + "postcss-normalize-positions": "^4.0.2", + "postcss-normalize-repeat-style": "^4.0.2", + "postcss-normalize-string": "^4.0.2", + "postcss-normalize-timing-functions": "^4.0.2", + "postcss-normalize-unicode": "^4.0.1", + "postcss-normalize-url": "^4.0.1", + "postcss-normalize-whitespace": "^4.0.2", + "postcss-ordered-values": "^4.1.2", + "postcss-reduce-initial": "^4.0.3", + "postcss-reduce-transforms": "^4.0.2", + "postcss-svgo": "^4.0.2", + "postcss-unique-selectors": "^4.0.1" + } + }, + "cssnano-util-get-arguments": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/cssnano-util-get-arguments/-/cssnano-util-get-arguments-4.0.0.tgz", + "integrity": "sha1-7ToIKZ8h11dBsg87gfGU7UnMFQ8=", + "dev": true + }, + "cssnano-util-get-match": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/cssnano-util-get-match/-/cssnano-util-get-match-4.0.0.tgz", + "integrity": "sha1-wOTKB/U4a7F+xeUiULT1lhNlFW0=", + "dev": true + }, + "cssnano-util-raw-cache": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/cssnano-util-raw-cache/-/cssnano-util-raw-cache-4.0.1.tgz", + "integrity": "sha512-qLuYtWK2b2Dy55I8ZX3ky1Z16WYsx544Q0UWViebptpwn/xDBmog2TLg4f+DBMg1rJ6JDWtn96WHbOKDWt1WQA==", + "dev": true, + "requires": { + "postcss": "^7.0.0" + } + }, + "cssnano-util-same-parent": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/cssnano-util-same-parent/-/cssnano-util-same-parent-4.0.1.tgz", + "integrity": "sha512-WcKx5OY+KoSIAxBW6UBBRay1U6vkYheCdjyVNDm85zt5K9mHoGOfsOsqIszfAqrQQFIIKgjh2+FDgIj/zsl21Q==", + "dev": true + }, + "csso": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/csso/-/csso-3.5.1.tgz", + "integrity": "sha512-vrqULLffYU1Q2tLdJvaCYbONStnfkfimRxXNaGjxMldI0C7JPBC4rB1RyjhfdZ4m1frm8pM9uRPKH3d2knZ8gg==", + "dev": true, + "requires": { + "css-tree": "1.0.0-alpha.29" + }, + "dependencies": { + "css-tree": { + "version": "1.0.0-alpha.29", + "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0-alpha.29.tgz", + "integrity": "sha512-sRNb1XydwkW9IOci6iB2xmy8IGCj6r/fr+JWitvJ2JxQRPzN3T4AGGVWCMlVmVwM1gtgALJRmGIlWv5ppnGGkg==", + "dev": true, + "requires": { + "mdn-data": "~1.1.0", + "source-map": "^0.5.3" + } + }, + "mdn-data": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-1.1.4.tgz", + "integrity": "sha512-FSYbp3lyKjyj3E7fMl6rYvUdX0FBXaluGqlFoYESWQlyUTq8R+wp0rkFxoYFqZlHCvsUXGjyJmLQSnXToYhOSA==", + "dev": true + } + } + }, + "currently-unhandled": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", + "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=", + "dev": true, + "requires": { + "array-find-index": "^1.0.1" + } + }, + "dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", + "dev": true, + "requires": { + "assert-plus": "^1.0.0" + } + }, + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=" + }, + "decode-uri-component": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", + "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", + "dev": true + }, + "decompress": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/decompress/-/decompress-4.2.0.tgz", + "integrity": "sha1-eu3YVCflqS2s/lVnSnxQXpbQH50=", + "dev": true, + "requires": { + "decompress-tar": "^4.0.0", + "decompress-tarbz2": "^4.0.0", + "decompress-targz": "^4.0.0", + "decompress-unzip": "^4.0.1", + "graceful-fs": "^4.1.10", + "make-dir": "^1.0.0", + "pify": "^2.3.0", + "strip-dirs": "^2.0.0" + }, + "dependencies": { + "make-dir": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", + "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", + "dev": true, + "requires": { + "pify": "^3.0.0" + }, + "dependencies": { + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "dev": true + } + } + }, + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true + } + } + }, + "decompress-response": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", + "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=", + "dev": true, + "requires": { + "mimic-response": "^1.0.0" + } + }, + "decompress-tar": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/decompress-tar/-/decompress-tar-4.1.1.tgz", + "integrity": "sha512-JdJMaCrGpB5fESVyxwpCx4Jdj2AagLmv3y58Qy4GE6HMVjWz1FeVQk1Ct4Kye7PftcdOo/7U7UKzYBJgqnGeUQ==", + "dev": true, + "requires": { + "file-type": "^5.2.0", + "is-stream": "^1.1.0", + "tar-stream": "^1.5.2" + }, + "dependencies": { + "file-type": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/file-type/-/file-type-5.2.0.tgz", + "integrity": "sha1-LdvqfHP/42No365J3DOMBYwritY=", + "dev": true + } + } + }, + "decompress-tarbz2": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/decompress-tarbz2/-/decompress-tarbz2-4.1.1.tgz", + "integrity": "sha512-s88xLzf1r81ICXLAVQVzaN6ZmX4A6U4z2nMbOwobxkLoIIfjVMBg7TeguTUXkKeXni795B6y5rnvDw7rxhAq9A==", + "dev": true, + "requires": { + "decompress-tar": "^4.1.0", + "file-type": "^6.1.0", + "is-stream": "^1.1.0", + "seek-bzip": "^1.0.5", + "unbzip2-stream": "^1.0.9" + }, + "dependencies": { + "file-type": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/file-type/-/file-type-6.2.0.tgz", + "integrity": "sha512-YPcTBDV+2Tm0VqjybVd32MHdlEGAtuxS3VAYsumFokDSMG+ROT5wawGlnHDoz7bfMcMDt9hxuXvXwoKUx2fkOg==", + "dev": true + } + } + }, + "decompress-targz": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/decompress-targz/-/decompress-targz-4.1.1.tgz", + "integrity": "sha512-4z81Znfr6chWnRDNfFNqLwPvm4db3WuZkqV+UgXQzSngG3CEKdBkw5jrv3axjjL96glyiiKjsxJG3X6WBZwX3w==", + "dev": true, + "requires": { + "decompress-tar": "^4.1.1", + "file-type": "^5.2.0", + "is-stream": "^1.1.0" + }, + "dependencies": { + "file-type": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/file-type/-/file-type-5.2.0.tgz", + "integrity": "sha1-LdvqfHP/42No365J3DOMBYwritY=", + "dev": true + } + } + }, + "decompress-unzip": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/decompress-unzip/-/decompress-unzip-4.0.1.tgz", + "integrity": "sha1-3qrM39FK6vhVePczroIQ+bSEj2k=", + "dev": true, + "requires": { + "file-type": "^3.8.0", + "get-stream": "^2.2.0", + "pify": "^2.3.0", + "yauzl": "^2.4.2" + }, + "dependencies": { + "file-type": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/file-type/-/file-type-3.9.0.tgz", + "integrity": "sha1-JXoHg4TR24CHvESdEH1SpSZyuek=", + "dev": true + }, + "get-stream": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-2.3.1.tgz", + "integrity": "sha1-Xzj5PzRgCWZu4BUKBUFn+Rvdld4=", + "dev": true, + "requires": { + "object-assign": "^4.0.1", + "pinkie-promise": "^2.0.0" + } + }, + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true + } + } + }, + "deep-is": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", + "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", + "dev": true + }, + "define-properties": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", + "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", + "dev": true, + "requires": { + "object-keys": "^1.0.12" + } + }, + "define-property": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", + "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "dev": true, + "requires": { + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" + }, + "dependencies": { + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", + "dev": true + }, + "delegate": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/delegate/-/delegate-3.2.0.tgz", + "integrity": "sha512-IofjkYBZaZivn0V8nnsMJGBr4jVLxHDheKSW88PyxS5QC4Vo9ZbZVvhzlSxY87fVq3STR6r+4cGepyHkcWOQSw==", + "dev": true, + "optional": true + }, + "delegates": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", + "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=", + "dev": true + }, + "depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", + "dev": true + }, + "destroy": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", + "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=", + "dev": true + }, + "detect-port-alt": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/detect-port-alt/-/detect-port-alt-1.1.6.tgz", + "integrity": "sha512-5tQykt+LqfJFBEYaDITx7S7cR7mJ/zQmLXZ2qt5w04ainYZw6tBf9dBunMjVeVOdYVRUzUOE4HkY5J7+uttb5Q==", + "dev": true, + "requires": { + "address": "^1.0.1", + "debug": "^2.6.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } + } + }, + "diacritics-map": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/diacritics-map/-/diacritics-map-0.1.0.tgz", + "integrity": "sha1-bfwP+dAQAKLt8oZTccrDFulJd68=", + "dev": true + }, + "dir-glob": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-2.0.0.tgz", + "integrity": "sha512-37qirFDz8cA5fimp9feo43fSuRo2gHwaIn6dXL8Ber1dGwUosDrGZeCCXq57WnIqE4aQ+u3eQZzsk1yOzhdwag==", + "dev": true, + "requires": { + "arrify": "^1.0.1", + "path-type": "^3.0.0" + } + }, + "docusaurus": { + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/docusaurus/-/docusaurus-1.12.0.tgz", + "integrity": "sha512-C8HUDctWn72JOxqwnP6/+fUUQFADIjNw9Tvgw9CBlXLVN6CUhuTrk3YShM5EjZILjIrcmReoHcy6lCDkCa2X8Q==", + "dev": true, + "requires": { + "@babel/core": "^7.5.5", + "@babel/plugin-proposal-class-properties": "^7.5.5", + "@babel/plugin-proposal-object-rest-spread": "^7.5.5", + "@babel/polyfill": "^7.4.4", + "@babel/preset-env": "^7.5.5", + "@babel/preset-react": "^7.0.0", + "@babel/register": "^7.5.5", + "@babel/traverse": "^7.5.5", + "@babel/types": "^7.5.5", + "autoprefixer": "^9.6.0", + "babylon": "^6.18.0", + "chalk": "^2.4.2", + "chokidar": "^3.0.2", + "classnames": "^2.2.6", + "color": "^2.0.1", + "commander": "^2.20.0", + "cross-spawn": "^6.0.5", + "crowdin-cli": "^0.3.0", + "cssnano": "^4.1.0", + "escape-string-regexp": "^2.0.0", + "express": "^4.17.1", + "feed": "^1.1.0", + "fs-extra": "^8.1.0", + "gaze": "^1.1.3", + "glob": "^7.1.3", + "highlight.js": "^9.15.8", + "imagemin": "^6.0.0", + "imagemin-gifsicle": "^6.0.1", + "imagemin-jpegtran": "^6.0.0", + "imagemin-optipng": "^6.0.0", + "imagemin-svgo": "^7.0.0", + "lodash": "^4.17.14", + "markdown-toc": "^1.2.0", + "mkdirp": "^0.5.1", + "portfinder": "^1.0.21", + "postcss": "^7.0.17", + "prismjs": "^1.16.0", + "react": "^16.8.4", + "react-dev-utils": "^9.0.1", + "react-dom": "^16.8.4", + "remarkable": "^1.7.1", + "request": "^2.88.0", + "shelljs": "^0.8.3", + "sitemap": "^3.2.2", + "tcp-port-used": "^1.0.1", + "tiny-lr": "^1.1.1", + "tree-node-cli": "^1.2.5", + "truncate-html": "^1.0.1" + }, + "dependencies": { + "escape-string-regexp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", + "dev": true + } + } + }, + "dom-serializer": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.1.tgz", + "integrity": "sha512-sK3ujri04WyjwQXVoK4PU3y8ula1stq10GJZpqHIUgoGZdsGzAGu65BnU3d08aTVSvO7mGPZUc0wTEDL+qGE0Q==", + "dev": true, + "requires": { + "domelementtype": "^2.0.1", + "entities": "^2.0.0" + }, + "dependencies": { + "domelementtype": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.0.1.tgz", + "integrity": "sha512-5HOHUDsYZWV8FGWN0Njbr/Rn7f/eWSQi1v7+HsUVwXgn8nWWlL64zKDkS0n8ZmQ3mlWOMuXOnR+7Nx/5tMO5AQ==", + "dev": true + } + } + }, + "domelementtype": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz", + "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==", + "dev": true + }, + "domhandler": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.4.2.tgz", + "integrity": "sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==", + "dev": true, + "requires": { + "domelementtype": "1" + } + }, + "domutils": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz", + "integrity": "sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==", + "dev": true, + "requires": { + "dom-serializer": "0", + "domelementtype": "1" + } + }, + "dot-prop": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-4.2.0.tgz", + "integrity": "sha512-tUMXrxlExSW6U2EXiiKGSBVdYgtV8qlHL+C10TsW4PURY/ic+eaysnSkwB4kA/mBlCyy/IKDJ+Lc3wbWeaXtuQ==", + "dev": true, + "requires": { + "is-obj": "^1.0.0" + } + }, + "download": { + "version": "6.2.5", + "resolved": "https://registry.npmjs.org/download/-/download-6.2.5.tgz", + "integrity": "sha512-DpO9K1sXAST8Cpzb7kmEhogJxymyVUd5qz/vCOSyvwtp2Klj2XcDt5YUuasgxka44SxF0q5RriKIwJmQHG2AuA==", + "dev": true, + "requires": { + "caw": "^2.0.0", + "content-disposition": "^0.5.2", + "decompress": "^4.0.0", + "ext-name": "^5.0.0", + "file-type": "5.2.0", + "filenamify": "^2.0.0", + "get-stream": "^3.0.0", + "got": "^7.0.0", + "make-dir": "^1.0.0", + "p-event": "^1.0.0", + "pify": "^3.0.0" + }, + "dependencies": { + "file-type": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/file-type/-/file-type-5.2.0.tgz", + "integrity": "sha1-LdvqfHP/42No365J3DOMBYwritY=", + "dev": true + }, + "make-dir": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", + "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", + "dev": true, + "requires": { + "pify": "^3.0.0" + } + }, + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "dev": true + } + } + }, + "duplexer": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.1.tgz", + "integrity": "sha1-rOb/gIwc5mtX0ev5eXessCM0z8E=", + "dev": true + }, + "duplexer3": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", + "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=", + "dev": true + }, + "ecc-jsbn": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", + "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", + "dev": true, + "requires": { + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" + } + }, + "ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=", + "dev": true + }, + "electron-to-chromium": { + "version": "1.3.229", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.229.tgz", + "integrity": "sha512-N6pUbSuKFBeUifxBZp9hODS1N9jFobJYW47QT2VvZIr+G5AWnHK/iG3ON9RPRGH7lHDQ6KUDVhzpNkj4ZiznoA==", + "dev": true + }, + "emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==" + }, + "emojis-list": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz", + "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=", + "dev": true + }, + "encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", + "dev": true + }, + "end-of-stream": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz", + "integrity": "sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==", + "dev": true, + "requires": { + "once": "^1.4.0" + } + }, + "entities": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.0.0.tgz", + "integrity": "sha512-D9f7V0JSRwIxlRI2mjMqufDrRDnx8p+eEOz7aUM9SuvF8gsBzra0/6tbjl1m8eQHrZlYj6PxqE00hZ1SAIKPLw==", + "dev": true + }, + "error": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/error/-/error-7.0.2.tgz", + "integrity": "sha1-pfdf/02ZJhJt2sDqXcOOaJFTywI=", + "dev": true, + "requires": { + "string-template": "~0.2.1", + "xtend": "~4.0.0" + } + }, + "error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, + "requires": { + "is-arrayish": "^0.2.1" + }, + "dependencies": { + "is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", + "dev": true + } + } + }, + "es-abstract": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.13.0.tgz", + "integrity": "sha512-vDZfg/ykNxQVwup/8E1BZhVzFfBxs9NqMzGcvIJrqg5k2/5Za2bWo40dK2J1pgLngZ7c+Shh8lwYtLGyrwPutg==", + "dev": true, + "requires": { + "es-to-primitive": "^1.2.0", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "is-callable": "^1.1.4", + "is-regex": "^1.0.4", + "object-keys": "^1.0.12" + } + }, + "es-to-primitive": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.0.tgz", + "integrity": "sha512-qZryBOJjV//LaxLTV6UC//WewneB3LcXOL9NP++ozKVXsIIIpm/2c13UDiD9Jp2eThsecw9m3jPqDwTyobcdbg==", + "dev": true, + "requires": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + } + }, + "escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=", + "dev": true + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" + }, + "esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true + }, + "esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true + }, + "etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=", + "dev": true + }, + "eventsource": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/eventsource/-/eventsource-1.0.7.tgz", + "integrity": "sha512-4Ln17+vVT0k8aWq+t/bF5arcS3EpT9gYtW66EPacdj/mAFevznsnyoHLPy2BA8gbIQeIHoPsvwmfBftfcG//BQ==", + "dev": true, + "requires": { + "original": "^1.0.0" + } + }, + "exec-buffer": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/exec-buffer/-/exec-buffer-3.2.0.tgz", + "integrity": "sha512-wsiD+2Tp6BWHoVv3B+5Dcx6E7u5zky+hUwOHjuH2hKSLR3dvRmX8fk8UD8uqQixHs4Wk6eDmiegVrMPjKj7wpA==", + "dev": true, + "requires": { + "execa": "^0.7.0", + "p-finally": "^1.0.0", + "pify": "^3.0.0", + "rimraf": "^2.5.4", + "tempfile": "^2.0.0" + }, + "dependencies": { + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "dev": true + } + } + }, + "execa": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", + "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", + "dev": true, + "requires": { + "cross-spawn": "^5.0.1", + "get-stream": "^3.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + }, + "dependencies": { + "cross-spawn": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", + "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", + "dev": true, + "requires": { + "lru-cache": "^4.0.1", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + } + } + }, + "executable": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/executable/-/executable-4.1.1.tgz", + "integrity": "sha512-8iA79xD3uAch729dUG8xaaBBFGaEa0wdD2VkYLFHwlqosEj/jT66AzcreRDSgV7ehnNLBW2WR5jIXwGKjVdTLg==", + "dev": true, + "requires": { + "pify": "^2.2.0" + }, + "dependencies": { + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true + } + } + }, + "expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "dev": true, + "requires": { + "debug": "^2.3.3", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } + } + }, + "expand-range": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz", + "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=", + "dev": true, + "requires": { + "fill-range": "^2.1.0" + }, + "dependencies": { + "fill-range": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.4.tgz", + "integrity": "sha512-cnrcCbj01+j2gTG921VZPnHbjmdAf8oQV/iGeV2kZxGSyfYjjTyY79ErsK1WJWMpw6DaApEX72binqJE+/d+5Q==", + "dev": true, + "requires": { + "is-number": "^2.1.0", + "isobject": "^2.0.0", + "randomatic": "^3.0.0", + "repeat-element": "^1.1.2", + "repeat-string": "^1.5.2" + } + }, + "is-number": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz", + "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + } + }, + "isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "dev": true, + "requires": { + "isarray": "1.0.0" + } + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "express": { + "version": "4.17.1", + "resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz", + "integrity": "sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==", + "dev": true, + "requires": { + "accepts": "~1.3.7", + "array-flatten": "1.1.1", + "body-parser": "1.19.0", + "content-disposition": "0.5.3", + "content-type": "~1.0.4", + "cookie": "0.4.0", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "~1.1.2", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "~1.1.2", + "fresh": "0.5.2", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "~2.3.0", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.5", + "qs": "6.7.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.1.2", + "send": "0.17.1", + "serve-static": "1.14.1", + "setprototypeof": "1.1.1", + "statuses": "~1.5.0", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "qs": { + "version": "6.7.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", + "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==", + "dev": true + } + } + }, + "ext-list": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/ext-list/-/ext-list-2.2.2.tgz", + "integrity": "sha512-u+SQgsubraE6zItfVA0tBuCBhfU9ogSRnsvygI7wht9TS510oLkBRXBsqopeUG/GBOIQyKZO9wjTqIu/sf5zFA==", + "dev": true, + "requires": { + "mime-db": "^1.28.0" + } + }, + "ext-name": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ext-name/-/ext-name-5.0.0.tgz", + "integrity": "sha512-yblEwXAbGv1VQDmow7s38W77hzAgJAO50ztBLMcUyUBfxv1HC+LGwtiEN+Co6LtlqT/5uwVOxsD4TNIilWhwdQ==", + "dev": true, + "requires": { + "ext-list": "^2.0.0", + "sort-keys-length": "^1.0.0" + } + }, + "extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "dev": true + }, + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "dev": true, + "requires": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4" + } + } + } + }, + "external-editor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", + "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", + "dev": true, + "requires": { + "chardet": "^0.7.0", + "iconv-lite": "^0.4.24", + "tmp": "^0.0.33" + } + }, + "extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "dev": true, + "requires": { + "array-unique": "^0.3.2", + "define-property": "^1.0.0", + "expand-brackets": "^2.1.4", + "extend-shallow": "^2.0.1", + "fragment-cache": "^0.2.1", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, + "extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", + "dev": true + }, + "fast-deep-equal": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", + "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=", + "dev": true + }, + "fast-glob": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.0.4.tgz", + "integrity": "sha512-wkIbV6qg37xTJwqSsdnIphL1e+LaGz4AIQqr00mIubMaEhv1/HEmJ0uuCGZRNRUkZZmOB5mJKO0ZUTVq+SxMQg==", + "requires": { + "@nodelib/fs.stat": "^2.0.1", + "@nodelib/fs.walk": "^1.2.1", + "glob-parent": "^5.0.0", + "is-glob": "^4.0.1", + "merge2": "^1.2.3", + "micromatch": "^4.0.2" + } + }, + "fast-json-stable-stringify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", + "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=", + "dev": true + }, + "fastq": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.6.0.tgz", + "integrity": "sha512-jmxqQ3Z/nXoeyDmWAzF9kH1aGZSis6e/SbfPmJpUnyZ0ogr6iscHQaml4wsEepEWSdtmpy+eVXmCRIMpxaXqOA==", + "requires": { + "reusify": "^1.0.0" + } + }, + "faye-websocket": { + "version": "0.11.3", + "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.3.tgz", + "integrity": "sha512-D2y4bovYpzziGgbHYtGCMjlJM36vAl/y+xUyn1C+FVx8szd1E+86KwVw6XvYSzOP8iMpm1X0I4xJD+QtUb36OA==", + "dev": true, + "requires": { + "websocket-driver": ">=0.5.1" + } + }, + "fd-slicer": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", + "integrity": "sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4=", + "dev": true, + "requires": { + "pend": "~1.2.0" + } + }, + "feed": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/feed/-/feed-1.1.1.tgz", + "integrity": "sha1-kUiXUX6U+jJ8xvc7tYWkfEqe0yE=", + "dev": true, + "requires": { + "xml": "^1.0.1" + } + }, + "figures": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz", + "integrity": "sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4=", + "dev": true, + "requires": { + "escape-string-regexp": "^1.0.5", + "object-assign": "^4.1.0" + } + }, + "file-type": { + "version": "10.11.0", + "resolved": "https://registry.npmjs.org/file-type/-/file-type-10.11.0.tgz", + "integrity": "sha512-uzk64HRpUZyTGZtVuvrjP0FYxzQrBf4rojot6J65YMEbwBLB0CWm0CLojVpwpmFmxcE/lkvYICgfcGozbBq6rw==", + "dev": true + }, + "filename-reserved-regex": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/filename-reserved-regex/-/filename-reserved-regex-2.0.0.tgz", + "integrity": "sha1-q/c9+rc10EVECr/qLZHzieu/oik=", + "dev": true + }, + "filenamify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/filenamify/-/filenamify-2.1.0.tgz", + "integrity": "sha512-ICw7NTT6RsDp2rnYKVd8Fu4cr6ITzGy3+u4vUujPkabyaz+03F24NWEX7fs5fp+kBonlaqPH8fAO2NM+SXt/JA==", + "dev": true, + "requires": { + "filename-reserved-regex": "^2.0.0", + "strip-outer": "^1.0.0", + "trim-repeated": "^1.0.0" + } + }, + "filesize": { + "version": "3.6.1", + "resolved": "https://registry.npmjs.org/filesize/-/filesize-3.6.1.tgz", + "integrity": "sha512-7KjR1vv6qnicaPMi1iiTcI85CyYwRO/PSFCu6SvqL8jN2Wjt/NIYQTFtFs7fSDCYOstUkEWIQGFUg5YZQfjlcg==", + "dev": true + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "finalhandler": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", + "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", + "dev": true, + "requires": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "~2.3.0", + "parseurl": "~1.3.3", + "statuses": "~1.5.0", + "unpipe": "~1.0.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } + } + }, + "find-cache-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz", + "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==", + "dev": true, + "requires": { + "commondir": "^1.0.1", + "make-dir": "^2.0.0", + "pkg-dir": "^3.0.0" + } + }, + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "requires": { + "locate-path": "^3.0.0" + } + }, + "find-versions": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/find-versions/-/find-versions-3.1.0.tgz", + "integrity": "sha512-NCTfNiVzeE/xL+roNDffGuRbrWI6atI18lTJ22vKp7rs2OhYzMK3W1dIdO2TUndH/QMcacM4d1uWwgcZcHK69Q==", + "dev": true, + "requires": { + "array-uniq": "^2.1.0", + "semver-regex": "^2.0.0" + }, + "dependencies": { + "array-uniq": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-2.1.0.tgz", + "integrity": "sha512-bdHxtev7FN6+MXI1YFW0Q8mQ8dTJc2S8AMfju+ZR77pbg2yAdVyDlwkaUI7Har0LyOMRFPHrJ9lYdyjZZswdlQ==", + "dev": true + } + } + }, + "for-in": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", + "dev": true + }, + "forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", + "dev": true + }, + "fork-ts-checker-webpack-plugin": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-1.5.0.tgz", + "integrity": "sha512-zEhg7Hz+KhZlBhILYpXy+Beu96gwvkROWJiTXOCyOOMMrdBIRPvsBpBqgTI4jfJGrJXcqGwJR8zsBGDmzY0jsA==", + "dev": true, + "requires": { + "babel-code-frame": "^6.22.0", + "chalk": "^2.4.1", + "chokidar": "^2.0.4", + "micromatch": "^3.1.10", + "minimatch": "^3.0.4", + "semver": "^5.6.0", + "tapable": "^1.0.0", + "worker-rpc": "^0.1.0" + }, + "dependencies": { + "anymatch": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", + "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", + "dev": true, + "requires": { + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" + }, + "dependencies": { + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "dev": true, + "requires": { + "remove-trailing-separator": "^1.0.1" + } + } + } + }, + "binary-extensions": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", + "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", + "dev": true + }, + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "requires": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "chokidar": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.6.tgz", + "integrity": "sha512-V2jUo67OKkc6ySiRpJrjlpJKl9kDuG+Xb8VgsGzb+aEouhgS1D0weyPU4lEzdAcsCAvrih2J2BqyXqHWvVLw5g==", + "dev": true, + "requires": { + "anymatch": "^2.0.0", + "async-each": "^1.0.1", + "braces": "^2.3.2", + "fsevents": "^1.2.7", + "glob-parent": "^3.1.0", + "inherits": "^2.0.3", + "is-binary-path": "^1.0.0", + "is-glob": "^4.0.0", + "normalize-path": "^3.0.0", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.2.1", + "upath": "^1.1.1" + } + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "fsevents": { + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.9.tgz", + "integrity": "sha512-oeyj2H3EjjonWcFjD5NvZNE9Rqe4UW+nQBU2HNeKw0koVLEFIhtyETyAakeAM3de7Z/SW5kcA+fZUait9EApnw==", + "dev": true, + "optional": true, + "requires": { + "nan": "^2.12.1", + "node-pre-gyp": "^0.12.0" + }, + "dependencies": { + "abbrev": { + "version": "1.1.1", + "bundled": true, + "dev": true, + "optional": true + }, + "ansi-regex": { + "version": "2.1.1", + "bundled": true, + "dev": true, + "optional": true + }, + "aproba": { + "version": "1.2.0", + "bundled": true, + "dev": true, + "optional": true + }, + "are-we-there-yet": { + "version": "1.1.5", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "delegates": "^1.0.0", + "readable-stream": "^2.0.6" + } + }, + "balanced-match": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "brace-expansion": { + "version": "1.1.11", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "chownr": { + "version": "1.1.1", + "bundled": true, + "dev": true, + "optional": true + }, + "code-point-at": { + "version": "1.1.0", + "bundled": true, + "dev": true, + "optional": true + }, + "concat-map": { + "version": "0.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "console-control-strings": { + "version": "1.1.0", + "bundled": true, + "dev": true, + "optional": true + }, + "core-util-is": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "debug": { + "version": "4.1.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "ms": "^2.1.1" + } + }, + "deep-extend": { + "version": "0.6.0", + "bundled": true, + "dev": true, + "optional": true + }, + "delegates": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "detect-libc": { + "version": "1.0.3", + "bundled": true, + "dev": true, + "optional": true + }, + "fs-minipass": { + "version": "1.2.5", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "minipass": "^2.2.1" + } + }, + "fs.realpath": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "gauge": { + "version": "2.7.4", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "aproba": "^1.0.3", + "console-control-strings": "^1.0.0", + "has-unicode": "^2.0.0", + "object-assign": "^4.1.0", + "signal-exit": "^3.0.0", + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wide-align": "^1.1.0" + } + }, + "glob": { + "version": "7.1.3", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "has-unicode": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "iconv-lite": { + "version": "0.4.24", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "ignore-walk": { + "version": "3.0.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "minimatch": "^3.0.4" + } + }, + "inflight": { + "version": "1.0.6", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.3", + "bundled": true, + "dev": true, + "optional": true + }, + "ini": { + "version": "1.3.5", + "bundled": true, + "dev": true, + "optional": true + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "isarray": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "minimatch": { + "version": "3.0.4", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "0.0.8", + "bundled": true, + "dev": true, + "optional": true + }, + "minipass": { + "version": "2.3.5", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "safe-buffer": "^5.1.2", + "yallist": "^3.0.0" + } + }, + "minizlib": { + "version": "1.2.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "minipass": "^2.2.1" + } + }, + "mkdirp": { + "version": "0.5.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "minimist": "0.0.8" + } + }, + "ms": { + "version": "2.1.1", + "bundled": true, + "dev": true, + "optional": true + }, + "needle": { + "version": "2.3.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "debug": "^4.1.0", + "iconv-lite": "^0.4.4", + "sax": "^1.2.4" + } + }, + "node-pre-gyp": { + "version": "0.12.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "detect-libc": "^1.0.2", + "mkdirp": "^0.5.1", + "needle": "^2.2.1", + "nopt": "^4.0.1", + "npm-packlist": "^1.1.6", + "npmlog": "^4.0.2", + "rc": "^1.2.7", + "rimraf": "^2.6.1", + "semver": "^5.3.0", + "tar": "^4" + } + }, + "nopt": { + "version": "4.0.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "abbrev": "1", + "osenv": "^0.1.4" + } + }, + "npm-bundled": { + "version": "1.0.6", + "bundled": true, + "dev": true, + "optional": true + }, + "npm-packlist": { + "version": "1.4.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "ignore-walk": "^3.0.1", + "npm-bundled": "^1.0.1" + } + }, + "npmlog": { + "version": "4.1.2", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "are-we-there-yet": "~1.1.2", + "console-control-strings": "~1.1.0", + "gauge": "~2.7.3", + "set-blocking": "~2.0.0" + } + }, + "number-is-nan": { + "version": "1.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "object-assign": { + "version": "4.1.1", + "bundled": true, + "dev": true, + "optional": true + }, + "once": { + "version": "1.4.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "wrappy": "1" + } + }, + "os-homedir": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "os-tmpdir": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "osenv": { + "version": "0.1.5", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" + } + }, + "path-is-absolute": { + "version": "1.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "process-nextick-args": { + "version": "2.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "rc": { + "version": "1.2.8", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + }, + "dependencies": { + "minimist": { + "version": "1.2.0", + "bundled": true, + "dev": true, + "optional": true + } + } + }, + "readable-stream": { + "version": "2.3.6", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "rimraf": { + "version": "2.6.3", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "glob": "^7.1.3" + } + }, + "safe-buffer": { + "version": "5.1.2", + "bundled": true, + "dev": true, + "optional": true + }, + "safer-buffer": { + "version": "2.1.2", + "bundled": true, + "dev": true, + "optional": true + }, + "sax": { + "version": "1.2.4", + "bundled": true, + "dev": true, + "optional": true + }, + "semver": { + "version": "5.7.0", + "bundled": true, + "dev": true, + "optional": true + }, + "set-blocking": { + "version": "2.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "signal-exit": { + "version": "3.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "string-width": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + }, + "string_decoder": { + "version": "1.1.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "safe-buffer": "~5.1.0" + } + }, + "strip-ansi": { + "version": "3.0.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "strip-json-comments": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "tar": { + "version": "4.4.8", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "chownr": "^1.1.1", + "fs-minipass": "^1.2.5", + "minipass": "^2.3.4", + "minizlib": "^1.1.1", + "mkdirp": "^0.5.0", + "safe-buffer": "^5.1.2", + "yallist": "^3.0.2" + } + }, + "util-deprecate": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "wide-align": { + "version": "1.1.3", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "string-width": "^1.0.2 || 2" + } + }, + "wrappy": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "yallist": { + "version": "3.0.3", + "bundled": true, + "dev": true, + "optional": true + } + } + }, + "glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "dev": true, + "requires": { + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" + }, + "dependencies": { + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "dev": true, + "requires": { + "is-extglob": "^2.1.0" + } + } + } + }, + "is-binary-path": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", + "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", + "dev": true, + "requires": { + "binary-extensions": "^1.0.0" + } + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + } + }, + "readdirp": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", + "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.11", + "micromatch": "^3.1.10", + "readable-stream": "^2.0.2" + } + }, + "to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "dev": true, + "requires": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + } + } + } + }, + "form-data": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", + "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", + "dev": true, + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" + } + }, + "forwarded": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz", + "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=", + "dev": true + }, + "fragment-cache": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", + "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", + "dev": true, + "requires": { + "map-cache": "^0.2.2" + } + }, + "fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=", + "dev": true + }, + "from2": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", + "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "readable-stream": "^2.0.0" + } + }, + "fs-constants": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", + "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==", + "dev": true + }, + "fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "requires": { + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" + }, + "fsevents": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.0.7.tgz", + "integrity": "sha512-a7YT0SV3RB+DjYcppwVDLtn13UQnmg0SWZS7ezZD0UjnLwXmy8Zm21GMVGLaFGimIqcvyMQaOJBrop8MyOp1kQ==", + "dev": true, + "optional": true + }, + "fstream": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.12.tgz", + "integrity": "sha512-WvJ193OHa0GHPEL+AycEJgxvBEwyfRkN1vhjca23OaPVMCaLCXTd5qAu82AjTcgP1UJmytkOKb63Ypde7raDIg==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "inherits": "~2.0.0", + "mkdirp": ">=0.5 0", + "rimraf": "2" + } + }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true + }, + "gauge": { + "version": "2.7.4", + "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", + "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", + "dev": true, + "requires": { + "aproba": "^1.0.3", + "console-control-strings": "^1.0.0", + "has-unicode": "^2.0.0", + "object-assign": "^4.1.0", + "signal-exit": "^3.0.0", + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wide-align": "^1.1.0" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "dev": true, + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "dev": true, + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + } + } + }, + "gaze": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/gaze/-/gaze-1.1.3.tgz", + "integrity": "sha512-BRdNm8hbWzFzWHERTrejLqwHDfS4GibPoq5wjTPIoJHoBtKGPg3xAFfxmM+9ztbXelxcf2hwQcaz1PtmFeue8g==", + "dev": true, + "requires": { + "globule": "^1.0.0" + } + }, + "get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==" + }, + "get-proxy": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/get-proxy/-/get-proxy-2.1.0.tgz", + "integrity": "sha512-zmZIaQTWnNQb4R4fJUEp/FC51eZsc6EkErspy3xtIYStaq8EB/hDIWipxsal+E8rz0qD7f2sL/NA9Xee4RInJw==", + "dev": true, + "requires": { + "npm-conf": "^1.1.0" + } + }, + "get-stdin": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz", + "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=", + "dev": true + }, + "get-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", + "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=", + "dev": true + }, + "get-value": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", + "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", + "dev": true + }, + "getpass": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", + "dev": true, + "requires": { + "assert-plus": "^1.0.0" + } + }, + "gifsicle": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/gifsicle/-/gifsicle-4.0.1.tgz", + "integrity": "sha512-A/kiCLfDdV+ERV/UB+2O41mifd+RxH8jlRG8DMxZO84Bma/Fw0htqZ+hY2iaalLRNyUu7tYZQslqUBJxBggxbg==", + "dev": true, + "requires": { + "bin-build": "^3.0.0", + "bin-wrapper": "^4.0.0", + "execa": "^1.0.0", + "logalot": "^2.0.0" + }, + "dependencies": { + "execa": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", + "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", + "dev": true, + "requires": { + "cross-spawn": "^6.0.0", + "get-stream": "^4.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + } + }, + "get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "dev": true, + "requires": { + "pump": "^3.0.0" + } + } + } + }, + "glob": { + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz", + "integrity": "sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==", + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "glob-parent": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.0.0.tgz", + "integrity": "sha512-Z2RwiujPRGluePM6j699ktJYxmPpJKCfpGA13jz2hmFZC7gKetzrWvg5KN3+OsIFmydGyZ1AVwERCq1w/ZZwRg==", + "requires": { + "is-glob": "^4.0.1" + } + }, + "glob-to-regexp": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz", + "integrity": "sha1-jFoUlNIGbFcMw7/kSWF1rMTVAqs=", + "dev": true + }, + "global-modules": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz", + "integrity": "sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==", + "dev": true, + "requires": { + "global-prefix": "^3.0.0" + } + }, + "global-prefix": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz", + "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==", + "dev": true, + "requires": { + "ini": "^1.3.5", + "kind-of": "^6.0.2", + "which": "^1.3.1" + } + }, + "globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true + }, + "globby": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/globby/-/globby-8.0.2.tgz", + "integrity": "sha512-yTzMmKygLp8RUpG1Ymu2VXPSJQZjNAZPD4ywgYEaG7e4tBJeUQBO8OpXrf1RCNcEs5alsoJYPAMiIHP0cmeC7w==", + "dev": true, + "requires": { + "array-union": "^1.0.1", + "dir-glob": "2.0.0", + "fast-glob": "^2.0.2", + "glob": "^7.1.2", + "ignore": "^3.3.5", + "pify": "^3.0.0", + "slash": "^1.0.0" + }, + "dependencies": { + "@nodelib/fs.stat": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-1.1.3.tgz", + "integrity": "sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw==", + "dev": true + }, + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "requires": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "fast-glob": { + "version": "2.2.7", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-2.2.7.tgz", + "integrity": "sha512-g1KuQwHOZAmOZMuBtHdxDtju+T2RT8jgCC9aANsbpdiDDTSnjgfuVsIBNKbUeJI3oKMRExcfNDtJl4OhbffMsw==", + "dev": true, + "requires": { + "@mrmlnc/readdir-enhanced": "^2.2.1", + "@nodelib/fs.stat": "^1.1.2", + "glob-parent": "^3.1.0", + "is-glob": "^4.0.0", + "merge2": "^1.2.3", + "micromatch": "^3.1.10" + } + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "dev": true, + "requires": { + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" + }, + "dependencies": { + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "dev": true, + "requires": { + "is-extglob": "^2.1.0" + } + } + } + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + } + }, + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "dev": true + }, + "to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "dev": true, + "requires": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + } + } + } + }, + "globule": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/globule/-/globule-1.2.1.tgz", + "integrity": "sha512-g7QtgWF4uYSL5/dn71WxubOrS7JVGCnFPEnoeChJmBnyR9Mw8nGoEwOgJL/RC2Te0WhbsEUCejfH8SZNJ+adYQ==", + "dev": true, + "requires": { + "glob": "~7.1.1", + "lodash": "~4.17.10", + "minimatch": "~3.0.2" + } + }, + "good-listener": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/good-listener/-/good-listener-1.2.2.tgz", + "integrity": "sha1-1TswzfkxPf+33JoNR3CWqm0UXFA=", + "dev": true, + "optional": true, + "requires": { + "delegate": "^3.1.2" + } + }, + "got": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/got/-/got-7.1.0.tgz", + "integrity": "sha512-Y5WMo7xKKq1muPsxD+KmrR8DH5auG7fBdDVueZwETwV6VytKyU9OX/ddpq2/1hp1vIPvVb4T81dKQz3BivkNLw==", + "dev": true, + "requires": { + "decompress-response": "^3.2.0", + "duplexer3": "^0.1.4", + "get-stream": "^3.0.0", + "is-plain-obj": "^1.1.0", + "is-retry-allowed": "^1.0.0", + "is-stream": "^1.0.0", + "isurl": "^1.0.0-alpha5", + "lowercase-keys": "^1.0.0", + "p-cancelable": "^0.3.0", + "p-timeout": "^1.1.1", + "safe-buffer": "^5.0.1", + "timed-out": "^4.0.0", + "url-parse-lax": "^1.0.0", + "url-to-options": "^1.0.1" + } + }, + "graceful-fs": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.2.tgz", + "integrity": "sha512-IItsdsea19BoLC7ELy13q1iJFNmd7ofZH5+X/pJr90/nRoPEX0DJo1dHDbgtYWOhJhcCgMDTOw84RZ72q6lB+Q==" + }, + "graceful-readlink": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz", + "integrity": "sha1-TK+tdrxi8C+gObL5Tpo906ORpyU=", + "dev": true + }, + "gray-matter": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/gray-matter/-/gray-matter-2.1.1.tgz", + "integrity": "sha1-MELZrewqHe1qdwep7SOA+KF6Qw4=", + "dev": true, + "requires": { + "ansi-red": "^0.1.1", + "coffee-script": "^1.12.4", + "extend-shallow": "^2.0.1", + "js-yaml": "^3.8.1", + "toml": "^2.3.2" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "gulp-header": { + "version": "1.8.12", + "resolved": "https://registry.npmjs.org/gulp-header/-/gulp-header-1.8.12.tgz", + "integrity": "sha512-lh9HLdb53sC7XIZOYzTXM4lFuXElv3EVkSDhsd7DoJBj7hm+Ni7D3qYbb+Rr8DuM8nRanBvkVO9d7askreXGnQ==", + "dev": true, + "requires": { + "concat-with-sourcemaps": "*", + "lodash.template": "^4.4.0", + "through2": "^2.0.0" + } + }, + "gzip-size": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-5.1.1.tgz", + "integrity": "sha512-FNHi6mmoHvs1mxZAds4PpdCS6QG8B4C1krxJsMutgxl5t3+GlRTzzI3NEkifXx2pVsOvJdOGSmIgDhQ55FwdPA==", + "dev": true, + "requires": { + "duplexer": "^0.1.1", + "pify": "^4.0.1" + } + }, + "har-schema": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", + "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", + "dev": true + }, + "har-validator": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz", + "integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==", + "dev": true, + "requires": { + "ajv": "^6.5.5", + "har-schema": "^2.0.0" + } + }, + "has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, + "requires": { + "function-bind": "^1.1.1" + } + }, + "has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + } + } + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" + }, + "has-symbol-support-x": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/has-symbol-support-x/-/has-symbol-support-x-1.4.2.tgz", + "integrity": "sha512-3ToOva++HaW+eCpgqZrCfN51IPB+7bJNVT6CUATzueB5Heb8o6Nam0V3HG5dlDvZU1Gn5QLcbahiKw/XVk5JJw==", + "dev": true + }, + "has-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.0.tgz", + "integrity": "sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q=", + "dev": true + }, + "has-to-string-tag-x": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/has-to-string-tag-x/-/has-to-string-tag-x-1.4.1.tgz", + "integrity": "sha512-vdbKfmw+3LoOYVr+mtxHaX5a96+0f3DljYd8JOqvOLsf5mw2Otda2qCDT9qRqLAhrjyQ0h7ual5nOiASpsGNFw==", + "dev": true, + "requires": { + "has-symbol-support-x": "^1.4.1" + } + }, + "has-unicode": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", + "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=", + "dev": true + }, + "has-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", + "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", + "dev": true, + "requires": { + "get-value": "^2.0.6", + "has-values": "^1.0.0", + "isobject": "^3.0.0" + } + }, + "has-values": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", + "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", + "dev": true, + "requires": { + "is-number": "^3.0.0", + "kind-of": "^4.0.0" + }, + "dependencies": { + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "kind-of": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "hex-color-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/hex-color-regex/-/hex-color-regex-1.1.0.tgz", + "integrity": "sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ==", + "dev": true + }, + "highlight.js": { + "version": "9.15.9", + "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-9.15.9.tgz", + "integrity": "sha512-M0zZvfLr5p0keDMCAhNBp03XJbKBxUx5AfyfufMdFMEP4N/Xj6dh0IqC75ys7BAzceR34NgcvXjupRVaHBPPVQ==", + "dev": true + }, + "hosted-git-info": { + "version": "2.8.4", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.4.tgz", + "integrity": "sha512-pzXIvANXEFrc5oFFXRMkbLPQ2rXRoDERwDLyrcUxGhaZhgP54BBSl9Oheh7Vv0T090cszWBxPjkQQ5Sq1PbBRQ==", + "dev": true + }, + "hsl-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/hsl-regex/-/hsl-regex-1.0.0.tgz", + "integrity": "sha1-1JMwx4ntgZ4nakwNJy3/owsY/m4=", + "dev": true + }, + "hsla-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/hsla-regex/-/hsla-regex-1.0.0.tgz", + "integrity": "sha1-wc56MWjIxmFAM6S194d/OyJfnDg=", + "dev": true + }, + "html-comment-regex": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/html-comment-regex/-/html-comment-regex-1.1.2.tgz", + "integrity": "sha512-P+M65QY2JQ5Y0G9KKdlDpo0zK+/OHptU5AaBwUfAIDJZk1MYf32Frm84EcOytfJE0t5JvkAnKlmjsXDnWzCJmQ==", + "dev": true + }, + "htmlparser2": { + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.10.1.tgz", + "integrity": "sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ==", + "dev": true, + "requires": { + "domelementtype": "^1.3.1", + "domhandler": "^2.3.0", + "domutils": "^1.5.1", + "entities": "^1.1.1", + "inherits": "^2.0.1", + "readable-stream": "^3.1.1" + }, + "dependencies": { + "entities": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz", + "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==", + "dev": true + }, + "readable-stream": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.4.0.tgz", + "integrity": "sha512-jItXPLmrSR8jmTRmRWJXCnGJsfy85mB3Wd/uINMXA65yrnFo0cPClFIUWzo2najVNSl+mx7/4W8ttlLWJe99pQ==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + } + } + }, + "http-cache-semantics": { + "version": "3.8.1", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-3.8.1.tgz", + "integrity": "sha512-5ai2iksyV8ZXmnZhHH4rWPoxxistEexSi5936zIQ1bnNTW5VnA85B6P/VpXiRM017IgRvb2kKo1a//y+0wSp3w==", + "dev": true + }, + "http-errors": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz", + "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==", + "dev": true, + "requires": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.1", + "statuses": ">= 1.5.0 < 2", + "toidentifier": "1.0.0" + }, + "dependencies": { + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + } + } + }, + "http-parser-js": { + "version": "0.4.10", + "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.4.10.tgz", + "integrity": "sha1-ksnBN0w1CF912zWexWzCV8u5P6Q=", + "dev": true + }, + "http-signature": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", + "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", + "dev": true, + "requires": { + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" + } + }, + "iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "ieee754": { + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.13.tgz", + "integrity": "sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg==", + "dev": true + }, + "ignore": { + "version": "3.3.10", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.10.tgz", + "integrity": "sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug==", + "dev": true + }, + "imagemin": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/imagemin/-/imagemin-6.1.0.tgz", + "integrity": "sha512-8ryJBL1CN5uSHpiBMX0rJw79C9F9aJqMnjGnrd/1CafegpNuA81RBAAru/jQQEOWlOJJlpRnlcVFF6wq+Ist0A==", + "dev": true, + "requires": { + "file-type": "^10.7.0", + "globby": "^8.0.1", + "make-dir": "^1.0.0", + "p-pipe": "^1.1.0", + "pify": "^4.0.1", + "replace-ext": "^1.0.0" + }, + "dependencies": { + "make-dir": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", + "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", + "dev": true, + "requires": { + "pify": "^3.0.0" + }, + "dependencies": { + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "dev": true + } + } + } + } + }, + "imagemin-gifsicle": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/imagemin-gifsicle/-/imagemin-gifsicle-6.0.1.tgz", + "integrity": "sha512-kuu47c6iKDQ6R9J10xCwL0lgs0+sMz3LRHqRcJ2CRBWdcNmo3T5hUaM8hSZfksptZXJLGKk8heSAvwtSdB1Fng==", + "dev": true, + "requires": { + "exec-buffer": "^3.0.0", + "gifsicle": "^4.0.0", + "is-gif": "^3.0.0" + } + }, + "imagemin-jpegtran": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/imagemin-jpegtran/-/imagemin-jpegtran-6.0.0.tgz", + "integrity": "sha512-Ih+NgThzqYfEWv9t58EItncaaXIHR0u9RuhKa8CtVBlMBvY0dCIxgQJQCfwImA4AV1PMfmUKlkyIHJjb7V4z1g==", + "dev": true, + "requires": { + "exec-buffer": "^3.0.0", + "is-jpg": "^2.0.0", + "jpegtran-bin": "^4.0.0" + } + }, + "imagemin-optipng": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/imagemin-optipng/-/imagemin-optipng-6.0.0.tgz", + "integrity": "sha512-FoD2sMXvmoNm/zKPOWdhKpWdFdF9qiJmKC17MxZJPH42VMAp17/QENI/lIuP7LCUnLVAloO3AUoTSNzfhpyd8A==", + "dev": true, + "requires": { + "exec-buffer": "^3.0.0", + "is-png": "^1.0.0", + "optipng-bin": "^5.0.0" + } + }, + "imagemin-svgo": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/imagemin-svgo/-/imagemin-svgo-7.0.0.tgz", + "integrity": "sha512-+iGJFaPIMx8TjFW6zN+EkOhlqcemdL7F3N3Y0wODvV2kCUBuUtZK7DRZc1+Zfu4U2W/lTMUyx2G8YMOrZntIWg==", + "dev": true, + "requires": { + "is-svg": "^3.0.0", + "svgo": "^1.0.5" + } + }, + "immer": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/immer/-/immer-1.10.0.tgz", + "integrity": "sha512-O3sR1/opvCDGLEVcvrGTMtLac8GJ5IwZC4puPrLuRj3l7ICKvkmA0vGuU9OW8mV9WIBRnaxp5GJh9IEAaNOoYg==", + "dev": true + }, + "import-fresh": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz", + "integrity": "sha1-2BNVwVYS04bGH53dOSLUMEgipUY=", + "dev": true, + "requires": { + "caller-path": "^2.0.0", + "resolve-from": "^3.0.0" + } + }, + "import-lazy": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-3.1.0.tgz", + "integrity": "sha512-8/gvXvX2JMn0F+CDlSC4l6kOmVaLOO3XLkksI7CI3Ud95KDYJuYur2b9P/PUt/i/pDAMd/DulQsNbbbmRRsDIQ==", + "dev": true + }, + "in-publish": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/in-publish/-/in-publish-2.0.0.tgz", + "integrity": "sha1-4g/146KvwmkDILbcVSaCqcf631E=", + "dev": true + }, + "indent-string": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz", + "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=", + "dev": true, + "requires": { + "repeating": "^2.0.0" + } + }, + "indexes-of": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/indexes-of/-/indexes-of-1.0.1.tgz", + "integrity": "sha1-8w9xbI4r00bHtn0985FVZqfAVgc=", + "dev": true + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "ini": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", + "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==", + "dev": true + }, + "inquirer": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-6.5.0.tgz", + "integrity": "sha512-scfHejeG/lVZSpvCXpsB4j/wQNPM5JC8kiElOI0OUTwmc1RTpXr4H32/HOlQHcZiYl2z2VElwuCVDRG8vFmbnA==", + "dev": true, + "requires": { + "ansi-escapes": "^3.2.0", + "chalk": "^2.4.2", + "cli-cursor": "^2.1.0", + "cli-width": "^2.0.0", + "external-editor": "^3.0.3", + "figures": "^2.0.0", + "lodash": "^4.17.12", + "mute-stream": "0.0.7", + "run-async": "^2.2.0", + "rxjs": "^6.4.0", + "string-width": "^2.1.0", + "strip-ansi": "^5.1.0", + "through": "^2.3.6" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + }, + "figures": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", + "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", + "dev": true, + "requires": { + "escape-string-regexp": "^1.0.5" + } + }, + "string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "dev": true, + "requires": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + }, + "dependencies": { + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "requires": { + "ansi-regex": "^3.0.0" + } + } + } + } + } + }, + "interpret": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.2.0.tgz", + "integrity": "sha512-mT34yGKMNceBQUoVn7iCDKDntA7SC6gycMAWzGx1z/CMCTV7b2AAtXlo3nRyHZ1FelRkQbQjprHSYGwzLtkVbw==", + "dev": true + }, + "into-stream": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/into-stream/-/into-stream-3.1.0.tgz", + "integrity": "sha1-lvsKk2wSur1v8XUqF9BWFqvQlMY=", + "dev": true, + "requires": { + "from2": "^2.1.1", + "p-is-promise": "^1.1.0" + } + }, + "invariant": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", + "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", + "dev": true, + "requires": { + "loose-envify": "^1.0.0" + } + }, + "invert-kv": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", + "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=", + "dev": true + }, + "ip-regex": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-2.1.0.tgz", + "integrity": "sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk=", + "dev": true + }, + "ipaddr.js": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.0.tgz", + "integrity": "sha512-M4Sjn6N/+O6/IXSJseKqHoFc+5FdGJ22sXqnjTpdZweHK64MzEPAyQZyEU3R/KRv2GLoa7nNtg/C2Ev6m7z+eA==", + "dev": true + }, + "is-absolute-url": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-2.1.0.tgz", + "integrity": "sha1-UFMN+4T8yap9vnhS6Do3uTufKqY=", + "dev": true + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-arrayish": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", + "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==", + "dev": true + }, + "is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "requires": { + "binary-extensions": "^2.0.0" + } + }, + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true + }, + "is-callable": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.4.tgz", + "integrity": "sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA==", + "dev": true + }, + "is-color-stop": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-color-stop/-/is-color-stop-1.1.0.tgz", + "integrity": "sha1-z/9HGu5N1cnhWFmPvhKWe1za00U=", + "dev": true, + "requires": { + "css-color-names": "^0.0.4", + "hex-color-regex": "^1.1.0", + "hsl-regex": "^1.0.0", + "hsla-regex": "^1.0.0", + "rgb-regex": "^1.0.1", + "rgba-regex": "^1.0.0" + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-date-object": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.1.tgz", + "integrity": "sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY=", + "dev": true + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "dependencies": { + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + } + } + }, + "is-directory": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz", + "integrity": "sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE=", + "dev": true + }, + "is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "dev": true + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=" + }, + "is-finite": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", + "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", + "dev": true, + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" + }, + "is-gif": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-gif/-/is-gif-3.0.0.tgz", + "integrity": "sha512-IqJ/jlbw5WJSNfwQ/lHEDXF8rxhRgF6ythk2oiEvhpG29F704eX9NO6TvPfMiq9DrbwgcEDnETYNcZDPewQoVw==", + "dev": true, + "requires": { + "file-type": "^10.4.0" + } + }, + "is-glob": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", + "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-jpg": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-jpg/-/is-jpg-2.0.0.tgz", + "integrity": "sha1-LhmX+m6RZuqsAkLarkQ0A+TvHZc=", + "dev": true + }, + "is-natural-number": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-natural-number/-/is-natural-number-4.0.1.tgz", + "integrity": "sha1-q5124dtM7VHjXeDHLr7PCfc0zeg=", + "dev": true + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" + }, + "is-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", + "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=", + "dev": true + }, + "is-object": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-object/-/is-object-1.0.1.tgz", + "integrity": "sha1-iVJojF7C/9awPsyF52ngKQMINHA=", + "dev": true + }, + "is-plain-obj": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", + "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=", + "dev": true + }, + "is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "requires": { + "isobject": "^3.0.1" + } + }, + "is-png": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-png/-/is-png-1.1.0.tgz", + "integrity": "sha1-1XSxK/J1wDUEVVcLDltXqwYgd84=", + "dev": true + }, + "is-promise": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz", + "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=", + "dev": true + }, + "is-regex": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz", + "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=", + "dev": true, + "requires": { + "has": "^1.0.1" + } + }, + "is-resolvable": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.1.0.tgz", + "integrity": "sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg==", + "dev": true + }, + "is-retry-allowed": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.1.0.tgz", + "integrity": "sha1-EaBgVotnM5REAz0BJaYaINVk+zQ=", + "dev": true + }, + "is-root": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-root/-/is-root-2.1.0.tgz", + "integrity": "sha512-AGOriNp96vNBd3HtU+RzFEc75FfR5ymiYv8E553I71SCeXBiMsVDUtdio1OEFvrPyLIQ9tVR5RxXIFe5PUFjMg==", + "dev": true + }, + "is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", + "dev": true + }, + "is-svg": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-svg/-/is-svg-3.0.0.tgz", + "integrity": "sha512-gi4iHK53LR2ujhLVVj+37Ykh9GLqYHX6JOVXbLAucaG/Cqw9xwdFOjDM2qeifLs1sF1npXXFvDu0r5HNgCMrzQ==", + "dev": true, + "requires": { + "html-comment-regex": "^1.1.0" + } + }, + "is-symbol": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.2.tgz", + "integrity": "sha512-HS8bZ9ox60yCJLH9snBpIwv9pYUAkcuLhSA1oero1UB5y9aiQpRA8y2ex945AOtCZL1lJDeIk3G5LthswI46Lw==", + "dev": true, + "requires": { + "has-symbols": "^1.0.0" + } + }, + "is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", + "dev": true + }, + "is-url": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/is-url/-/is-url-1.2.4.tgz", + "integrity": "sha512-ITvGim8FhRiYe4IQ5uHSkj7pVaPDrCTkNd3yq3cV7iZAcJdHTUMPMEHcqSOy9xZ9qFenQCvi+2wjH9a1nXqHww==", + "dev": true + }, + "is-utf8": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", + "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=", + "dev": true + }, + "is-windows": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", + "dev": true + }, + "is-wsl": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", + "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=", + "dev": true + }, + "is2": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is2/-/is2-2.0.1.tgz", + "integrity": "sha512-+WaJvnaA7aJySz2q/8sLjMb2Mw14KTplHmSwcSpZ/fWJPkUmqw3YTzSWbPJ7OAwRvdYTWF2Wg+yYJ1AdP5Z8CA==", + "dev": true, + "requires": { + "deep-is": "^0.1.3", + "ip-regex": "^2.1.0", + "is-url": "^1.2.2" + } + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "dev": true + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + }, + "isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", + "dev": true + }, + "isurl": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isurl/-/isurl-1.0.0.tgz", + "integrity": "sha512-1P/yWsxPlDtn7QeRD+ULKQPaIaN6yF368GZ2vDfv0AL0NwpStafjWCDDdn0k8wgFMWpVAqG7oJhxHnlud42i9w==", + "dev": true, + "requires": { + "has-to-string-tag-x": "^1.2.0", + "is-object": "^1.0.1" + } + }, + "jpegtran-bin": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jpegtran-bin/-/jpegtran-bin-4.0.0.tgz", + "integrity": "sha512-2cRl1ism+wJUoYAYFt6O/rLBfpXNWG2dUWbgcEkTt5WGMnqI46eEro8T4C5zGROxKRqyKpCBSdHPvt5UYCtxaQ==", + "dev": true, + "requires": { + "bin-build": "^3.0.0", + "bin-wrapper": "^4.0.0", + "logalot": "^2.0.0" + } + }, + "js-base64": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.5.1.tgz", + "integrity": "sha512-M7kLczedRMYX4L8Mdh4MzyAMM9O5osx+4FcOQuTvr3A9F2D9S5JXheN0ewNbrvK2UatkTRhL5ejGmGSjNMiZuw==", + "dev": true + }, + "js-levenshtein": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/js-levenshtein/-/js-levenshtein-1.1.6.tgz", + "integrity": "sha512-X2BB11YZtrRqY4EnQcLX5Rh373zbK4alC1FW7D7MBhL2gtcC17cTnr6DmfHZeS0s2rTHjUTMMHfG7gO8SSdw+g==", + "dev": true + }, + "js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, + "js-yaml": { + "version": "3.13.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz", + "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==", + "dev": true, + "requires": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + } + }, + "jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", + "dev": true + }, + "jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true + }, + "json-buffer": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", + "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=", + "dev": true + }, + "json-parse-better-errors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", + "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", + "dev": true + }, + "json-schema": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", + "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", + "dev": true + }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", + "dev": true + }, + "json3": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/json3/-/json3-3.3.3.tgz", + "integrity": "sha512-c7/8mbUsKigAbLkD5B010BK4D9LZm7A1pNItkEwiUZRpIN66exu/e7YQWysGun+TRKaJp8MhemM+VkfWv42aCA==", + "dev": true + }, + "json5": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.0.tgz", + "integrity": "sha512-8Mh9h6xViijj36g7Dxi+Y4S6hNGV96vcJZr/SrlHh1LR/pEn/8j/+qIBbs44YKl69Lrfctp4QD+AdWLTMqEZAQ==", + "dev": true, + "requires": { + "minimist": "^1.2.0" + } + }, + "jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + "requires": { + "graceful-fs": "^4.1.6" + } + }, + "jsonify": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", + "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=", + "dev": true + }, + "jsprim": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", + "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", + "dev": true, + "requires": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.2.3", + "verror": "1.10.0" + } + }, + "keyv": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.0.0.tgz", + "integrity": "sha512-eguHnq22OE3uVoSYG0LVWNP+4ppamWr9+zWBe1bsNcovIMy6huUJFPgy4mGwCd/rnl3vOLGW1MTlu4c57CT1xA==", + "dev": true, + "requires": { + "json-buffer": "3.0.0" + } + }, + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "dev": true + }, + "lazy-cache": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-2.0.2.tgz", + "integrity": "sha1-uRkKT5EzVGlIQIWfio9whNiCImQ=", + "dev": true, + "requires": { + "set-getter": "^0.1.0" + } + }, + "lcid": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", + "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", + "dev": true, + "requires": { + "invert-kv": "^1.0.0" + } + }, + "list-item": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/list-item/-/list-item-1.1.1.tgz", + "integrity": "sha1-DGXQDih8tmPMs8s4Sad+iewmilY=", + "dev": true, + "requires": { + "expand-range": "^1.8.1", + "extend-shallow": "^2.0.1", + "is-number": "^2.1.0", + "repeat-string": "^1.5.2" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "is-number": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz", + "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + } + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "livereload-js": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/livereload-js/-/livereload-js-2.4.0.tgz", + "integrity": "sha512-XPQH8Z2GDP/Hwz2PCDrh2mth4yFejwA1OZ/81Ti3LgKyhDcEjsSsqFWZojHG0va/duGd+WyosY7eXLDoOyqcPw==", + "dev": true + }, + "load-json-file": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", + "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "parse-json": "^2.2.0", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0", + "strip-bom": "^2.0.0" + }, + "dependencies": { + "parse-json": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", + "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", + "dev": true, + "requires": { + "error-ex": "^1.2.0" + } + }, + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true + } + } + }, + "loader-utils": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.2.3.tgz", + "integrity": "sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA==", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^2.0.0", + "json5": "^1.0.1" + }, + "dependencies": { + "json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "dev": true, + "requires": { + "minimist": "^1.2.0" + } + } + } + }, + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, + "lodash": { + "version": "4.17.15", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz", + "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==", + "dev": true + }, + "lodash._reinterpolate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz", + "integrity": "sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0=", + "dev": true + }, + "lodash.assignin": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/lodash.assignin/-/lodash.assignin-4.2.0.tgz", + "integrity": "sha1-uo31+4QesKPoBEIysOJjqNxqKKI=", + "dev": true + }, + "lodash.bind": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/lodash.bind/-/lodash.bind-4.2.1.tgz", + "integrity": "sha1-euMBfpOWIqwxt9fX3LGzTbFpDTU=", + "dev": true + }, + "lodash.chunk": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/lodash.chunk/-/lodash.chunk-4.2.0.tgz", + "integrity": "sha1-ZuXOH3btJ7QwPYxlEujRIW6BBrw=", + "dev": true + }, + "lodash.defaults": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-4.2.0.tgz", + "integrity": "sha1-0JF4cW/+pN3p5ft7N/bwgCJ0WAw=", + "dev": true + }, + "lodash.filter": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/lodash.filter/-/lodash.filter-4.6.0.tgz", + "integrity": "sha1-ZosdSYFgOuHMWm+nYBQ+SAtMSs4=", + "dev": true + }, + "lodash.flatten": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/lodash.flatten/-/lodash.flatten-4.4.0.tgz", + "integrity": "sha1-8xwiIlqWMtK7+OSt2+8kCqdlph8=", + "dev": true + }, + "lodash.foreach": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.foreach/-/lodash.foreach-4.5.0.tgz", + "integrity": "sha1-Gmo16s5AEoDH8G3d7DUWWrJ+PlM=", + "dev": true + }, + "lodash.map": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/lodash.map/-/lodash.map-4.6.0.tgz", + "integrity": "sha1-dx7Hg540c9nEzeKLGTlMNWL09tM=", + "dev": true + }, + "lodash.memoize": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", + "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=", + "dev": true + }, + "lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true + }, + "lodash.padstart": { + "version": "4.6.1", + "resolved": "https://registry.npmjs.org/lodash.padstart/-/lodash.padstart-4.6.1.tgz", + "integrity": "sha1-0uPuv/DZ05rVD1y9G1KnvOa7YRs=", + "dev": true + }, + "lodash.pick": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/lodash.pick/-/lodash.pick-4.4.0.tgz", + "integrity": "sha1-UvBWEP/53tQiYRRB7R/BI6AwAbM=", + "dev": true + }, + "lodash.reduce": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/lodash.reduce/-/lodash.reduce-4.6.0.tgz", + "integrity": "sha1-8atrg5KZrUj3hKu/R2WW8DuRTTs=", + "dev": true + }, + "lodash.reject": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/lodash.reject/-/lodash.reject-4.6.0.tgz", + "integrity": "sha1-gNZJLcFHCGS79YNTO2UfQqn1JBU=", + "dev": true + }, + "lodash.some": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/lodash.some/-/lodash.some-4.6.0.tgz", + "integrity": "sha1-G7nzFO9ri63tE7VJFpsqlF62jk0=", + "dev": true + }, + "lodash.sortby": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", + "integrity": "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=", + "dev": true + }, + "lodash.template": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.template/-/lodash.template-4.5.0.tgz", + "integrity": "sha512-84vYFxIkmidUiFxidA/KjjH9pAycqW+h980j7Fuz5qxRtO9pgB7MDFTdys1N7A5mcucRiDyEq4fusljItR1T/A==", + "dev": true, + "requires": { + "lodash._reinterpolate": "^3.0.0", + "lodash.templatesettings": "^4.0.0" + } + }, + "lodash.templatesettings": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-4.2.0.tgz", + "integrity": "sha512-stgLz+i3Aa9mZgnjr/O+v9ruKZsPsndy7qPZOchbqk2cnTU1ZaldKK+v7m54WoKIyxiuMZTKT2H81F8BeAc3ZQ==", + "dev": true, + "requires": { + "lodash._reinterpolate": "^3.0.0" + } + }, + "lodash.uniq": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", + "integrity": "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=", + "dev": true + }, + "logalot": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/logalot/-/logalot-2.1.0.tgz", + "integrity": "sha1-X46MkNME7fElMJUaVVSruMXj9VI=", + "dev": true, + "requires": { + "figures": "^1.3.5", + "squeak": "^1.0.0" + } + }, + "longest": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz", + "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=", + "dev": true + }, + "loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "dev": true, + "requires": { + "js-tokens": "^3.0.0 || ^4.0.0" + } + }, + "loud-rejection": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz", + "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=", + "dev": true, + "requires": { + "currently-unhandled": "^0.4.1", + "signal-exit": "^3.0.0" + } + }, + "lowercase-keys": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", + "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", + "dev": true + }, + "lpad-align": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/lpad-align/-/lpad-align-1.1.2.tgz", + "integrity": "sha1-IfYArBwwlcPG5JfuZyce4ISB/p4=", + "dev": true, + "requires": { + "get-stdin": "^4.0.1", + "indent-string": "^2.1.0", + "longest": "^1.0.0", + "meow": "^3.3.0" + } + }, + "lru-cache": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", + "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", + "dev": true, + "requires": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + }, + "make-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", + "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", + "dev": true, + "requires": { + "pify": "^4.0.1", + "semver": "^5.6.0" + } + }, + "map-cache": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", + "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", + "dev": true + }, + "map-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", + "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=", + "dev": true + }, + "map-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", + "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", + "dev": true, + "requires": { + "object-visit": "^1.0.0" + } + }, + "markdown-link": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/markdown-link/-/markdown-link-0.1.1.tgz", + "integrity": "sha1-MsXGUZmmRXMWMi0eQinRNAfIx88=", + "dev": true + }, + "markdown-toc": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/markdown-toc/-/markdown-toc-1.2.0.tgz", + "integrity": "sha512-eOsq7EGd3asV0oBfmyqngeEIhrbkc7XVP63OwcJBIhH2EpG2PzFcbZdhy1jutXSlRBBVMNXHvMtSr5LAxSUvUg==", + "dev": true, + "requires": { + "concat-stream": "^1.5.2", + "diacritics-map": "^0.1.0", + "gray-matter": "^2.1.0", + "lazy-cache": "^2.0.2", + "list-item": "^1.1.1", + "markdown-link": "^0.1.1", + "minimist": "^1.2.0", + "mixin-deep": "^1.1.3", + "object.pick": "^1.2.0", + "remarkable": "^1.7.1", + "repeat-string": "^1.6.1", + "strip-color": "^0.1.0" + } + }, + "math-random": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/math-random/-/math-random-1.0.4.tgz", + "integrity": "sha512-rUxjysqif/BZQH2yhd5Aaq7vXMSx9NdEsQcyA07uEzIvxgI7zIr33gGsh+RU0/XjmQpCW7RsVof1vlkvQVCK5A==", + "dev": true + }, + "mdn-data": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.4.tgz", + "integrity": "sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA==", + "dev": true + }, + "media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=", + "dev": true + }, + "meow": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz", + "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=", + "dev": true, + "requires": { + "camelcase-keys": "^2.0.0", + "decamelize": "^1.1.2", + "loud-rejection": "^1.0.0", + "map-obj": "^1.0.1", + "minimist": "^1.1.3", + "normalize-package-data": "^2.3.4", + "object-assign": "^4.0.1", + "read-pkg-up": "^1.0.1", + "redent": "^1.0.0", + "trim-newlines": "^1.0.0" + } + }, + "merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=", + "dev": true + }, + "merge2": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.2.4.tgz", + "integrity": "sha512-FYE8xI+6pjFOhokZu0We3S5NKCirLbCzSh2Usf3qEyr4X8U+0jNg9P8RZ4qz+V2UoECLVwSyzU3LxXBaLGtD3A==" + }, + "methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=", + "dev": true + }, + "microevent.ts": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/microevent.ts/-/microevent.ts-0.1.1.tgz", + "integrity": "sha512-jo1OfR4TaEwd5HOrt5+tAZ9mqT4jmpNAusXtyfNzqVm9uiSYFZlKM1wYL4oU7azZW/PxQW53wM0S6OR1JHNa2g==", + "dev": true + }, + "micromatch": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz", + "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==", + "requires": { + "braces": "^3.0.1", + "picomatch": "^2.0.5" + } + }, + "mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "dev": true + }, + "mime-db": { + "version": "1.40.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.40.0.tgz", + "integrity": "sha512-jYdeOMPy9vnxEqFRRo6ZvTZ8d9oPb+k18PKoYNYUe2stVEBPPwsln/qWzdbmaIvnhZ9v2P+CuecK+fpUfsV2mA==", + "dev": true + }, + "mime-types": { + "version": "2.1.24", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.24.tgz", + "integrity": "sha512-WaFHS3MCl5fapm3oLxU4eYDw77IQM2ACcxQ9RIxfaC3ooc6PFuBMGZZsYpvoXS5D5QTWPieo1jjLdAm3TBP3cQ==", + "dev": true, + "requires": { + "mime-db": "1.40.0" + } + }, + "mimic-fn": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", + "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", + "dev": true + }, + "mimic-response": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", + "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", + "dev": true + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "dev": true + }, + "mixin-deep": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", + "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", + "dev": true, + "requires": { + "for-in": "^1.0.2", + "is-extendable": "^1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4" + } + } + } + }, + "mkdirp": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", + "dev": true, + "requires": { + "minimist": "0.0.8" + }, + "dependencies": { + "minimist": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", + "dev": true + } + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "mute-stream": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", + "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=", + "dev": true + }, + "nan": { + "version": "2.14.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.0.tgz", + "integrity": "sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg==", + "dev": true + }, + "nanomatch": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", + "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", + "dev": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "fragment-cache": "^0.2.1", + "is-windows": "^1.0.2", + "kind-of": "^6.0.2", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + } + }, + "negotiator": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", + "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==", + "dev": true + }, + "nice-try": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", + "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", + "dev": true + }, + "node-gyp": { + "version": "3.8.0", + "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-3.8.0.tgz", + "integrity": "sha512-3g8lYefrRRzvGeSowdJKAKyks8oUpLEd/DyPV4eMhVlhJ0aNaZqIrNUIPuEWWTAoPqyFkfGrM67MC69baqn6vA==", + "dev": true, + "requires": { + "fstream": "^1.0.0", + "glob": "^7.0.3", + "graceful-fs": "^4.1.2", + "mkdirp": "^0.5.0", + "nopt": "2 || 3", + "npmlog": "0 || 1 || 2 || 3 || 4", + "osenv": "0", + "request": "^2.87.0", + "rimraf": "2", + "semver": "~5.3.0", + "tar": "^2.0.0", + "which": "1" + }, + "dependencies": { + "semver": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz", + "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=", + "dev": true + } + } + }, + "node-modules-regexp": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/node-modules-regexp/-/node-modules-regexp-1.0.0.tgz", + "integrity": "sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA=", + "dev": true + }, + "node-releases": { + "version": "1.1.27", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.27.tgz", + "integrity": "sha512-9iXUqHKSGo6ph/tdXVbHFbhRVQln4ZDTIBJCzsa90HimnBYc5jw8RWYt4wBYFHehGyC3koIz5O4mb2fHrbPOuA==", + "dev": true, + "requires": { + "semver": "^5.3.0" + } + }, + "node-sass": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/node-sass/-/node-sass-4.12.0.tgz", + "integrity": "sha512-A1Iv4oN+Iel6EPv77/HddXErL2a+gZ4uBeZUy+a8O35CFYTXhgA8MgLCWBtwpGZdCvTvQ9d+bQxX/QC36GDPpQ==", + "dev": true, + "requires": { + "async-foreach": "^0.1.3", + "chalk": "^1.1.1", + "cross-spawn": "^3.0.0", + "gaze": "^1.0.0", + "get-stdin": "^4.0.1", + "glob": "^7.0.3", + "in-publish": "^2.0.0", + "lodash": "^4.17.11", + "meow": "^3.7.0", + "mkdirp": "^0.5.1", + "nan": "^2.13.2", + "node-gyp": "^3.8.0", + "npmlog": "^4.0.0", + "request": "^2.88.0", + "sass-graph": "^2.2.4", + "stdout-stream": "^1.4.0", + "true-case-path": "^1.0.2" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + }, + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, + "requires": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + } + }, + "cross-spawn": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-3.0.1.tgz", + "integrity": "sha1-ElYDfsufDF9549bvE14wdwGEuYI=", + "dev": true, + "requires": { + "lru-cache": "^4.0.1", + "which": "^1.2.9" + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + } + } + }, + "nopt": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz", + "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=", + "dev": true, + "requires": { + "abbrev": "1" + } + }, + "normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "dev": true, + "requires": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true + }, + "normalize-range": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", + "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=", + "dev": true + }, + "normalize-url": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-3.3.0.tgz", + "integrity": "sha512-U+JJi7duF1o+u2pynbp2zXDW2/PADgC30f0GsHZtRh+HOcXHnw137TrNlyxxRvWW5fjKd3bcLHPxofWuCjaeZg==", + "dev": true + }, + "npm-conf": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/npm-conf/-/npm-conf-1.1.3.tgz", + "integrity": "sha512-Yic4bZHJOt9RCFbRP3GgpqhScOY4HH3V2P8yBj6CeYq118Qr+BLXqT2JvpJ00mryLESpgOxf5XlFv4ZjXxLScw==", + "dev": true, + "requires": { + "config-chain": "^1.1.11", + "pify": "^3.0.0" + }, + "dependencies": { + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "dev": true + } + } + }, + "npm-run-path": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", + "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", + "dev": true, + "requires": { + "path-key": "^2.0.0" + } + }, + "npmlog": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", + "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", + "dev": true, + "requires": { + "are-we-there-yet": "~1.1.2", + "console-control-strings": "~1.1.0", + "gauge": "~2.7.3", + "set-blocking": "~2.0.0" + } + }, + "nth-check": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz", + "integrity": "sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==", + "dev": true, + "requires": { + "boolbase": "~1.0.0" + } + }, + "num2fraction": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz", + "integrity": "sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4=", + "dev": true + }, + "number-is-nan": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", + "dev": true + }, + "oauth-sign": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", + "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", + "dev": true + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "dev": true + }, + "object-copy": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", + "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", + "dev": true, + "requires": { + "copy-descriptor": "^0.1.0", + "define-property": "^0.2.5", + "kind-of": "^3.0.3" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true + }, + "object-visit": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", + "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", + "dev": true, + "requires": { + "isobject": "^3.0.0" + } + }, + "object.assign": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz", + "integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==", + "dev": true, + "requires": { + "define-properties": "^1.1.2", + "function-bind": "^1.1.1", + "has-symbols": "^1.0.0", + "object-keys": "^1.0.11" + } + }, + "object.getownpropertydescriptors": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.0.3.tgz", + "integrity": "sha1-h1jIRvW0B62rDyNuCYbxSwUcqhY=", + "dev": true, + "requires": { + "define-properties": "^1.1.2", + "es-abstract": "^1.5.1" + } + }, + "object.pick": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", + "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", + "dev": true, + "requires": { + "isobject": "^3.0.1" + } + }, + "object.values": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.0.tgz", + "integrity": "sha512-8mf0nKLAoFX6VlNVdhGj31SVYpaNFtUnuoOXWyFEstsWRgU837AK+JYM0iAxwkSzGRbwn8cbFmgbyxj1j4VbXg==", + "dev": true, + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.12.0", + "function-bind": "^1.1.1", + "has": "^1.0.3" + } + }, + "on-finished": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", + "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", + "dev": true, + "requires": { + "ee-first": "1.1.1" + } + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "requires": { + "wrappy": "1" + } + }, + "onetime": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", + "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", + "dev": true, + "requires": { + "mimic-fn": "^1.0.0" + } + }, + "open": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/open/-/open-6.4.0.tgz", + "integrity": "sha512-IFenVPgF70fSm1keSd2iDBIDIBZkroLeuffXq+wKTzTJlBpesFWojV9lb8mzOfaAzM1sr7HQHuO0vtV0zYekGg==", + "dev": true, + "requires": { + "is-wsl": "^1.1.0" + } + }, + "optipng-bin": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/optipng-bin/-/optipng-bin-5.1.0.tgz", + "integrity": "sha512-9baoqZTNNmXQjq/PQTWEXbVV3AMO2sI/GaaqZJZ8SExfAzjijeAP7FEeT+TtyumSw7gr0PZtSUYB/Ke7iHQVKA==", + "dev": true, + "requires": { + "bin-build": "^3.0.0", + "bin-wrapper": "^4.0.0", + "logalot": "^2.0.0" + } + }, + "original": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/original/-/original-1.0.2.tgz", + "integrity": "sha512-hyBVl6iqqUOJ8FqRe+l/gS8H+kKYjrEndd5Pm1MfBtsEKA038HkkdbAl/72EAXGyonD/PFsvmVG+EvcIpliMBg==", + "dev": true, + "requires": { + "url-parse": "^1.4.3" + } + }, + "os-filter-obj": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/os-filter-obj/-/os-filter-obj-2.0.0.tgz", + "integrity": "sha512-uksVLsqG3pVdzzPvmAHpBK0wKxYItuzZr7SziusRPoz67tGV8rL1szZ6IdeUrbqLjGDwApBtN29eEE3IqGHOjg==", + "dev": true, + "requires": { + "arch": "^2.1.0" + } + }, + "os-homedir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", + "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", + "dev": true + }, + "os-locale": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz", + "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=", + "dev": true, + "requires": { + "lcid": "^1.0.0" + } + }, + "os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", + "dev": true + }, + "osenv": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", + "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", + "dev": true, + "requires": { + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" + } + }, + "p-cancelable": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-0.3.0.tgz", + "integrity": "sha512-RVbZPLso8+jFeq1MfNvgXtCRED2raz/dKpacfTNxsx6pLEpEomM7gah6VeHSYV3+vo0OAi4MkArtQcWWXuQoyw==", + "dev": true + }, + "p-event": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-event/-/p-event-1.3.0.tgz", + "integrity": "sha1-jmtPT2XHK8W2/ii3XtqHT5akoIU=", + "dev": true, + "requires": { + "p-timeout": "^1.1.1" + } + }, + "p-finally": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", + "dev": true + }, + "p-is-promise": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-1.1.0.tgz", + "integrity": "sha1-nJRWmJ6fZYgBewQ01WCXZ1w9oF4=", + "dev": true + }, + "p-limit": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.0.tgz", + "integrity": "sha512-pZbTJpoUsCzV48Mc9Nh51VbwO0X9cuPFE8gYwx9BTCt9SF8/b7Zljd2fVgOxhIF/HDTKgpVzs+GPhyKfjLLFRQ==", + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "requires": { + "p-limit": "^2.0.0" + } + }, + "p-map-series": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-map-series/-/p-map-series-1.0.0.tgz", + "integrity": "sha1-v5j+V1cFZYqeE1G++4WuTB8Hvco=", + "dev": true, + "requires": { + "p-reduce": "^1.0.0" + } + }, + "p-pipe": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/p-pipe/-/p-pipe-1.2.0.tgz", + "integrity": "sha1-SxoROZoRUgpneQ7loMHViB1r7+k=", + "dev": true + }, + "p-reduce": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-reduce/-/p-reduce-1.0.0.tgz", + "integrity": "sha1-GMKw3ZNqRpClKfgjH1ig/bakffo=", + "dev": true + }, + "p-timeout": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-1.2.1.tgz", + "integrity": "sha1-XrOzU7f86Z8QGhA4iAuwVOu+o4Y=", + "dev": true, + "requires": { + "p-finally": "^1.0.0" + } + }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==" + }, + "parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", + "dev": true, + "requires": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + } + }, + "parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "dev": true + }, + "pascalcase": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", + "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", + "dev": true + }, + "path-dirname": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", + "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=", + "dev": true + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=" + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" + }, + "path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", + "dev": true + }, + "path-parse": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", + "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==", + "dev": true + }, + "path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=", + "dev": true + }, + "path-type": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", + "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", + "dev": true, + "requires": { + "pify": "^3.0.0" + }, + "dependencies": { + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "dev": true + } + } + }, + "pend": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", + "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=", + "dev": true + }, + "performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", + "dev": true + }, + "picomatch": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.0.7.tgz", + "integrity": "sha512-oLHIdio3tZ0qH76NybpeneBhYVj0QFTfXEFTc/B3zKQspYfYYkWYgFsmzo+4kvId/bQRcNkVeguI3y+CD22BtA==" + }, + "pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "dev": true + }, + "pinkie": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", + "dev": true + }, + "pinkie-promise": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", + "dev": true, + "requires": { + "pinkie": "^2.0.0" + } + }, + "pirates": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.1.tgz", + "integrity": "sha512-WuNqLTbMI3tmfef2TKxlQmAiLHKtFhlsCZnPIpuv2Ow0RDVO8lfy1Opf4NUzlMXLjPl+Men7AuVdX6TA+s+uGA==", + "dev": true, + "requires": { + "node-modules-regexp": "^1.0.0" + } + }, + "pkg-dir": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", + "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", + "dev": true, + "requires": { + "find-up": "^3.0.0" + } + }, + "pkg-up": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-2.0.0.tgz", + "integrity": "sha1-yBmscoBZpGHKscOImivjxJoATX8=", + "dev": true, + "requires": { + "find-up": "^2.1.0" + }, + "dependencies": { + "find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "dev": true, + "requires": { + "locate-path": "^2.0.0" + } + }, + "locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "dev": true, + "requires": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + } + }, + "p-limit": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "dev": true, + "requires": { + "p-try": "^1.0.0" + } + }, + "p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "dev": true, + "requires": { + "p-limit": "^1.1.0" + } + }, + "p-try": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", + "dev": true + } + } + }, + "portfinder": { + "version": "1.0.21", + "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.21.tgz", + "integrity": "sha512-ESabpDCzmBS3ekHbmpAIiESq3udRsCBGiBZLsC+HgBKv2ezb0R4oG+7RnYEVZ/ZCfhel5Tx3UzdNWA0Lox2QCA==", + "dev": true, + "requires": { + "async": "^1.5.2", + "debug": "^2.2.0", + "mkdirp": "0.5.x" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } + } + }, + "posix-character-classes": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", + "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", + "dev": true + }, + "postcss": { + "version": "7.0.17", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.17.tgz", + "integrity": "sha512-546ZowA+KZ3OasvQZHsbuEpysvwTZNGJv9EfyCQdsIDltPSWHAeTQ5fQy/Npi2ZDtLI3zs7Ps/p6wThErhm9fQ==", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-calc": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-7.0.1.tgz", + "integrity": "sha512-oXqx0m6tb4N3JGdmeMSc/i91KppbYsFZKdH0xMOqK8V1rJlzrKlTdokz8ozUXLVejydRN6u2IddxpcijRj2FqQ==", + "dev": true, + "requires": { + "css-unit-converter": "^1.1.1", + "postcss": "^7.0.5", + "postcss-selector-parser": "^5.0.0-rc.4", + "postcss-value-parser": "^3.3.1" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + } + } + }, + "postcss-colormin": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-4.0.3.tgz", + "integrity": "sha512-WyQFAdDZpExQh32j0U0feWisZ0dmOtPl44qYmJKkq9xFWY3p+4qnRzCHeNrkeRhwPHz9bQ3mo0/yVkaply0MNw==", + "dev": true, + "requires": { + "browserslist": "^4.0.0", + "color": "^3.0.0", + "has": "^1.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "color": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/color/-/color-3.1.2.tgz", + "integrity": "sha512-vXTJhHebByxZn3lDvDJYw4lR5+uB3vuoHsuYA5AKuxRVn5wzzIfQKGLBmgdVRHKTJYeK5rvJcHnrd0Li49CFpg==", + "dev": true, + "requires": { + "color-convert": "^1.9.1", + "color-string": "^1.5.2" + } + }, + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + } + } + }, + "postcss-convert-values": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-4.0.1.tgz", + "integrity": "sha512-Kisdo1y77KUC0Jmn0OXU/COOJbzM8cImvw1ZFsBgBgMgb1iL23Zs/LXRe3r+EZqM3vGYKdQ2YJVQ5VkJI+zEJQ==", + "dev": true, + "requires": { + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + } + } + }, + "postcss-discard-comments": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-4.0.2.tgz", + "integrity": "sha512-RJutN259iuRf3IW7GZyLM5Sw4GLTOH8FmsXBnv8Ab/Tc2k4SR4qbV4DNbyyY4+Sjo362SyDmW2DQ7lBSChrpkg==", + "dev": true, + "requires": { + "postcss": "^7.0.0" + } + }, + "postcss-discard-duplicates": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-4.0.2.tgz", + "integrity": "sha512-ZNQfR1gPNAiXZhgENFfEglF93pciw0WxMkJeVmw8eF+JZBbMD7jp6C67GqJAXVZP2BWbOztKfbsdmMp/k8c6oQ==", + "dev": true, + "requires": { + "postcss": "^7.0.0" + } + }, + "postcss-discard-empty": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-4.0.1.tgz", + "integrity": "sha512-B9miTzbznhDjTfjvipfHoqbWKwd0Mj+/fL5s1QOz06wufguil+Xheo4XpOnc4NqKYBCNqqEzgPv2aPBIJLox0w==", + "dev": true, + "requires": { + "postcss": "^7.0.0" + } + }, + "postcss-discard-overridden": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-4.0.1.tgz", + "integrity": "sha512-IYY2bEDD7g1XM1IDEsUT4//iEYCxAmP5oDSFMVU/JVvT7gh+l4fmjciLqGgwjdWpQIdb0Che2VX00QObS5+cTg==", + "dev": true, + "requires": { + "postcss": "^7.0.0" + } + }, + "postcss-merge-longhand": { + "version": "4.0.11", + "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-4.0.11.tgz", + "integrity": "sha512-alx/zmoeXvJjp7L4mxEMjh8lxVlDFX1gqWHzaaQewwMZiVhLo42TEClKaeHbRf6J7j82ZOdTJ808RtN0ZOZwvw==", + "dev": true, + "requires": { + "css-color-names": "0.0.4", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0", + "stylehacks": "^4.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + } + } + }, + "postcss-merge-rules": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-4.0.3.tgz", + "integrity": "sha512-U7e3r1SbvYzO0Jr3UT/zKBVgYYyhAz0aitvGIYOYK5CPmkNih+WDSsS5tvPrJ8YMQYlEMvsZIiqmn7HdFUaeEQ==", + "dev": true, + "requires": { + "browserslist": "^4.0.0", + "caniuse-api": "^3.0.0", + "cssnano-util-same-parent": "^4.0.0", + "postcss": "^7.0.0", + "postcss-selector-parser": "^3.0.0", + "vendors": "^1.0.0" + }, + "dependencies": { + "postcss-selector-parser": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.1.tgz", + "integrity": "sha1-T4dfSvsMllc9XPTXQBGu4lCn6GU=", + "dev": true, + "requires": { + "dot-prop": "^4.1.1", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + } + } + } + }, + "postcss-minify-font-values": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-4.0.2.tgz", + "integrity": "sha512-j85oO6OnRU9zPf04+PZv1LYIYOprWm6IA6zkXkrJXyRveDEuQggG6tvoy8ir8ZwjLxLuGfNkCZEQG7zan+Hbtg==", + "dev": true, + "requires": { + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + } + } + }, + "postcss-minify-gradients": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-4.0.2.tgz", + "integrity": "sha512-qKPfwlONdcf/AndP1U8SJ/uzIJtowHlMaSioKzebAXSG4iJthlWC9iSWznQcX4f66gIWX44RSA841HTHj3wK+Q==", + "dev": true, + "requires": { + "cssnano-util-get-arguments": "^4.0.0", + "is-color-stop": "^1.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + } + } + }, + "postcss-minify-params": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-4.0.2.tgz", + "integrity": "sha512-G7eWyzEx0xL4/wiBBJxJOz48zAKV2WG3iZOqVhPet/9geefm/Px5uo1fzlHu+DOjT+m0Mmiz3jkQzVHe6wxAWg==", + "dev": true, + "requires": { + "alphanum-sort": "^1.0.0", + "browserslist": "^4.0.0", + "cssnano-util-get-arguments": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0", + "uniqs": "^2.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + } + } + }, + "postcss-minify-selectors": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-4.0.2.tgz", + "integrity": "sha512-D5S1iViljXBj9kflQo4YutWnJmwm8VvIsU1GeXJGiG9j8CIg9zs4voPMdQDUmIxetUOh60VilsNzCiAFTOqu3g==", + "dev": true, + "requires": { + "alphanum-sort": "^1.0.0", + "has": "^1.0.0", + "postcss": "^7.0.0", + "postcss-selector-parser": "^3.0.0" + }, + "dependencies": { + "postcss-selector-parser": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.1.tgz", + "integrity": "sha1-T4dfSvsMllc9XPTXQBGu4lCn6GU=", + "dev": true, + "requires": { + "dot-prop": "^4.1.1", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + } + } + } + }, + "postcss-normalize-charset": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-4.0.1.tgz", + "integrity": "sha512-gMXCrrlWh6G27U0hF3vNvR3w8I1s2wOBILvA87iNXaPvSNo5uZAMYsZG7XjCUf1eVxuPfyL4TJ7++SGZLc9A3g==", + "dev": true, + "requires": { + "postcss": "^7.0.0" + } + }, + "postcss-normalize-display-values": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-4.0.2.tgz", + "integrity": "sha512-3F2jcsaMW7+VtRMAqf/3m4cPFhPD3EFRgNs18u+k3lTJJlVe7d0YPO+bnwqo2xg8YiRpDXJI2u8A0wqJxMsQuQ==", + "dev": true, + "requires": { + "cssnano-util-get-match": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + } + } + }, + "postcss-normalize-positions": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-4.0.2.tgz", + "integrity": "sha512-Dlf3/9AxpxE+NF1fJxYDeggi5WwV35MXGFnnoccP/9qDtFrTArZ0D0R+iKcg5WsUd8nUYMIl8yXDCtcrT8JrdA==", + "dev": true, + "requires": { + "cssnano-util-get-arguments": "^4.0.0", + "has": "^1.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + } + } + }, + "postcss-normalize-repeat-style": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-4.0.2.tgz", + "integrity": "sha512-qvigdYYMpSuoFs3Is/f5nHdRLJN/ITA7huIoCyqqENJe9PvPmLhNLMu7QTjPdtnVf6OcYYO5SHonx4+fbJE1+Q==", + "dev": true, + "requires": { + "cssnano-util-get-arguments": "^4.0.0", + "cssnano-util-get-match": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + } + } + }, + "postcss-normalize-string": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-4.0.2.tgz", + "integrity": "sha512-RrERod97Dnwqq49WNz8qo66ps0swYZDSb6rM57kN2J+aoyEAJfZ6bMx0sx/F9TIEX0xthPGCmeyiam/jXif0eA==", + "dev": true, + "requires": { + "has": "^1.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + } + } + }, + "postcss-normalize-timing-functions": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-4.0.2.tgz", + "integrity": "sha512-acwJY95edP762e++00Ehq9L4sZCEcOPyaHwoaFOhIwWCDfik6YvqsYNxckee65JHLKzuNSSmAdxwD2Cud1Z54A==", + "dev": true, + "requires": { + "cssnano-util-get-match": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + } + } + }, + "postcss-normalize-unicode": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-4.0.1.tgz", + "integrity": "sha512-od18Uq2wCYn+vZ/qCOeutvHjB5jm57ToxRaMeNuf0nWVHaP9Hua56QyMF6fs/4FSUnVIw0CBPsU0K4LnBPwYwg==", + "dev": true, + "requires": { + "browserslist": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + } + } + }, + "postcss-normalize-url": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-4.0.1.tgz", + "integrity": "sha512-p5oVaF4+IHwu7VpMan/SSpmpYxcJMtkGppYf0VbdH5B6hN8YNmVyJLuY9FmLQTzY3fag5ESUUHDqM+heid0UVA==", + "dev": true, + "requires": { + "is-absolute-url": "^2.0.0", + "normalize-url": "^3.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + } + } + }, + "postcss-normalize-whitespace": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-4.0.2.tgz", + "integrity": "sha512-tO8QIgrsI3p95r8fyqKV+ufKlSHh9hMJqACqbv2XknufqEDhDvbguXGBBqxw9nsQoXWf0qOqppziKJKHMD4GtA==", + "dev": true, + "requires": { + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + } + } + }, + "postcss-ordered-values": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-4.1.2.tgz", + "integrity": "sha512-2fCObh5UanxvSxeXrtLtlwVThBvHn6MQcu4ksNT2tsaV2Fg76R2CV98W7wNSlX+5/pFwEyaDwKLLoEV7uRybAw==", + "dev": true, + "requires": { + "cssnano-util-get-arguments": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + } + } + }, + "postcss-reduce-initial": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-4.0.3.tgz", + "integrity": "sha512-gKWmR5aUulSjbzOfD9AlJiHCGH6AEVLaM0AV+aSioxUDd16qXP1PCh8d1/BGVvpdWn8k/HiK7n6TjeoXN1F7DA==", + "dev": true, + "requires": { + "browserslist": "^4.0.0", + "caniuse-api": "^3.0.0", + "has": "^1.0.0", + "postcss": "^7.0.0" + } + }, + "postcss-reduce-transforms": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-4.0.2.tgz", + "integrity": "sha512-EEVig1Q2QJ4ELpJXMZR8Vt5DQx8/mo+dGWSR7vWXqcob2gQLyQGsionYcGKATXvQzMPn6DSN1vTN7yFximdIAg==", + "dev": true, + "requires": { + "cssnano-util-get-match": "^4.0.0", + "has": "^1.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + } + } + }, + "postcss-selector-parser": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-5.0.0.tgz", + "integrity": "sha512-w+zLE5Jhg6Liz8+rQOWEAwtwkyqpfnmsinXjXg6cY7YIONZZtgvE0v2O0uhQBs0peNomOJwWRKt6JBfTdTd3OQ==", + "dev": true, + "requires": { + "cssesc": "^2.0.0", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + } + }, + "postcss-svgo": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-4.0.2.tgz", + "integrity": "sha512-C6wyjo3VwFm0QgBy+Fu7gCYOkCmgmClghO+pjcxvrcBKtiKt0uCF+hvbMO1fyv5BMImRK90SMb+dwUnfbGd+jw==", + "dev": true, + "requires": { + "is-svg": "^3.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0", + "svgo": "^1.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "dev": true + } + } + }, + "postcss-unique-selectors": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-4.0.1.tgz", + "integrity": "sha512-+JanVaryLo9QwZjKrmJgkI4Fn8SBgRO6WXQBJi7KiAVPlmxikB5Jzc4EvXMT2H0/m0RjrVVm9rGNhZddm/8Spg==", + "dev": true, + "requires": { + "alphanum-sort": "^1.0.0", + "postcss": "^7.0.0", + "uniqs": "^2.0.0" + } + }, + "postcss-value-parser": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.0.2.tgz", + "integrity": "sha512-LmeoohTpp/K4UiyQCwuGWlONxXamGzCMtFxLq4W1nZVGIQLYvMCJx3yAF9qyyuFpflABI9yVdtJAqbihOsCsJQ==", + "dev": true + }, + "prepend-http": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", + "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=", + "dev": true + }, + "prismjs": { + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.17.1.tgz", + "integrity": "sha512-PrEDJAFdUGbOP6xK/UsfkC5ghJsPJviKgnQOoxaDbBjwc8op68Quupwt1DeAFoG8GImPhiKXAvvsH7wDSLsu1Q==", + "dev": true, + "requires": { + "clipboard": "^2.0.0" + } + }, + "private": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz", + "integrity": "sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==", + "dev": true + }, + "process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "dev": true + }, + "prop-types": { + "version": "15.7.2", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.7.2.tgz", + "integrity": "sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ==", + "dev": true, + "requires": { + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.8.1" + } + }, + "proto-list": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz", + "integrity": "sha1-IS1b/hMYMGpCD2QCuOJv85ZHqEk=", + "dev": true + }, + "proxy-addr": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.5.tgz", + "integrity": "sha512-t/7RxHXPH6cJtP0pRG6smSr9QJidhB+3kXu0KgXnbGYMgzEnUxRQ4/LDdfOwZEMyIh3/xHb8PX3t+lfL9z+YVQ==", + "dev": true, + "requires": { + "forwarded": "~0.1.2", + "ipaddr.js": "1.9.0" + } + }, + "pseudomap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", + "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", + "dev": true + }, + "psl": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.3.0.tgz", + "integrity": "sha512-avHdspHO+9rQTLbv1RO+MPYeP/SzsCoxofjVnHanETfQhTJrmB0HlDoW+EiN/R+C0BZ+gERab9NY0lPN2TxNag==", + "dev": true + }, + "pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "dev": true, + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "dev": true + }, + "q": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", + "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=", + "dev": true + }, + "qs": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", + "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", + "dev": true + }, + "query-string": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/query-string/-/query-string-5.1.1.tgz", + "integrity": "sha512-gjWOsm2SoGlgLEdAGt7a6slVOk9mGiXmPFMqrEhLQ68rhQuBnpfs3+EmlvqKyxnCo9/PPlF+9MtY02S1aFg+Jw==", + "dev": true, + "requires": { + "decode-uri-component": "^0.2.0", + "object-assign": "^4.1.0", + "strict-uri-encode": "^1.0.0" + } + }, + "querystringify": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.1.1.tgz", + "integrity": "sha512-w7fLxIRCRT7U8Qu53jQnJyPkYZIaR4n5151KMfcJlO/A9397Wxb1amJvROTK6TOnp7PfoAmg/qXiNHI+08jRfA==", + "dev": true + }, + "randomatic": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-3.1.1.tgz", + "integrity": "sha512-TuDE5KxZ0J461RVjrJZCJc+J+zCkTb1MbH9AQUq68sMhOMcy9jLcb3BrZKgp9q9Ncltdg4QVqWrH02W2EFFVYw==", + "dev": true, + "requires": { + "is-number": "^4.0.0", + "kind-of": "^6.0.0", + "math-random": "^1.0.1" + }, + "dependencies": { + "is-number": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", + "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==", + "dev": true + } + } + }, + "range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "dev": true + }, + "raw-body": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz", + "integrity": "sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==", + "dev": true, + "requires": { + "bytes": "3.1.0", + "http-errors": "1.7.2", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + } + }, + "react": { + "version": "16.9.0", + "resolved": "https://registry.npmjs.org/react/-/react-16.9.0.tgz", + "integrity": "sha512-+7LQnFBwkiw+BobzOF6N//BdoNw0ouwmSJTEm9cglOOmsg/TMiFHZLe2sEoN5M7LgJTj9oHH0gxklfnQe66S1w==", + "dev": true, + "requires": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1", + "prop-types": "^15.6.2" + } + }, + "react-dev-utils": { + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/react-dev-utils/-/react-dev-utils-9.0.3.tgz", + "integrity": "sha512-OyInhcwsvycQ3Zr2pQN+HV4gtRXrky5mJXIy4HnqrWa+mI624xfYfqGuC9dYbxp4Qq3YZzP8GSGQjv0AgNU15w==", + "dev": true, + "requires": { + "@babel/code-frame": "7.5.5", + "address": "1.1.0", + "browserslist": "4.6.6", + "chalk": "2.4.2", + "cross-spawn": "6.0.5", + "detect-port-alt": "1.1.6", + "escape-string-regexp": "1.0.5", + "filesize": "3.6.1", + "find-up": "3.0.0", + "fork-ts-checker-webpack-plugin": "1.5.0", + "global-modules": "2.0.0", + "globby": "8.0.2", + "gzip-size": "5.1.1", + "immer": "1.10.0", + "inquirer": "6.5.0", + "is-root": "2.1.0", + "loader-utils": "1.2.3", + "open": "^6.3.0", + "pkg-up": "2.0.0", + "react-error-overlay": "^6.0.1", + "recursive-readdir": "2.2.2", + "shell-quote": "1.6.1", + "sockjs-client": "1.3.0", + "strip-ansi": "5.2.0", + "text-table": "0.2.0" + } + }, + "react-dom": { + "version": "16.9.0", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-16.9.0.tgz", + "integrity": "sha512-YFT2rxO9hM70ewk9jq0y6sQk8cL02xm4+IzYBz75CQGlClQQ1Bxq0nhHF6OtSbit+AIahujJgb/CPRibFkMNJQ==", + "dev": true, + "requires": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1", + "prop-types": "^15.6.2", + "scheduler": "^0.15.0" + } + }, + "react-error-overlay": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/react-error-overlay/-/react-error-overlay-6.0.1.tgz", + "integrity": "sha512-V9yoTr6MeZXPPd4nV/05eCBvGH9cGzc52FN8fs0O0TVQ3HYYf1n7EgZVtHbldRq5xU9zEzoXIITjYNIfxDDdUw==", + "dev": true + }, + "react-is": { + "version": "16.9.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.9.0.tgz", + "integrity": "sha512-tJBzzzIgnnRfEm046qRcURvwQnZVXmuCbscxUO5RWrGTXpon2d4c8mI0D8WE6ydVIm29JiLB6+RslkIvym9Rjw==", + "dev": true + }, + "read-pkg": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", + "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", + "dev": true, + "requires": { + "load-json-file": "^1.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^1.0.0" + }, + "dependencies": { + "path-type": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", + "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + } + }, + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true + } + } + }, + "read-pkg-up": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", + "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", + "dev": true, + "requires": { + "find-up": "^1.0.0", + "read-pkg": "^1.0.0" + }, + "dependencies": { + "find-up": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", + "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", + "dev": true, + "requires": { + "path-exists": "^2.0.0", + "pinkie-promise": "^2.0.0" + } + }, + "path-exists": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", + "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", + "dev": true, + "requires": { + "pinkie-promise": "^2.0.0" + } + } + } + }, + "readable-stream": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", + "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "readdirp": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.1.2.tgz", + "integrity": "sha512-8rhl0xs2cxfVsqzreYCvs8EwBfn/DhVdqtoLmw19uI3SC5avYX9teCurlErfpPXGmYtMHReGaP2RsLnFvz/lnw==", + "dev": true, + "requires": { + "picomatch": "^2.0.4" + } + }, + "rechoir": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", + "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=", + "dev": true, + "requires": { + "resolve": "^1.1.6" + } + }, + "recursive-readdir": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/recursive-readdir/-/recursive-readdir-2.2.2.tgz", + "integrity": "sha512-nRCcW9Sj7NuZwa2XvH9co8NPeXUBhZP7CRKJtU+cS6PW9FpCIFoI5ib0NT1ZrbNuPoRy0ylyCaUL8Gih4LSyFg==", + "dev": true, + "requires": { + "minimatch": "3.0.4" + } + }, + "redent": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz", + "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=", + "dev": true, + "requires": { + "indent-string": "^2.1.0", + "strip-indent": "^1.0.1" + } + }, + "regenerate": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.0.tgz", + "integrity": "sha512-1G6jJVDWrt0rK99kBjvEtziZNCICAuvIPkSiUFIQxVP06RCVpq3dmDo2oi6ABpYaDYaTRr67BEhL8r1wgEZZKg==", + "dev": true + }, + "regenerate-unicode-properties": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-8.1.0.tgz", + "integrity": "sha512-LGZzkgtLY79GeXLm8Dp0BVLdQlWICzBnJz/ipWUgo59qBaZ+BHtq51P2q1uVZlppMuUAT37SDk39qUbjTWB7bA==", + "dev": true, + "requires": { + "regenerate": "^1.4.0" + } + }, + "regenerator-runtime": { + "version": "0.13.3", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.3.tgz", + "integrity": "sha512-naKIZz2GQ8JWh///G7L3X6LaQUAMp2lvb1rvwwsURe/VXwD6VMfr+/1NuNw3ag8v2kY1aQ/go5SNn79O9JU7yw==", + "dev": true + }, + "regenerator-transform": { + "version": "0.14.1", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.1.tgz", + "integrity": "sha512-flVuee02C3FKRISbxhXl9mGzdbWUVHubl1SMaknjxkFB1/iqpJhArQUvRxOOPEc/9tAiX0BaQ28FJH10E4isSQ==", + "dev": true, + "requires": { + "private": "^0.1.6" + } + }, + "regex-not": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", + "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", + "dev": true, + "requires": { + "extend-shallow": "^3.0.2", + "safe-regex": "^1.1.0" + } + }, + "regexp-tree": { + "version": "0.1.11", + "resolved": "https://registry.npmjs.org/regexp-tree/-/regexp-tree-0.1.11.tgz", + "integrity": "sha512-7/l/DgapVVDzZobwMCCgMlqiqyLFJ0cduo/j+3BcDJIB+yJdsYCfKuI3l/04NV+H/rfNRdPIDbXNZHM9XvQatg==", + "dev": true + }, + "regexpu-core": { + "version": "4.5.5", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.5.5.tgz", + "integrity": "sha512-FpI67+ky9J+cDizQUJlIlNZFKual/lUkFr1AG6zOCpwZ9cLrg8UUVakyUQJD7fCDIe9Z2nwTQJNPyonatNmDFQ==", + "dev": true, + "requires": { + "regenerate": "^1.4.0", + "regenerate-unicode-properties": "^8.1.0", + "regjsgen": "^0.5.0", + "regjsparser": "^0.6.0", + "unicode-match-property-ecmascript": "^1.0.4", + "unicode-match-property-value-ecmascript": "^1.1.0" + } + }, + "regjsgen": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.0.tgz", + "integrity": "sha512-RnIrLhrXCX5ow/E5/Mh2O4e/oa1/jW0eaBKTSy3LaCj+M3Bqvm97GWDp2yUtzIs4LEn65zR2yiYGFqb2ApnzDA==", + "dev": true + }, + "regjsparser": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.0.tgz", + "integrity": "sha512-RQ7YyokLiQBomUJuUG8iGVvkgOLxwyZM8k6d3q5SAXpg4r5TZJZigKFvC6PpD+qQ98bCDC5YelPeA3EucDoNeQ==", + "dev": true, + "requires": { + "jsesc": "~0.5.0" + }, + "dependencies": { + "jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", + "dev": true + } + } + }, + "remarkable": { + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/remarkable/-/remarkable-1.7.4.tgz", + "integrity": "sha512-e6NKUXgX95whv7IgddywbeN/ItCkWbISmc2DiqHJb0wTrqZIexqdco5b8Z3XZoo/48IdNVKM9ZCvTPJ4F5uvhg==", + "dev": true, + "requires": { + "argparse": "^1.0.10", + "autolinker": "~0.28.0" + } + }, + "remove-trailing-separator": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", + "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", + "dev": true + }, + "repeat-element": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz", + "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==", + "dev": true + }, + "repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", + "dev": true + }, + "repeating": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", + "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", + "dev": true, + "requires": { + "is-finite": "^1.0.0" + } + }, + "replace-ext": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.0.tgz", + "integrity": "sha1-3mMSg3P8v3w8z6TeWkgMRaZ5WOs=", + "dev": true + }, + "replace-in-file": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/replace-in-file/-/replace-in-file-4.1.3.tgz", + "integrity": "sha512-x8uSfKKK/5YiJ8JYsNMwa1PJYvHfPdUABVXd21ro09Nh5BRZ5ATuACwrqCNpktwVqVbFTk/cIGFepeMqY0oX3g==", + "requires": { + "chalk": "^2.4.2", + "glob": "^7.1.4", + "yargs": "^13.3.0" + } + }, + "request": { + "version": "2.88.0", + "resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz", + "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==", + "dev": true, + "requires": { + "aws-sign2": "~0.7.0", + "aws4": "^1.8.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.6", + "extend": "~3.0.2", + "forever-agent": "~0.6.1", + "form-data": "~2.3.2", + "har-validator": "~5.1.0", + "http-signature": "~1.2.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.19", + "oauth-sign": "~0.9.0", + "performance-now": "^2.1.0", + "qs": "~6.5.2", + "safe-buffer": "^5.1.2", + "tough-cookie": "~2.4.3", + "tunnel-agent": "^0.6.0", + "uuid": "^3.3.2" + } + }, + "require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" + }, + "require-main-filename": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==" + }, + "requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=", + "dev": true + }, + "resolve": { + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.12.0.tgz", + "integrity": "sha512-B/dOmuoAik5bKcD6s6nXDCjzUKnaDvdkRyAk6rsmsKLipWj4797iothd7jmmUhWTfinVMU+wc56rYKsit2Qy4w==", + "dev": true, + "requires": { + "path-parse": "^1.0.6" + } + }, + "resolve-from": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", + "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=", + "dev": true + }, + "resolve-url": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", + "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", + "dev": true + }, + "responselike": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", + "integrity": "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=", + "dev": true, + "requires": { + "lowercase-keys": "^1.0.0" + } + }, + "restore-cursor": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", + "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", + "dev": true, + "requires": { + "onetime": "^2.0.0", + "signal-exit": "^3.0.2" + } + }, + "ret": { + "version": "0.1.15", + "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", + "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", + "dev": true + }, + "reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==" + }, + "rgb-regex": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/rgb-regex/-/rgb-regex-1.0.1.tgz", + "integrity": "sha1-wODWiC3w4jviVKR16O3UGRX+rrE=", + "dev": true + }, + "rgba-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/rgba-regex/-/rgba-regex-1.0.0.tgz", + "integrity": "sha1-QzdOLiyglosO8VI0YLfXMP8i7rM=", + "dev": true + }, + "rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + }, + "run-async": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz", + "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=", + "dev": true, + "requires": { + "is-promise": "^2.1.0" + } + }, + "run-parallel": { + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.1.9.tgz", + "integrity": "sha512-DEqnSRTDw/Tc3FXf49zedI638Z9onwUotBMiUFKmrO2sdFKIbXamXGQ3Axd4qgphxKB4kw/qP1w5kTxnfU1B9Q==" + }, + "rxjs": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.2.tgz", + "integrity": "sha512-HUb7j3kvb7p7eCUHE3FqjoDsC1xfZQ4AHFWfTKSpZ+sAhhz5X1WX0ZuUqWbzB2QhSLp3DoLUG+hMdEDKqWo2Zg==", + "dev": true, + "requires": { + "tslib": "^1.9.0" + } + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "safe-json-parse": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/safe-json-parse/-/safe-json-parse-1.0.1.tgz", + "integrity": "sha1-PnZyPjjf3aE8mx0poeB//uSzC1c=", + "dev": true + }, + "safe-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", + "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", + "dev": true, + "requires": { + "ret": "~0.1.10" + } + }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true + }, + "sass-graph": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/sass-graph/-/sass-graph-2.2.4.tgz", + "integrity": "sha1-E/vWPNHK8JCLn9k0dq1DpR0eC0k=", + "dev": true, + "requires": { + "glob": "^7.0.0", + "lodash": "^4.0.0", + "scss-tokenizer": "^0.2.3", + "yargs": "^7.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + }, + "camelcase": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", + "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=", + "dev": true + }, + "cliui": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", + "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", + "dev": true, + "requires": { + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wrap-ansi": "^2.0.0" + } + }, + "get-caller-file": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz", + "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "dev": true, + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "require-main-filename": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", + "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=", + "dev": true + }, + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "dev": true, + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "which-module": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz", + "integrity": "sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8=", + "dev": true + }, + "wrap-ansi": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", + "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", + "dev": true, + "requires": { + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1" + } + }, + "y18n": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz", + "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=", + "dev": true + }, + "yargs": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-7.1.0.tgz", + "integrity": "sha1-a6MY6xaWFyf10oT46gA+jWFU0Mg=", + "dev": true, + "requires": { + "camelcase": "^3.0.0", + "cliui": "^3.2.0", + "decamelize": "^1.1.1", + "get-caller-file": "^1.0.1", + "os-locale": "^1.4.0", + "read-pkg-up": "^1.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^1.0.1", + "set-blocking": "^2.0.0", + "string-width": "^1.0.2", + "which-module": "^1.0.0", + "y18n": "^3.2.1", + "yargs-parser": "^5.0.0" + } + }, + "yargs-parser": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-5.0.0.tgz", + "integrity": "sha1-J17PDX/+Bcd+ZOfIbkzZS/DhIoo=", + "dev": true, + "requires": { + "camelcase": "^3.0.0" + } + } + } + }, + "sax": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", + "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", + "dev": true + }, + "scheduler": { + "version": "0.15.0", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.15.0.tgz", + "integrity": "sha512-xAefmSfN6jqAa7Kuq7LIJY0bwAPG3xlCj0HMEBQk1lxYiDKZscY2xJ5U/61ZTrYbmNQbXa+gc7czPkVo11tnCg==", + "dev": true, + "requires": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1" + } + }, + "scss-tokenizer": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/scss-tokenizer/-/scss-tokenizer-0.2.3.tgz", + "integrity": "sha1-jrBtualyMzOCTT9VMGQRSYR85dE=", + "dev": true, + "requires": { + "js-base64": "^2.1.8", + "source-map": "^0.4.2" + }, + "dependencies": { + "source-map": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", + "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", + "dev": true, + "requires": { + "amdefine": ">=0.0.4" + } + } + } + }, + "seek-bzip": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/seek-bzip/-/seek-bzip-1.0.5.tgz", + "integrity": "sha1-z+kXyz0nS8/6x5J1ivUxc+sfq9w=", + "dev": true, + "requires": { + "commander": "~2.8.1" + }, + "dependencies": { + "commander": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.8.1.tgz", + "integrity": "sha1-Br42f+v9oMMwqh4qBy09yXYkJdQ=", + "dev": true, + "requires": { + "graceful-readlink": ">= 1.0.0" + } + } + } + }, + "select": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/select/-/select-1.1.2.tgz", + "integrity": "sha1-DnNQrN7ICxEIUoeG7B1EGNEbOW0=", + "dev": true, + "optional": true + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + }, + "semver-regex": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/semver-regex/-/semver-regex-2.0.0.tgz", + "integrity": "sha512-mUdIBBvdn0PLOeP3TEkMH7HHeUP3GjsXCwKarjv/kGmUFOYg1VqEemKhoQpWMu6X2I8kHeuVdGibLGkVK+/5Qw==", + "dev": true + }, + "semver-truncate": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/semver-truncate/-/semver-truncate-1.1.2.tgz", + "integrity": "sha1-V/Qd5pcHpicJp+AQS6IRcQnqR+g=", + "dev": true, + "requires": { + "semver": "^5.3.0" + } + }, + "send": { + "version": "0.17.1", + "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz", + "integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==", + "dev": true, + "requires": { + "debug": "2.6.9", + "depd": "~1.1.2", + "destroy": "~1.0.4", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "~1.7.2", + "mime": "1.6.0", + "ms": "2.1.1", + "on-finished": "~2.3.0", + "range-parser": "~1.2.1", + "statuses": "~1.5.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + }, + "dependencies": { + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } + } + }, + "ms": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", + "dev": true + } + } + }, + "serve-static": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz", + "integrity": "sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==", + "dev": true, + "requires": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.17.1" + } + }, + "set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" + }, + "set-getter": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/set-getter/-/set-getter-0.1.0.tgz", + "integrity": "sha1-12nBgsnVpR9AkUXy+6guXoboA3Y=", + "dev": true, + "requires": { + "to-object-path": "^0.3.0" + } + }, + "set-value": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", + "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", + "dev": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.3", + "split-string": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "setprototypeof": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", + "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==", + "dev": true + }, + "shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "dev": true, + "requires": { + "shebang-regex": "^1.0.0" + } + }, + "shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", + "dev": true + }, + "shell-quote": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.6.1.tgz", + "integrity": "sha1-9HgZSczkAmlxJ0MOo7PFR29IF2c=", + "dev": true, + "requires": { + "array-filter": "~0.0.0", + "array-map": "~0.0.0", + "array-reduce": "~0.0.0", + "jsonify": "~0.0.0" + } + }, + "shelljs": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.3.tgz", + "integrity": "sha512-fc0BKlAWiLpwZljmOvAOTE/gXawtCoNrP5oaY7KIaQbbyHeQVg01pSEuEGvGh3HEdBU4baCD7wQBwADmM/7f7A==", + "dev": true, + "requires": { + "glob": "^7.0.0", + "interpret": "^1.0.0", + "rechoir": "^0.6.2" + } + }, + "signal-exit": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", + "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", + "dev": true + }, + "simple-swizzle": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", + "integrity": "sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo=", + "dev": true, + "requires": { + "is-arrayish": "^0.3.1" + } + }, + "sitemap": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/sitemap/-/sitemap-3.2.2.tgz", + "integrity": "sha512-TModL/WU4m2q/mQcrDgNANn0P4LwprM9MMvG4hu5zP4c6IIKs2YLTu6nXXnNr8ODW/WFtxKggiJ1EGn2W0GNmg==", + "dev": true, + "requires": { + "lodash.chunk": "^4.2.0", + "lodash.padstart": "^4.6.1", + "whatwg-url": "^7.0.0", + "xmlbuilder": "^13.0.0" + } + }, + "slash": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", + "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=", + "dev": true + }, + "snapdragon": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", + "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", + "dev": true, + "requires": { + "base": "^0.11.1", + "debug": "^2.2.0", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "map-cache": "^0.2.2", + "source-map": "^0.5.6", + "source-map-resolve": "^0.5.0", + "use": "^3.1.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } + } + }, + "snapdragon-node": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", + "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", + "dev": true, + "requires": { + "define-property": "^1.0.0", + "isobject": "^3.0.0", + "snapdragon-util": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + } + } + }, + "snapdragon-util": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", + "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", + "dev": true, + "requires": { + "kind-of": "^3.2.0" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "sockjs-client": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/sockjs-client/-/sockjs-client-1.3.0.tgz", + "integrity": "sha512-R9jxEzhnnrdxLCNln0xg5uGHqMnkhPSTzUZH2eXcR03S/On9Yvoq2wyUZILRUhZCNVu2PmwWVoyuiPz8th8zbg==", + "dev": true, + "requires": { + "debug": "^3.2.5", + "eventsource": "^1.0.7", + "faye-websocket": "~0.11.1", + "inherits": "^2.0.3", + "json3": "^3.3.2", + "url-parse": "^1.4.3" + }, + "dependencies": { + "debug": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + } + } + }, + "sort-keys": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-1.1.2.tgz", + "integrity": "sha1-RBttTTRnmPG05J6JIK37oOVD+a0=", + "dev": true, + "requires": { + "is-plain-obj": "^1.0.0" + } + }, + "sort-keys-length": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/sort-keys-length/-/sort-keys-length-1.0.1.tgz", + "integrity": "sha1-nLb09OnkgVWmqgZx7dM2/xR5oYg=", + "dev": true, + "requires": { + "sort-keys": "^1.0.0" + } + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + }, + "source-map-resolve": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.2.tgz", + "integrity": "sha512-MjqsvNwyz1s0k81Goz/9vRBe9SZdB09Bdw+/zYyO+3CuPk6fouTaxscHkgtE8jKvf01kVfl8riHzERQ/kefaSA==", + "dev": true, + "requires": { + "atob": "^2.1.1", + "decode-uri-component": "^0.2.0", + "resolve-url": "^0.2.1", + "source-map-url": "^0.4.0", + "urix": "^0.1.0" + } + }, + "source-map-support": { + "version": "0.5.13", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz", + "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==", + "dev": true, + "requires": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "source-map-url": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", + "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=", + "dev": true + }, + "spdx-correct": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.0.tgz", + "integrity": "sha512-lr2EZCctC2BNR7j7WzJ2FpDznxky1sjfxvvYEyzxNyb6lZXHODmEoJeFu4JupYlkfha1KZpJyoqiJ7pgA1qq8Q==", + "dev": true, + "requires": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-exceptions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz", + "integrity": "sha512-2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA==", + "dev": true + }, + "spdx-expression-parse": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz", + "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==", + "dev": true, + "requires": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-license-ids": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz", + "integrity": "sha512-J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q==", + "dev": true + }, + "split-string": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", + "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", + "dev": true, + "requires": { + "extend-shallow": "^3.0.0" + } + }, + "sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", + "dev": true + }, + "squeak": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/squeak/-/squeak-1.3.0.tgz", + "integrity": "sha1-MwRQN7ZDiLVnZ0uEMiplIQc5FsM=", + "dev": true, + "requires": { + "chalk": "^1.0.0", + "console-stream": "^0.1.1", + "lpad-align": "^1.0.1" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + }, + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, + "requires": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + } + } + }, + "sshpk": { + "version": "1.16.1", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", + "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", + "dev": true, + "requires": { + "asn1": "~0.2.3", + "assert-plus": "^1.0.0", + "bcrypt-pbkdf": "^1.0.0", + "dashdash": "^1.12.0", + "ecc-jsbn": "~0.1.1", + "getpass": "^0.1.1", + "jsbn": "~0.1.0", + "safer-buffer": "^2.0.2", + "tweetnacl": "~0.14.0" + } + }, + "stable": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz", + "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==", + "dev": true + }, + "static-extend": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", + "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", + "dev": true, + "requires": { + "define-property": "^0.2.5", + "object-copy": "^0.1.0" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + } + } + }, + "statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", + "dev": true + }, + "stdout-stream": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/stdout-stream/-/stdout-stream-1.4.1.tgz", + "integrity": "sha512-j4emi03KXqJWcIeF8eIXkjMFN1Cmb8gUlDYGeBALLPo5qdyTfA9bOtl8m33lRoC+vFMkP3gl0WsDr6+gzxbbTA==", + "dev": true, + "requires": { + "readable-stream": "^2.0.1" + } + }, + "strict-uri-encode": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz", + "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=", + "dev": true + }, + "string-template": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/string-template/-/string-template-0.2.1.tgz", + "integrity": "sha1-QpMuWYo1LQH8IuwzZ9nYTuxsmt0=", + "dev": true + }, + "string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + } + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + } + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "requires": { + "ansi-regex": "^4.1.0" + } + }, + "strip-bom": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", + "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", + "dev": true, + "requires": { + "is-utf8": "^0.2.0" + } + }, + "strip-color": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/strip-color/-/strip-color-0.1.0.tgz", + "integrity": "sha1-EG9l09PmotlAHKwOsM6LinArT3s=", + "dev": true + }, + "strip-dirs": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/strip-dirs/-/strip-dirs-2.1.0.tgz", + "integrity": "sha512-JOCxOeKLm2CAS73y/U4ZeZPTkE+gNVCzKt7Eox84Iej1LT/2pTWYpZKJuxwQpvX1LiZb1xokNR7RLfuBAa7T3g==", + "dev": true, + "requires": { + "is-natural-number": "^4.0.1" + } + }, + "strip-eof": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", + "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", + "dev": true + }, + "strip-indent": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz", + "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=", + "dev": true, + "requires": { + "get-stdin": "^4.0.1" + } + }, + "strip-outer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/strip-outer/-/strip-outer-1.0.1.tgz", + "integrity": "sha512-k55yxKHwaXnpYGsOzg4Vl8+tDrWylxDEpknGjhTiZB8dFRU5rTo9CAzeycivxV3s+zlTKwrs6WxMxR95n26kwg==", + "dev": true, + "requires": { + "escape-string-regexp": "^1.0.2" + } + }, + "stylehacks": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-4.0.3.tgz", + "integrity": "sha512-7GlLk9JwlElY4Y6a/rmbH2MhVlTyVmiJd1PfTCqFaIBEGMYNsrO/v3SeGTdhBThLg4Z+NbOk/qFMwCa+J+3p/g==", + "dev": true, + "requires": { + "browserslist": "^4.0.0", + "postcss": "^7.0.0", + "postcss-selector-parser": "^3.0.0" + }, + "dependencies": { + "postcss-selector-parser": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.1.tgz", + "integrity": "sha1-T4dfSvsMllc9XPTXQBGu4lCn6GU=", + "dev": true, + "requires": { + "dot-prop": "^4.1.1", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + } + } + } + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "requires": { + "has-flag": "^3.0.0" + } + }, + "svgo": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-1.3.0.tgz", + "integrity": "sha512-MLfUA6O+qauLDbym+mMZgtXCGRfIxyQoeH6IKVcFslyODEe/ElJNwr0FohQ3xG4C6HK6bk3KYPPXwHVJk3V5NQ==", + "dev": true, + "requires": { + "chalk": "^2.4.1", + "coa": "^2.0.2", + "css-select": "^2.0.0", + "css-select-base-adapter": "^0.1.1", + "css-tree": "1.0.0-alpha.33", + "csso": "^3.5.1", + "js-yaml": "^3.13.1", + "mkdirp": "~0.5.1", + "object.values": "^1.1.0", + "sax": "~1.2.4", + "stable": "^0.1.8", + "unquote": "~1.1.1", + "util.promisify": "~1.0.0" + } + }, + "tapable": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz", + "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==", + "dev": true + }, + "tar": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.2.tgz", + "integrity": "sha512-FCEhQ/4rE1zYv9rYXJw/msRqsnmlje5jHP6huWeBZ704jUTy02c5AZyWujpMR1ax6mVw9NyJMfuK2CMDWVIfgA==", + "dev": true, + "requires": { + "block-stream": "*", + "fstream": "^1.0.12", + "inherits": "2" + } + }, + "tar-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-1.6.2.tgz", + "integrity": "sha512-rzS0heiNf8Xn7/mpdSVVSMAWAoy9bfb1WOTYC78Z0UQKeKa/CWS8FOq0lKGNa8DWKAn9gxjCvMLYc5PGXYlK2A==", + "dev": true, + "requires": { + "bl": "^1.0.0", + "buffer-alloc": "^1.2.0", + "end-of-stream": "^1.0.0", + "fs-constants": "^1.0.0", + "readable-stream": "^2.3.0", + "to-buffer": "^1.1.1", + "xtend": "^4.0.0" + } + }, + "tcp-port-used": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/tcp-port-used/-/tcp-port-used-1.0.1.tgz", + "integrity": "sha512-rwi5xJeU6utXoEIiMvVBMc9eJ2/ofzB+7nLOdnZuFTmNCLqRiQh2sMG9MqCxHU/69VC/Fwp5dV9306Qd54ll1Q==", + "dev": true, + "requires": { + "debug": "4.1.0", + "is2": "2.0.1" + }, + "dependencies": { + "debug": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.0.tgz", + "integrity": "sha512-heNPJUJIqC+xB6ayLAMHaIrmN9HKa7aQO8MGqKpvCA+uJYVcvR6l5kgdrhRuwPFHU7P5/A1w0BjByPHwpfTDKg==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + } + } + }, + "temp-dir": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/temp-dir/-/temp-dir-1.0.0.tgz", + "integrity": "sha1-CnwOom06Oa+n4OvqnB/AvE2qAR0=", + "dev": true + }, + "tempfile": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/tempfile/-/tempfile-2.0.0.tgz", + "integrity": "sha1-awRGhWqbERTRhW/8vlCczLCXcmU=", + "dev": true, + "requires": { + "temp-dir": "^1.0.0", + "uuid": "^3.0.1" + } + }, + "text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", + "dev": true + }, + "through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", + "dev": true + }, + "through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dev": true, + "requires": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + }, + "timed-out": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz", + "integrity": "sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8=", + "dev": true + }, + "timsort": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/timsort/-/timsort-0.3.0.tgz", + "integrity": "sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q=", + "dev": true + }, + "tiny-emitter": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/tiny-emitter/-/tiny-emitter-2.1.0.tgz", + "integrity": "sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q==", + "dev": true, + "optional": true + }, + "tiny-lr": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/tiny-lr/-/tiny-lr-1.1.1.tgz", + "integrity": "sha512-44yhA3tsaRoMOjQQ+5v5mVdqef+kH6Qze9jTpqtVufgYjYt08zyZAwNwwVBj3i1rJMnR52IxOW0LK0vBzgAkuA==", + "dev": true, + "requires": { + "body": "^5.1.0", + "debug": "^3.1.0", + "faye-websocket": "~0.10.0", + "livereload-js": "^2.3.0", + "object-assign": "^4.1.0", + "qs": "^6.4.0" + }, + "dependencies": { + "debug": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "faye-websocket": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.10.0.tgz", + "integrity": "sha1-TkkvjQTftviQA1B/btvy1QHnxvQ=", + "dev": true, + "requires": { + "websocket-driver": ">=0.5.1" + } + } + } + }, + "tmp": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", + "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "dev": true, + "requires": { + "os-tmpdir": "~1.0.2" + } + }, + "to-buffer": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/to-buffer/-/to-buffer-1.1.1.tgz", + "integrity": "sha512-lx9B5iv7msuFYE3dytT+KE5tap+rNYw+K4jVkb9R/asAb+pbBSM17jtunHplhBe6RRJdZx3Pn2Jph24O32mOVg==", + "dev": true + }, + "to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", + "dev": true + }, + "to-object-path": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", + "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "to-regex": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", + "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", + "dev": true, + "requires": { + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "regex-not": "^1.0.2", + "safe-regex": "^1.1.0" + } + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "requires": { + "is-number": "^7.0.0" + } + }, + "toidentifier": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", + "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==", + "dev": true + }, + "toml": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/toml/-/toml-2.3.6.tgz", + "integrity": "sha512-gVweAectJU3ebq//Ferr2JUY4WKSDe5N+z0FvjDncLGyHmIDoxgY/2Ie4qfEIDm4IS7OA6Rmdm7pdEEdMcV/xQ==", + "dev": true + }, + "tough-cookie": { + "version": "2.4.3", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz", + "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==", + "dev": true, + "requires": { + "psl": "^1.1.24", + "punycode": "^1.4.1" + }, + "dependencies": { + "punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", + "dev": true + } + } + }, + "tr46": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz", + "integrity": "sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk=", + "dev": true, + "requires": { + "punycode": "^2.1.0" + } + }, + "tree-node-cli": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/tree-node-cli/-/tree-node-cli-1.2.5.tgz", + "integrity": "sha512-Yhv4bfLa3WYdJLS4FkCj0h72duPGMUjC6Ld8eBlT9BA3CfjeQyHNBfgtzQvDrw1OkQva2JSpUyslZHuweCRtGQ==", + "dev": true, + "requires": { + "commander": "^2.15.1" + } + }, + "trim-newlines": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz", + "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=", + "dev": true + }, + "trim-repeated": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/trim-repeated/-/trim-repeated-1.0.0.tgz", + "integrity": "sha1-42RqLqTokTEr9+rObPsFOAvAHCE=", + "dev": true, + "requires": { + "escape-string-regexp": "^1.0.2" + } + }, + "trim-right": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", + "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=", + "dev": true + }, + "true-case-path": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/true-case-path/-/true-case-path-1.0.3.tgz", + "integrity": "sha512-m6s2OdQe5wgpFMC+pAJ+q9djG82O2jcHPOI6RNg1yy9rCYR+WD6Nbpl32fDpfC56nirdRy+opFa/Vk7HYhqaew==", + "dev": true, + "requires": { + "glob": "^7.1.2" + } + }, + "truncate-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/truncate-html/-/truncate-html-1.0.3.tgz", + "integrity": "sha512-1o1prdRv+iehXcGwn29YgXU17DotHkr+OK3ijVEG7FGMwHNG9RyobXwimw6djDvbIc24rhmz3tjNNvNESjkNkQ==", + "dev": true, + "requires": { + "@types/cheerio": "^0.22.8", + "cheerio": "0.22.0" + } + }, + "tslib": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.10.0.tgz", + "integrity": "sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ==", + "dev": true + }, + "tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", + "dev": true, + "requires": { + "safe-buffer": "^5.0.1" + } + }, + "tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", + "dev": true + }, + "type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "dev": true, + "requires": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + } + }, + "typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", + "dev": true + }, + "unbzip2-stream": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/unbzip2-stream/-/unbzip2-stream-1.3.3.tgz", + "integrity": "sha512-fUlAF7U9Ah1Q6EieQ4x4zLNejrRvDWUYmxXUpN3uziFYCHapjWFaCAnreY9bGgxzaMCFAPPpYNng57CypwJVhg==", + "dev": true, + "requires": { + "buffer": "^5.2.1", + "through": "^2.3.8" + } + }, + "unicode-canonical-property-names-ecmascript": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz", + "integrity": "sha512-jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ==", + "dev": true + }, + "unicode-match-property-ecmascript": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz", + "integrity": "sha512-L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg==", + "dev": true, + "requires": { + "unicode-canonical-property-names-ecmascript": "^1.0.4", + "unicode-property-aliases-ecmascript": "^1.0.4" + } + }, + "unicode-match-property-value-ecmascript": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.1.0.tgz", + "integrity": "sha512-hDTHvaBk3RmFzvSl0UVrUmC3PuW9wKVnpoUDYH0JDkSIovzw+J5viQmeYHxVSBptubnr7PbH2e0fnpDRQnQl5g==", + "dev": true + }, + "unicode-property-aliases-ecmascript": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.0.5.tgz", + "integrity": "sha512-L5RAqCfXqAwR3RriF8pM0lU0w4Ryf/GgzONwi6KnL1taJQa7x1TCxdJnILX59WIGOwR57IVxn7Nej0fz1Ny6fw==", + "dev": true + }, + "union-value": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", + "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", + "dev": true, + "requires": { + "arr-union": "^3.1.0", + "get-value": "^2.0.6", + "is-extendable": "^0.1.1", + "set-value": "^2.0.1" + } + }, + "uniq": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz", + "integrity": "sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8=", + "dev": true + }, + "uniqs": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/uniqs/-/uniqs-2.0.0.tgz", + "integrity": "sha1-/+3ks2slKQaW5uFl1KWe25mOawI=", + "dev": true + }, + "universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==" + }, + "unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", + "dev": true + }, + "unquote": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/unquote/-/unquote-1.1.1.tgz", + "integrity": "sha1-j97XMk7G6IoP+LkF58CYzcCG1UQ=", + "dev": true + }, + "unset-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", + "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", + "dev": true, + "requires": { + "has-value": "^0.3.1", + "isobject": "^3.0.0" + }, + "dependencies": { + "has-value": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", + "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", + "dev": true, + "requires": { + "get-value": "^2.0.3", + "has-values": "^0.1.4", + "isobject": "^2.0.0" + }, + "dependencies": { + "isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "dev": true, + "requires": { + "isarray": "1.0.0" + } + } + } + }, + "has-values": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", + "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", + "dev": true + } + } + }, + "upath": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/upath/-/upath-1.1.2.tgz", + "integrity": "sha512-kXpym8nmDmlCBr7nKdIx8P2jNBa+pBpIUFRnKJ4dr8htyYGJFokkr2ZvERRtUN+9SY+JqXouNgUPtv6JQva/2Q==", + "dev": true + }, + "uri-js": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", + "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", + "dev": true, + "requires": { + "punycode": "^2.1.0" + } + }, + "urix": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", + "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", + "dev": true + }, + "url-parse": { + "version": "1.4.7", + "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.4.7.tgz", + "integrity": "sha512-d3uaVyzDB9tQoSXFvuSUNFibTd9zxd2bkVrDRvF5TmvWWQwqE4lgYJ5m+x1DbecWkw+LK4RNl2CU1hHuOKPVlg==", + "dev": true, + "requires": { + "querystringify": "^2.1.1", + "requires-port": "^1.0.0" + } + }, + "url-parse-lax": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-1.0.0.tgz", + "integrity": "sha1-evjzA2Rem9eaJy56FKxovAYJ2nM=", + "dev": true, + "requires": { + "prepend-http": "^1.0.1" + } + }, + "url-to-options": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/url-to-options/-/url-to-options-1.0.1.tgz", + "integrity": "sha1-FQWgOiiaSMvXpDTvuu7FBV9WM6k=", + "dev": true + }, + "use": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", + "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", + "dev": true + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", + "dev": true + }, + "util.promisify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.0.tgz", + "integrity": "sha512-i+6qA2MPhvoKLuxnJNpXAGhg7HphQOSUq2LKMZD0m15EiskXUkMvKdF4Uui0WYeCUGea+o2cw/ZuwehtfsrNkA==", + "dev": true, + "requires": { + "define-properties": "^1.1.2", + "object.getownpropertydescriptors": "^2.0.3" + } + }, + "utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=", + "dev": true + }, + "uuid": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz", + "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==", + "dev": true + }, + "validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "dev": true, + "requires": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=", + "dev": true + }, + "vendors": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/vendors/-/vendors-1.0.3.tgz", + "integrity": "sha512-fOi47nsJP5Wqefa43kyWSg80qF+Q3XA6MUkgi7Hp1HQaKDQW4cQrK2D0P7mmbFtsV1N89am55Yru/nyEwRubcw==", + "dev": true + }, + "verror": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", + "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", + "dev": true, + "requires": { + "assert-plus": "^1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "^1.2.0" + } + }, + "webidl-conversions": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz", + "integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==", + "dev": true + }, + "websocket-driver": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.3.tgz", + "integrity": "sha512-bpxWlvbbB459Mlipc5GBzzZwhoZgGEZLuqPaR0INBGnPAY1vdBX6hPnoFXiw+3yWxDuHyQjO2oXTMyS8A5haFg==", + "dev": true, + "requires": { + "http-parser-js": ">=0.4.0 <0.4.11", + "safe-buffer": ">=5.1.0", + "websocket-extensions": ">=0.1.1" + } + }, + "websocket-extensions": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.3.tgz", + "integrity": "sha512-nqHUnMXmBzT0w570r2JpJxfiSD1IzoI+HGVdd3aZ0yNi3ngvQ4jv1dtHt5VGxfI2yj5yqImPhOK4vmIh2xMbGg==", + "dev": true + }, + "whatwg-url": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-7.0.0.tgz", + "integrity": "sha512-37GeVSIJ3kn1JgKyjiYNmSLP1yzbpb29jdmwBSgkD9h40/hyrR/OifpVUndji3tmwGgD8qpw7iQu3RSbCrBpsQ==", + "dev": true, + "requires": { + "lodash.sortby": "^4.7.0", + "tr46": "^1.0.1", + "webidl-conversions": "^4.0.2" + } + }, + "which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + }, + "which-module": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", + "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=" + }, + "wide-align": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", + "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", + "dev": true, + "requires": { + "string-width": "^1.0.2 || 2" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + }, + "string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "dev": true, + "requires": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + } + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "requires": { + "ansi-regex": "^3.0.0" + } + } + } + }, + "wordwrap": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz", + "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=", + "dev": true + }, + "worker-rpc": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/worker-rpc/-/worker-rpc-0.1.1.tgz", + "integrity": "sha512-P1WjMrUB3qgJNI9jfmpZ/htmBEjFh//6l/5y8SD9hg1Ef5zTTVVoRjTrTEzPrNBQvmhMxkoTsjOXN10GWU7aCg==", + "dev": true, + "requires": { + "microevent.ts": "~0.1.1" + } + }, + "wrap-ansi": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", + "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", + "requires": { + "ansi-styles": "^3.2.0", + "string-width": "^3.0.0", + "strip-ansi": "^5.0.0" + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + }, + "xml": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/xml/-/xml-1.0.1.tgz", + "integrity": "sha1-eLpyAgApxbyHuKgaPPzXS0ovweU=", + "dev": true + }, + "xmlbuilder": { + "version": "13.0.2", + "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-13.0.2.tgz", + "integrity": "sha512-Eux0i2QdDYKbdbA6AM6xE4m6ZTZr4G4xF9kahI2ukSEMCzwce2eX9WlTI5J3s+NU7hpasFsr8hWIONae7LluAQ==", + "dev": true + }, + "xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "dev": true + }, + "y18n": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", + "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==" + }, + "yallist": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", + "dev": true + }, + "yamljs": { + "version": "0.2.10", + "resolved": "https://registry.npmjs.org/yamljs/-/yamljs-0.2.10.tgz", + "integrity": "sha1-SBzHwlynOvWfWR8MluPOVsdXpA8=", + "dev": true, + "requires": { + "argparse": "^1.0.7", + "glob": "^7.0.5" + } + }, + "yargs": { + "version": "13.3.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.0.tgz", + "integrity": "sha512-2eehun/8ALW8TLoIl7MVaRUrg+yCnenu8B4kBlRxj3GJGDKU1Og7sMXPNm1BYyM1DOJmTZ4YeN/Nwxv+8XJsUA==", + "requires": { + "cliui": "^5.0.0", + "find-up": "^3.0.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^3.0.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^13.1.1" + } + }, + "yargs-parser": { + "version": "13.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.1.tgz", + "integrity": "sha512-oVAVsHz6uFrg3XQheFII8ESO2ssAf9luWuAd6Wexsu4F3OtIW0o8IribPXYrD4WC24LWtPrJlGy87y5udK+dxQ==", + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } + }, + "yauzl": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", + "integrity": "sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=", + "dev": true, + "requires": { + "buffer-crc32": "~0.2.3", + "fd-slicer": "~1.1.0" + } + } + } +} diff --git a/website/package.json b/website/package.json new file mode 100644 index 000000000000..78df279c09d3 --- /dev/null +++ b/website/package.json @@ -0,0 +1,24 @@ +{ + "license": "Apache-2.0", + "scripts": { + "examples": "docusaurus-examples", + "start": "docusaurus-start", + "build": "docusaurus-build && node script/do-redirects.js", + "publish-gh-pages": "docusaurus-publish", + "write-translations": "docusaurus-write-translations", + "version": "docusaurus-version", + "rename-version": "docusaurus-rename-version", + "compile-scss": "node-sass scss/custom.scss > static/css/custom.css", + "link-lint": "docusaurus-build && node script/link-lint.js", + "lint": "npm run link-lint" + }, + "devDependencies": { + "docusaurus": "^1.12.0", + "node-sass": "^4.12.0" + }, + "dependencies": { + "fast-glob": "^3.0.4", + "fs-extra": "^8.1.0", + "replace-in-file": "^4.1.3" + } +} diff --git a/website/pages/en/index.js b/website/pages/en/index.js new file mode 100644 index 000000000000..2be3485f4bc7 --- /dev/null +++ b/website/pages/en/index.js @@ -0,0 +1,29 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you 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. + */ + +const React = require('react'); + +function PlaceholderPage(props) { + return ( +
+ This page will not be seen in the final website build. It is only here as a placeholder for docusaurus. +
+ ); +} + +module.exports = PlaceholderPage; diff --git a/website/redirects.json b/website/redirects.json new file mode 100644 index 000000000000..f0ab4e5ebdb6 --- /dev/null +++ b/website/redirects.json @@ -0,0 +1,199 @@ +{"source": "About-Experimental-Features.html", "target": "development/experimental.html"} +{"source": "Aggregations.html", "target": "querying/aggregations.html"} +{"source": "ApproxHisto.html", "target": "development/extensions-core/approximate-histograms.html"} +{"source": "Batch-ingestion.html", "target": "ingestion/index.html"} +{"source": "Booting-a-production-cluster.html", "target": "tutorials/cluster.html"} +{"source": "Broker-Config.html", "target": "configuration/index.html#broker"} +{"source": "Broker.html", "target": "design/broker.html"} +{"source": "Build-from-source.html", "target": "development/build.html"} +{"source": "Cassandra-Deep-Storage.html", "target": "configuration/index.html#cassandra-deep-storage"} +{"source": "Cluster-setup.html", "target": "tutorials/cluster.html"} +{"source": "Compute.html", "target": "design/processes.html"} +{"source": "Concepts-and-Terminology.html", "target": "design/index.html"} +{"source": "Configuration.html", "target": "configuration/index.html"} +{"source": "Contribute.html", "target": "/community/"} +{"source": "Coordinator-Config.html", "target": "configuration/index.html#coordinator"} +{"source": "Coordinator.html", "target": "design/coordinator.html"} +{"source": "DataSource.html", "target": "querying/datasource.html"} +{"source": "DataSourceMetadataQuery.html", "target": "querying/datasourcemetadataquery.html"} +{"source": "Data_formats.html", "target": "ingestion/data-formats.html"} +{"source": "Deep-Storage.html", "target": "dependencies/deep-storage.html"} +{"source": "Design.html", "target": "design/index.html"} +{"source": "DimensionSpecs.html", "target": "querying/dimensionspecs.html"} +{"source": "Download.html", "target": "/downloads.html"} +{"source": "Druid-Personal-Demo-Cluster.html", "target": "tutorials/index.html"} +{"source": "Druid-vs-Cassandra.html", "target": "comparisons/druid-vs-key-value.html"} +{"source": "Druid-vs-Elasticsearch.html", "target": "comparisons/druid-vs-elasticsearch.html"} +{"source": "Druid-vs-Hadoop.html", "target": "comparisons/druid-vs-sql-on-hadoop.html"} +{"source": "Druid-vs-Impala-or-Shark.html", "target": "comparisons/druid-vs-sql-on-hadoop.html"} +{"source": "Druid-vs-Redshift.html", "target": "comparisons/druid-vs-redshift.html"} +{"source": "Druid-vs-Spark.html", "target": "comparisons/druid-vs-spark.html"} +{"source": "Druid-vs-Vertica.html", "target": "comparisons/druid-vs-redshift.html"} +{"source": "Evaluate.html", "target": "tutorials/cluster.html"} +{"source": "Examples.html", "target": "tutorials/index.html"} +{"source": "Filters.html", "target": "querying/filters.html"} +{"source": "Firehose.html", "target": "ingestion/native-batch.html#firehoses"} +{"source": "GeographicQueries.html", "target": "development/geo.html"} +{"source": "Granularities.html", "target": "querying/granularities.html"} +{"source": "GroupByQuery.html", "target": "querying/groupbyquery.html"} +{"source": "Hadoop-Configuration.html", "target": "ingestion/hadoop.html"} +{"source": "Having.html", "target": "querying/having.html"} +{"source": "Historical-Config.html", "target": "configuration/index.html#historical"} +{"source": "Historical.html", "target": "design/historical.html"} +{"source": "Home.html", "target": "design/index.html"} +{"source": "Including-Extensions.html", "target": "development/extensions.html#loading-extensions"} +{"source": "Indexing-Service-Config.html", "target": "configuration/index.html#overlord"} +{"source": "Indexing-Service.html", "target": "design/indexing-service.html"} +{"source": "Ingestion-FAQ.html", "target": "ingestion/faq.html"} +{"source": "Ingestion-overview.html", "target": "tutorials/index.html"} +{"source": "Ingestion.html", "target": "ingestion/index.html"} +{"source": "Integrating-Druid-With-Other-Technologies.html", "target": "development/integrating-druid-with-other-technologies.html"} +{"source": "Kafka-Eight.html", "target": "development/extensions-core/kafka-ingestion.html"} +{"source": "Libraries.html", "target": "/libraries.html"} +{"source": "LimitSpec.html", "target": "querying/limitspec.html"} +{"source": "Loading-Your-Data.html", "target": "ingestion/index.html"} +{"source": "Logging.html", "target": "configuration/logging.html"} +{"source": "Master.html", "target": "design/processes.html"} +{"source": "Metadata-storage.html", "target": "dependencies/metadata-storage.html"} +{"source": "Metrics.html", "target": "operations/metrics.html"} +{"source": "Middlemanager.html", "target": "design/middlemanager.html"} +{"source": "Modules.html", "target": "development/modules.html"} +{"source": "MySQL.html", "target": "development/extensions-core/mysql.html"} +{"source": "OrderBy.html", "target": "querying/limitspec.html"} +{"source": "Other-Hadoop.html", "target": "operations/other-hadoop.html"} +{"source": "Papers-and-talks.html", "target": "misc/papers-and-talks.html"} +{"source": "Peons.html", "target": "design/peons.html"} +{"source": "Performance-FAQ.html", "target": "operations/basic-cluster-tuning.html"} +{"source": "Plumber.html", "target": "ingestion/index.html"} +{"source": "Post-aggregations.html", "target": "querying/post-aggregations.html"} +{"source": "Production-Cluster-Configuration.html", "target": "tutorials/cluster.html"} +{"source": "Query-Context.html", "target": "querying/query-context.html"} +{"source": "Querying-your-data.html", "target": "querying/querying.html"} +{"source": "Querying.html", "target": "querying/querying.html"} +{"source": "Realtime-Config.html", "target": "ingestion/standalone-realtime.html"} +{"source": "Realtime-ingestion.html", "target": "ingestion/index.html"} +{"source": "Realtime.html", "target": "ingestion/standalone-realtime.html"} +{"source": "Recommendations.html", "target": "operations/recommendations.html"} +{"source": "Rolling-Updates.html", "target": "operations/rolling-updates.html"} +{"source": "Router.html", "target": "design/router.html"} +{"source": "Rule-Configuration.html", "target": "operations/rule-configuration.html"} +{"source": "SearchQuery.html", "target": "querying/searchquery.html"} +{"source": "SearchQuerySpec.html", "target": "querying/searchqueryspec.html"} +{"source": "SegmentMetadataQuery.html", "target": "querying/segmentmetadataquery.html"} +{"source": "Segments.html", "target": "design/segments.html"} +{"source": "SelectQuery.html", "target": "querying/select-query.html"} +{"source": "Simple-Cluster-Configuration.html", "target": "tutorials/cluster.html"} +{"source": "Spatial-Filters.html", "target": "development/geo.html"} +{"source": "Spatial-Indexing.html", "target": "development/geo.html"} +{"source": "Stand-Alone-With-Riak-CS.html", "target": "design/index.html"} +{"source": "Support.html", "target": "/community/"} +{"source": "Tasks.html", "target": "ingestion/tasks.html"} +{"source": "Thanks.html", "target": "/community/"} +{"source": "TimeBoundaryQuery.html", "target": "querying/timeboundaryquery.html"} +{"source": "TimeseriesQuery.html", "target": "querying/timeseriesquery.html"} +{"source": "TopNMetricSpec.html", "target": "querying/topnmetricspec.html"} +{"source": "TopNQuery.html", "target": "querying/topnquery.html"} +{"source": "Tutorial-A-First-Look-at-Druid.html", "target": "tutorials/index.html"} +{"source": "Tutorial-All-About-Queries.html", "target": "tutorials/index.html"} +{"source": "Tutorial-Loading-Batch-Data.html", "target": "tutorials/index.html"} +{"source": "Tutorial-Loading-Streaming-Data.html", "target": "tutorials/index.html"} +{"source": "Tutorial-The-Druid-Cluster.html", "target": "tutorials/index.html"} +{"source": "Tutorial:-A-First-Look-at-Druid.html", "target": "tutorials/index.html"} +{"source": "Tutorial:-All-About-Queries.html", "target": "tutorials/index.html"} +{"source": "Tutorial:-Loading-Batch-Data.html", "target": "tutorials/tutorial-batch.html"} +{"source": "Tutorial:-Loading-Streaming-Data.html", "target": "tutorials/tutorial-kafka.html"} +{"source": "Tutorial:-Loading-Your-Data-Part-1.html", "target": "tutorials/index.html"} +{"source": "Tutorial:-Loading-Your-Data-Part-2.html", "target": "tutorials/index.html"} +{"source": "Tutorial:-The-Druid-Cluster.html", "target": "tutorials/cluster.html"} +{"source": "Tutorial:-Webstream.html", "target": "tutorials/index.html"} +{"source": "Tutorials.html", "target": "tutorials/index.html"} +{"source": "Twitter-Tutorial.html", "target": "tutorials/index.html"} +{"source": "Versioning.html", "target": "development/versioning.html"} +{"source": "ZooKeeper.html", "target": "dependencies/zookeeper.html"} +{"source": "alerts.html", "target": "operations/alerts.html"} +{"source": "comparisons/druid-vs-cassandra.html", "target": "druid-vs-key-value.html"} +{"source": "comparisons/druid-vs-hadoop.html", "target": "druid-vs-sql-on-hadoop.html"} +{"source": "comparisons/druid-vs-impala-or-shark.html", "target": "druid-vs-sql-on-hadoop.html"} +{"source": "comparisons/druid-vs-vertica.html", "target": "druid-vs-redshift.html"} +{"source": "configuration/auth.html", "target": "../design/auth.html"} +{"source": "configuration/broker.html", "target": "../configuration/index.html#broker"} +{"source": "configuration/caching.html", "target": "../configuration/index.html#cache-configuration"} +{"source": "configuration/coordinator.html", "target": "../configuration/index.html#coordinator"} +{"source": "configuration/hadoop.html", "target": "../ingestion/hadoop.html"} +{"source": "configuration/historical.html", "target": "../configuration/index.html#historical"} +{"source": "configuration/indexing-service.html", "target": "../configuration/index.html#overlord"} +{"source": "configuration/production-cluster.html", "target": "../tutorials/cluster.html"} +{"source": "configuration/realtime.md", "target": "../ingestion/standalone-realtime.html"} +{"source": "configuration/simple-cluster.html", "target": "../tutorials/cluster.html"} +{"source": "configuration/zookeeper.html", "target": "../dependencies/zookeeper.html"} +{"source": "dependencies/cassandra-deep-storage.md", "target": "../development/extensions-contrib/cassandra.html"} +{"source": "design/concepts-and-terminology.html", "target": "index.html"} +{"source": "design/design.html", "target": "index.html"} +{"source": "design/plumber.md", "target": "../ingestion/standalone-realtime.html"} +{"source": "design/realtime.md", "target": "../ingestion/standalone-realtime.html"} +{"source": "development/approximate-histograms.html", "target": "extensions-core/approximate-histograms.html"} +{"source": "development/community-extensions/azure.html", "target": "../extensions-contrib/azure.html"} +{"source": "development/community-extensions/cassandra.html", "target": "../extensions-contrib/cassandra.html"} +{"source": "development/community-extensions/cloudfiles.html", "target": "../extensions-contrib/cloudfiles.html"} +{"source": "development/community-extensions/graphite.html", "target": "../extensions-contrib/graphite.html"} +{"source": "development/community-extensions/kafka-simple.html", "target": "../extensions-core/kafka-ingestion.html"} +{"source": "development/community-extensions/rabbitmq.html", "target": "../extensions-core/kafka-ingestion.html"} +{"source": "development/datasketches-aggregators.html", "target": "extensions-core/datasketches-extension.html"} +{"source": "development/extensions-contrib/kafka-simple.md", "target": "../../ingestion/standalone-realtime.html"} +{"source": "development/extensions-contrib/orc.html", "target": "../extensions-core/orc.html"} +{"source": "development/extensions-contrib/parquet.html", "target":"../../development/extensions-core/parquet.html"} +{"source": "development/extensions-contrib/rabbitmq.md", "target": "../../ingestion/standalone-realtime.html"} +{"source": "development/extensions-contrib/rocketmq.md", "target": "../../ingestion/standalone-realtime.html"} +{"source": "development/extensions-contrib/scan-query.html", "target":"../../querying/scan-query.html"} +{"source": "development/extensions-core/caffeine-cache.html", "target":"../../configuration/index.html#cache-configuration"} +{"source": "development/extensions-core/datasketches-aggregators.html", "target": "datasketches-extension.html"} +{"source": "development/extensions-core/kafka-eight-firehose.md", "target": "../../ingestion/standalone-realtime.html"} +{"source": "development/extensions-core/namespaced-lookup.html", "target": "lookups-cached-global.html"} +{"source": "development/indexer.md", "target": "../design/indexer.html"} +{"source": "development/kafka-simple-consumer-firehose.html", "target": "extensions-core/kafka-ingestion.html"} +{"source": "development/libraries.html", "target": "/libraries.html"} +{"source": "development/router.md", "target": "../design/router.html"} +{"source": "development/select-query.html", "target": "../querying/select-query.html"} +{"source": "index.html", "target": "design/index.html"} +{"source": "ingestion/batch-ingestion.md", "target": "index.html#batch"} +{"source": "ingestion/command-line-hadoop-indexer.md", "target": "hadoop.html#cli"} +{"source": "ingestion/compaction.md", "target": "data-management.html#compact"} +{"source": "ingestion/delete-data.md", "target": "data-management.html#delete"} +{"source": "ingestion/firehose.md", "target": "native-batch.html#firehoses"} +{"source": "ingestion/flatten-json.md", "target": "index.html#flattenspec"} +{"source": "ingestion/hadoop-vs-native-batch.md", "target": "index.html#batch"} +{"source": "ingestion/ingestion-spec.md", "target": "index.html#spec"} +{"source": "ingestion/ingestion.html", "target": "index.html"} +{"source": "ingestion/locking-and-priority.md", "target": "tasks.html#locks"} +{"source": "ingestion/misc-tasks.md", "target": "tasks.html#all-task-types"} +{"source": "ingestion/native_tasks.html", "target": "native-batch.html"} +{"source": "ingestion/native_tasks.md", "target": "native-batch.html"} +{"source": "ingestion/overview.html", "target": "index.html"} +{"source": "ingestion/realtime-ingestion.html", "target": "index.html"} +{"source": "ingestion/reports.md", "target": "tasks.html#reports"} +{"source": "ingestion/schema-changes.md", "target": "data-management.html#schema-changes"} +{"source": "ingestion/stream-ingestion.md", "target": "index.html#streaming"} +{"source": "ingestion/stream-pull.md", "target": "../ingestion/standalone-realtime.html"} +{"source": "ingestion/stream-push.md", "target": "tranquility.html"} +{"source": "ingestion/transform-spec.md", "target": "index.html#transformspec"} +{"source": "ingestion/update-existing-data.md", "target": "data-management.html#update"} +{"source": "misc/cluster-setup.html", "target": "../tutorials/cluster.html"} +{"source": "misc/evaluate.html", "target": "../tutorials/cluster.html"} +{"source": "misc/tasks.html", "target": "../ingestion/tasks.html"} +{"source": "operations/including-extensions.md", "target": "../development/extensions.html"} +{"source": "operations/multitenancy.html", "target": "../querying/multitenancy.html"} +{"source": "operations/performance-faq.html", "target": "../operations/basic-cluster-tuning.html"} +{"source": "operations/performance-faq.html", "target": "../operations/basic-cluster-tuning.html"} +{"source": "querying/optimizations.html", "target": "multi-value-dimensions.html"} +{"source": "tutorials/booting-a-production-cluster.html", "target": "cluster.html"} +{"source": "tutorials/examples.html", "target": "index.html"} +{"source": "tutorials/firewall.html", "target": "cluster.html"} +{"source": "tutorials/ingestion-streams.html", "target": "index.html"} +{"source": "tutorials/ingestion.html", "target": "index.html"} +{"source": "tutorials/quickstart.html", "target": "index.html"} +{"source": "tutorials/tutorial-a-first-look-at-druid.html", "target": "index.html"} +{"source": "tutorials/tutorial-all-about-queries.html", "target": "index.html"} +{"source": "tutorials/tutorial-loading-batch-data.html", "target": "tutorial-batch.html"} +{"source": "tutorials/tutorial-loading-streaming-data.html", "target": "tutorial-kafka.html"} +{"source": "tutorials/tutorial-the-druid-cluster.html", "target": "cluster.html"} +{"source": "tutorials/tutorial-tranquility.md", "target": "../ingestion/tranquility.html"} diff --git a/website/script/build-to-docs b/website/script/build-to-docs new file mode 100755 index 000000000000..cc089d99a7d7 --- /dev/null +++ b/website/script/build-to-docs @@ -0,0 +1,50 @@ +#!/bin/bash -eu + +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you 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. + +if [ "$#" -ne 1 ]; then + echo "Illegal number of parameters, should be just one: the version"; + exit 1; +fi + +echo "Building to docs for '$1'..." + +npm run compile-scss + +npm run build | tee ./build-log.txt + +if grep -q "unresolved links in file" ./build-log.txt; then + echo "There are unresolved links, please fix"; + rm build-log.txt; + #exit 1 +else + rm build-log.txt +fi + +node script/fix-path.js $1 + +echo "Cleaning..." +rm -rf ../../incubator-druid-website-src/docs/$1/ +mkdir -p ../../incubator-druid-website-src/docs/$1/ + +cp -r ./build/ApacheDruid/docs/* ../../incubator-druid-website-src/docs/$1/ + +mkdir -p ../../incubator-druid-website-src/css +cp ./build/ApacheDruid/css/* ../../incubator-druid-website-src/css + +mkdir -p ../../incubator-druid-website-src/js +cp ./build/ApacheDruid/js/* ../../incubator-druid-website-src/js diff --git a/website/script/do-redirects.js b/website/script/do-redirects.js new file mode 100644 index 000000000000..89ad2215b443 --- /dev/null +++ b/website/script/do-redirects.js @@ -0,0 +1,99 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you 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. + */ + +if (process.argv.length !== 2) { + console.error(`Incorrect number of arguments`); + console.error(`Run as: node do-redirects.js `); + process.exit(1); +} + +const fs = require('fs-extra'); +const path = require('path'); + +const dst = './build/ApacheDruid/docs/'; +const strict = process.argv[2]; + +function resolveTarget(source, target) { + return path.resolve(path.dirname('/' + source), target).substr(1); +} + +const redirects = fs.readFileSync('./redirects.json', 'utf-8') + .trim() + .split('\n') + .map((line) => JSON.parse(line)); + +const issues = []; +const validRedirects = redirects.filter((redirect, i) => { + const lineNumber = String(i + 1); + let source = redirect.source; + + let valid = true; + if (fs.pathExistsSync(dst + source)) { + issues.push(`On line ${lineNumber} source ${source} already exists`); + valid = false; + } + + const targetParts = redirect.target.split('#'); + const cleanTarget = targetParts[0]; + const targetAnchor = targetParts[1]; + let resolvedTarget = resolveTarget(source, cleanTarget); + if (!redirect.target.startsWith('/')) { + let targetHtml; + try { + targetHtml = fs.readFileSync(dst + resolvedTarget, 'utf-8'); + } catch (e) { + issues.push(`On line ${lineNumber} target ${resolvedTarget} does not exist`); + valid = false; + } + + if (targetHtml && targetAnchor) { + if (!targetHtml.includes(`name="${targetAnchor}"`) && !targetHtml.includes(`id="${targetAnchor}"`)) { + issues.push(`On line ${lineNumber} could not find anchor '${targetAnchor}' in '${resolvedTarget}'`) + valid = false; + } + } + } + + return valid +}); + +if (issues.length) { + issues.push(`There are ${issues.length} issues with the redirects`); + console.error(issues.join('\n')); + if (strict) process.exit(1); +} + +validRedirects.forEach((redirect) => { + let source = redirect.source; + let target = redirect.target; + + fs.ensureDirSync(path.dirname(dst + source)); + fs.writeFileSync(dst + source, ` + +Redirecting... + + +

Redirecting...

+Click here if you are not redirected. + +` + ); +}); + +console.log(`Written ${validRedirects.length} redirects`); + diff --git a/website/script/fix-path.js b/website/script/fix-path.js new file mode 100644 index 000000000000..5042e9541d89 --- /dev/null +++ b/website/script/fix-path.js @@ -0,0 +1,38 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you 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. + */ + +const replace = require('replace-in-file'); + +if (process.argv.length !== 3) { + console.log('Usage: node fix-path.js 0.16.0'); + process.exit(1); +} + +var version = process.argv[2]; + +try { + replace.sync({ + files: './build/ApacheDruid/docs/**/*.html', + from: /\/docs\//g, + to: '/docs/' + version + '/', + }); + console.log('Fixed versions'); +} catch (error) { + console.error('Error occurred:', error); + process.exit(1); +} diff --git a/website/script/link-lint.js b/website/script/link-lint.js new file mode 100644 index 000000000000..4a52e476a6b9 --- /dev/null +++ b/website/script/link-lint.js @@ -0,0 +1,88 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you 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. + */ + +const path = require('path'); +const fg = require('fast-glob'); +const fs = require('fs-extra'); + +const entries = fg.sync(['./build/ApacheDruid/docs/**/*.html']) + +function hasAnchor(html, anchor) { + anchor = anchor.replace('#', ''); + return html.includes(`name="${anchor}"`) || html.includes(`id="${anchor}"`); +} + +const issues = []; +entries.forEach((entry) => { + const cnt = fs.readFileSync(entry, 'utf-8'); + const links = cnt.match(/href="([^"#]+)?(#[^"]+)?"/g); + if (!links) return; + + links.forEach(link => { + if (link === `href=""`) return; + const match = link.match(/^href="([^"#]+)?(#[^"]+)?"$/); + if (!match) throw new Error(`something went wrong for: ${link}`); + + const url = match[1]; + const anchor = match[2]; + + if (url) { + // Ignore external links + if (url.includes('://')) return; + + // Ignore external doc links + if (url.startsWith('/') && !url.startsWith('/docs/')) return; + + // This one will get created externally + if (url === '/docs/latest') return; + + const target = url.startsWith('/') + ? './build/ApacheDruid' + url + : path.resolve(path.dirname(entry), url); + + + let targetHtml; + try { + targetHtml = fs.readFileSync(target, 'utf-8'); + } catch (e) { + issues.push(`Could not find '${url}' linked from '${entry}'`); + return; + } + + if (anchor && !hasAnchor(targetHtml, anchor)) { + issues.push(`Could not find anchor '${anchor}' in '${url}' linked from '${entry}'`) + } + } else { + if (anchor) { + if (!hasAnchor(cnt, anchor)) { + issues.push(`Could not find self anchor '${anchor}' in '${entry}'`) + } + } else { + throw new Error(`should not get here with: ${link} in '${entry}'`); + } + } + }); +}); + +if (issues.length) { + issues.push(`There are ${issues.length} issues`); + console.error(issues.join('\n')); + process.exit(1); +} + + diff --git a/website/scss/custom.scss b/website/scss/custom.scss new file mode 100644 index 000000000000..c8ad7bd97ad4 --- /dev/null +++ b/website/scss/custom.scss @@ -0,0 +1,112 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you 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. + */ + +$link: #4460de; + +@media only screen and (max-width: 1024px) { + .navigationSlider .slidingNav ul li:last-child { + padding-top: 8px; + } +} + +.fixedHeaderContainer header img { + position: absolute; + top: -4px; + height: 42px; + margin: 0; +} + +.navigationSlider .slidingNav ul li a { + color: #9caeff; + font-weight: 600; + font-size: 15px; +} + +.navigationSlider .slidingNav ul li:last-child a { + display: inline-block; + height: 32px; + line-height: 32px; + background: #9caeff; + border-radius: 2px; + padding: 0 10px; + color: #1C1C26; + font-weight: 600; + min-width: 106px; + text-align: center; +} + +.toc .toggleNav .navGroup .navGroupSubcategoryTitle { + color: #717171; +} + +pre code { + max-height: 500px; +} + +.mainContainer a { + color: $link; +} + +footer.druid-footer { + line-height: 1.4em; + padding: 32px 0 48px 0; + background-color: #f3f3f3; + border-top: 1px solid white; + margin-top: 50px; + + .text-center { + text-align: center; + } + + a { + color: #4460de; + cursor: pointer; + font-weight: 600; + + &:hover { + color: $link; + } + } + + .license { + margin-top: 12px; + font-size: 11px; + color: #aaa; + line-height: 1.4em; + + a { + color: inherit; + font-weight: inherit; + + &:hover { + color: $link; + text-decoration: underline; + } + } + } + + .fa, .fab, .fas { + font-size: 18px; + margin: 6px 0; + color: $link; + } +} + +.navGroups > .navGroup:last-child { + display: none; +} diff --git a/website/sidebars.json b/website/sidebars.json new file mode 100644 index 000000000000..25e2b1435893 --- /dev/null +++ b/website/sidebars.json @@ -0,0 +1,210 @@ +{ + "docs": { + "Getting started": [ + "design/index", + "tutorials/index", + "operations/single-server", + "tutorials/cluster" + ], + "Tutorials": [ + "tutorials/tutorial-batch", + "tutorials/tutorial-kafka", + "tutorials/tutorial-batch-hadoop", + "tutorials/tutorial-query", + "tutorials/tutorial-rollup", + "tutorials/tutorial-retention", + "tutorials/tutorial-update-data", + "tutorials/tutorial-compaction", + "tutorials/tutorial-delete-data", + "tutorials/tutorial-ingestion-spec", + "tutorials/tutorial-transform-spec", + "tutorials/tutorial-kerberos-hadoop" + ], + "Design": [ + "design/architecture", + "design/segments", + "design/processes", + "dependencies/deep-storage", + "dependencies/metadata-storage", + "dependencies/zookeeper" + ], + "Data ingestion": [ + "ingestion/index", + "ingestion/data-formats", + "ingestion/schema-design", + "ingestion/data-management", + { + "type": "subcategory", + "label": "Stream ingestion", + "ids": [ + "development/extensions-core/kafka-ingestion", + "development/extensions-core/kinesis-ingestion", + "ingestion/tranquility", + "ingestion/standalone-realtime" + ] + }, + { + "type": "subcategory", + "label": "Batch ingestion", + "ids": [ + "ingestion/native-batch", + "ingestion/hadoop" + ] + }, + "ingestion/tasks", + "ingestion/faq" + ], + "Querying": [ + "querying/sql", + { + "type": "subcategory", + "label": "Native query types", + "ids": [ + "querying/querying", + "querying/timeseriesquery", + "querying/topnquery", + "querying/groupbyquery", + "querying/scan-query", + "querying/timeboundaryquery", + "querying/segmentmetadataquery", + "querying/datasourcemetadataquery", + "querying/searchquery", + "querying/select-query" + ] + }, + "querying/multi-value-dimensions", + "querying/lookups", + "querying/joins", + "querying/multitenancy", + "querying/caching", + "development/geo" + ], + "Configuration": [ + "configuration/index", + "development/extensions", + "configuration/logging" + ], + "Operations": [ + "operations/management-uis", + "operations/basic-cluster-tuning", + "operations/api-reference", + "operations/high-availability", + "operations/rolling-updates", + "operations/rule-configuration", + "operations/metrics", + "operations/alerts", + "operations/other-hadoop", + "operations/http-compression", + "operations/recommendations", + "operations/tls-support", + "operations/password-provider", + "operations/dump-segment", + "operations/reset-cluster", + "operations/insert-segment-to-db", + "operations/pull-deps", + { + "type": "subcategory", + "label": "Misc", + "ids": [ + "operations/deep-storage-migration", + "operations/druid-console", + "operations/export-metadata", + "operations/getting-started", + "operations/metadata-migration", + "operations/segment-optimization", + "operations/use_sbt_to_build_fat_jar" + ] + } + ], + "Development": [ + "development/overview", + "development/modules", + "development/javascript", + "development/build", + "development/versioning", + "development/experimental" + ], + "Misc": [ + "misc/math-expr", + "misc/papers-and-talks" + ], + "Hidden": [ + "comparisons/druid-vs-elasticsearch", + "comparisons/druid-vs-key-value", + "comparisons/druid-vs-kudu", + "comparisons/druid-vs-redshift", + "comparisons/druid-vs-spark", + "comparisons/druid-vs-sql-on-hadoop", + "design/auth", + "design/broker", + "design/coordinator", + "design/historical", + "design/indexer", + "design/indexing-service", + "design/middlemanager", + "design/overlord", + "design/router", + "design/peons", + "development/integrating-druid-with-other-technologies", + "development/extensions-core/approximate-histograms", + "development/extensions-core/avro", + "development/extensions-core/bloom-filter", + "development/extensions-core/datasketches-extension", + "development/extensions-core/datasketches-hll", + "development/extensions-core/datasketches-quantiles", + "development/extensions-core/datasketches-theta", + "development/extensions-core/datasketches-tuple", + "development/extensions-core/druid-basic-security", + "development/extensions-core/druid-kerberos", + "development/extensions-core/druid-lookups", + "development/extensions-core/examples", + "development/extensions-core/hdfs", + "development/extensions-core/kafka-extraction-namespace", + "development/extensions-core/lookups-cached-global", + "development/extensions-core/mysql", + "development/extensions-core/orc", + "development/extensions-core/parquet", + "development/extensions-core/postgresql", + "development/extensions-core/protobuf", + "development/extensions-core/s3", + "development/extensions-core/simple-client-sslcontext", + "development/extensions-core/stats", + "development/extensions-core/test-stats", + "development/extensions-contrib/ambari-metrics-emitter", + "development/extensions-contrib/azure", + "development/extensions-contrib/cassandra", + "development/extensions-contrib/cloudfiles", + "development/extensions-contrib/distinctcount", + "development/extensions-contrib/google", + "development/extensions-contrib/graphite", + "querying/aggregations", + "querying/datasource", + "querying/dimensionspecs", + "querying/filters", + "querying/granularities", + "querying/having", + "querying/hll-old", + "querying/limitspec", + "querying/post-aggregations", + "querying/query-context", + "querying/searchqueryspec", + "querying/sorting-orders", + "querying/topnmetricspec", + "querying/virtual-columns", + "development/extensions-contrib/influx", + "development/extensions-contrib/influxdb-emitter", + "development/extensions-contrib/kafka-emitter", + "development/extensions-contrib/materialized-view", + "development/extensions-contrib/momentsketch-quantiles", + "development/extensions-contrib/moving-average-query", + "development/extensions-contrib/opentsdb-emitter", + "development/extensions-contrib/redis-cache", + "development/extensions-contrib/sqlserver", + "development/extensions-contrib/statsd", + "development/extensions-contrib/tdigestsketch-quantiles", + "development/extensions-contrib/thrift", + "development/extensions-contrib/time-min-max", + "ingestion/standalone-realtime" + ] + } +} diff --git a/website/siteConfig.js b/website/siteConfig.js new file mode 100644 index 000000000000..815ac26a35f2 --- /dev/null +++ b/website/siteConfig.js @@ -0,0 +1,110 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you 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. + */ + +// See https://docusaurus.io/docs/site-config for all the possible +// site configuration options. + +const siteConfig = { + title: 'Apache Druid', + tagline: 'A fast analytical database', + url: 'https://druid.apache.org', + baseUrl: '/', // Base URL for your project */ + + // Used for publishing and more + projectName: 'ApacheDruid', + organizationName: 'Apache', + + // For no header links in the top nav bar -> headerLinks: [], + headerLinks: [ + {href: '/technology', label: 'Technology'}, + {href: '/use-cases', label: 'Use Cases'}, + {href: '/druid-powered', label: 'Powered By'}, + {doc: 'design/index', label: 'Docs'}, + {href: '/community/', label: 'Community'}, + {href: 'https://www.apache.org', label: 'Apache'}, + {href: '/download.html', label: 'Download'}, + ], + + /* path to images for header/footer */ + headerIcon: 'img/druid_nav.png', + footerIcon: 'img/favicon.png', + favicon: 'img/favicon.png', + + disableHeaderTitle: true, + + /* Colors for website */ + colors: { + primaryColor: '#1C1C26', + secondaryColor: '#3b3b50', + }, + + /* Custom fonts for website */ + /* + fonts: { + myFont: [ + "Times New Roman", + "Serif" + ], + myOtherFont: [ + "-apple-system", + "system-ui" + ] + }, + */ + + // This copyright info is used in /core/Footer.js and blog RSS/Atom feeds. + copyright: `Copyright © ${new Date().getFullYear()} Apache Software Foundation`, + + highlight: { + // Highlight.js theme to use for syntax highlighting in code blocks. + theme: 'default', + }, + + docsSideNavCollapsible: true, + + // Add custom scripts here that would be placed in