diff --git a/docs/docs/deployment/gcp-deployment.md b/docs/GCP_DEPLOYMENT.md
similarity index 50%
rename from docs/docs/deployment/gcp-deployment.md
rename to docs/GCP_DEPLOYMENT.md
index 771550f24..dd58ee8f2 100644
--- a/docs/docs/deployment/gcp-deployment.md
+++ b/docs/GCP_DEPLOYMENT.md
@@ -1,32 +1,36 @@
-# Deploy on Google Cloud Platform
+# Deploy Langflow on Google Cloud Platform
+Follow our step-by-step guide to deploy Langflow on Google Cloud Platform (GCP) using Google Cloud Shell. The guide is available in the [**Langflow in Google Cloud Platform**](GCP_DEPLOYMENT.md) document.
+
+
+
+Alternatively, click the **"Open in Cloud Shell"** button below to launch Google Cloud Shell, clone the Langflow repository, and start an **interactive tutorial** that will guide you through the process of setting up the necessary resources and deploying Langflow on your GCP project.
+
+[](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/genome21/langflow&working_dir=scripts&shellonly=true&tutorial=walkthroughtutorial_spot.md){.internal-link target=_blank}
+
+---
## Run Langflow from a New Google Cloud Project
This guide will help you set up a Langflow development VM in a Google Cloud Platform project using Google Cloud Shell.
-:::note
-When Cloud Shell opens, be sure to select **Trust repo**. Some `gcloud` commands might not run in an ephemeral Cloud Shell environment.
-:::
+> **Note**: When Cloud Shell opens, be sure to select **Trust repo**. Some `gcloud` commands might not run in an ephemeral Cloud Shell environment.
## Standard VM
-[](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/logspace-ai/langflow&working_dir=scripts&shellonly=true&tutorial=walkthroughtutorial.md)
+[](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/genome21/langflow&working_dir=scripts&shellonly=true&tutorial=walkthroughtutorial.md){.internal-link target=_blank}
This script sets up a Debian-based VM with the Langflow package, Nginx, and the necessary configurations to run the Langflow Dev environment.
-
----
+
## Spot/Preemptible Instance
-[](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/genome21/langflow&working_dir=scripts&shellonly=true&tutorial=walkthroughtutorial_spot.md)
+[](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/genome21/langflow&working_dir=scripts&shellonly=true&tutorial=walkthroughtutorial.md){.internal-link target=_blank}
-When running as a [spot (preemptible) instance](https://cloud.google.com/compute/docs/instances/preemptible), the code and VM will behave the same way as in a regular instance, executing the startup script to configure the environment, install necessary dependencies, and run the Langflow application. However, **due to the nature of spot instances, the VM may be terminated at any time if Google Cloud needs to reclaim the resources**. This makes spot instances suitable for fault-tolerant, stateless, or interruptible workloads that can handle unexpected terminations and restarts.
-
----
+When running as a [spot (preemptible) instance](https://cloud.google.com/compute/docs/instances/preemptible){.internal-link target=_blank}, the code and VM will behave the same way as in a regular instance, executing the startup script to configure the environment, install necessary dependencies, and run the Langflow application. However, **due to the nature of spot instances, the VM may be terminated at any time if Google Cloud needs to reclaim the resources**. This makes spot instances suitable for fault-tolerant, stateless, or interruptible workloads that can handle unexpected terminations and restarts.
## Pricing (approximate)
-> For a more accurate breakdown of costs, please use the [**GCP Pricing Calculator**](https://cloud.google.com/products/calculator)
-
+> For a more accurate breakdown of costs, please use the [**GCP Pricing Calculator**](https://cloud.google.com/products/calculator){.internal-link target=_blank}
+
| Component | Regular Cost (Hourly) | Regular Cost (Monthly) | Spot/Preemptible Cost (Hourly) | Spot/Preemptible Cost (Monthly) | Notes |
| -------------- | --------------------- | ---------------------- | ------------------------------ | ------------------------------- | ----- |
diff --git a/docs/README.md b/docs/README.md
deleted file mode 100644
index aaba2fa1e..000000000
--- a/docs/README.md
+++ /dev/null
@@ -1,41 +0,0 @@
-# Website
-
-This website is built using [Docusaurus 2](https://docusaurus.io/), a modern static website generator.
-
-### Installation
-
-```
-$ yarn
-```
-
-### Local Development
-
-```
-$ yarn start
-```
-
-This command starts a local development server and opens up a browser window. Most changes are reflected live without having to restart the server.
-
-### Build
-
-```
-$ yarn build
-```
-
-This command generates static content into the `build` directory and can be served using any static contents hosting service.
-
-### Deployment
-
-Using SSH:
-
-```
-$ USE_SSH=true yarn deploy
-```
-
-Not using SSH:
-
-```
-$ GIT_USER= yarn deploy
-```
-
-If you are using GitHub pages for hosting, this command is a convenient way to build the website and push to the `gh-pages` branch.
diff --git a/docs/babel.config.js b/docs/babel.config.js
deleted file mode 100644
index e00595dae..000000000
--- a/docs/babel.config.js
+++ /dev/null
@@ -1,3 +0,0 @@
-module.exports = {
- presets: [require.resolve('@docusaurus/core/lib/babel/preset')],
-};
diff --git a/docs/community.md b/docs/community.md
new file mode 100644
index 000000000..dc75f3033
--- /dev/null
+++ b/docs/community.md
@@ -0,0 +1,36 @@
+# 🐦 Stay tunned for **LangFlow** on Twitter
+
+Follow [@logspace_ai](https://twitter.com/logspace_ai){.internal-link target=_blank} on **Twitter** to get the latest news about **LangFlow**.
+
+
+---
+# ⭐️ Star **LangFlow** on GitHub
+
+You can "star" **LangFlow** in [GitHub](https://github.com/logspace-ai/langflow){.internal-link target=_blank}.
+
+
+
+By adding a star, other users will be able to find it more easily and see that it has been already useful for others.
+
+
+
+[](https://star-history.com/#logspace-ai/langflow&Date){.internal-link target=_blank}
+
+
+---
+
+# 👀 Watch the GitHub repository for releases
+
+You can "watch" **LangFlow** in [GitHub](https://github.com/logspace-ai/langflow){.internal-link target=_blank}.
+
+
+
+If you select "Watching" instead of "Releases only" you will receive notifications when someone creates a new issue or question. You can also specify that you only want to be notified about new issues, discussions, PRs, etc.
+
+
+
+Then you can try and help them solve those questions.
+
+---
+
+Thanks! 🚀
\ No newline at end of file
diff --git a/docs/contribute.md b/docs/contribute.md
new file mode 100644
index 000000000..c6f676e34
--- /dev/null
+++ b/docs/contribute.md
@@ -0,0 +1,13 @@
+# 👋 Contributing
+
+Hello there! We welcome contributions from developers of all levels to our open-source project on [GitHub](https://github.com/logspace-ai/langflow){.internal-link target=_blank}. If you'd like to contribute, please check our contributing guidelines and help make LangFlow more accessible.
+
+
+
+As an open-source project in a rapidly developing field, we are extremely open
+to contributions, whether it be in the form of a new feature, improved infra, or better documentation.
+
+
+
+To contribute to this project, please follow a ["fork and pull request"](https://docs.github.com/en/get-started/quickstart/contributing-to-projects){.internal-link target=_blank} workflow.
+Please do not try to push directly to this repo unless you are a maintainer.
\ No newline at end of file
diff --git a/docs/conversation-buffer-memory.md b/docs/conversation-buffer-memory.md
new file mode 100644
index 000000000..58cf51e55
--- /dev/null
+++ b/docs/conversation-buffer-memory.md
@@ -0,0 +1,38 @@
+`ConversationBufferMemory` allows you to store messages and then extract the messages in a variable. The **memory key** input is typically generated by encoding the input text using an encoder network, which maps the input text into a fixed-dimensional vector representation.
+
+
+
+{width=50%}
+{width=50%}
+
+
+
+Learn more about the [ConversationBufferMemory](https://python.langchain.com/en/latest/modules/memory/types/buffer.html){.internal-link target=\_blank} in the LangChain documentation.
+
+---
+### ⛓️LangFlow example
+
+
+
+{width=100%}
+{width=100%}
+
+
+
+[Download Flow](data/Conversation_buffer_memory.json){: .md-button download="Conversation_buffer_memory"}
+
+
+
+`ConversationChain` is a chain to have a conversation and load context from memory. **Output Key** and **Input Key** are simply unique identifiers used to represent the data being passed between different modules or steps in a Conversation Chain. These keys help to ensure that the data is properly routed and processed by the appropriate modules in the conversation flow.
+
+
+
+Output Key used the default: `response` and Input Key used the default: `input`.
+
+
+
+In the LangFlow example, we used `ChatOpenAI` as the LLM, but you can use any LLM that has an API. Make sure to get the API key from the LLM provider. For example, [ChatOpenAI](https://platform.openai.com/){.internal-link target=\_blank} requires you to create an account to get your API key.
+
+
+
+Check out the [ChatOpenAI](https://platform.openai.com/docs/introduction/overview){.internal-link target=\_blank} documentation to learn more about the API and the options that contain in the node.
diff --git a/docs/conversation-summary-memory.md b/docs/conversation-summary-memory.md
new file mode 100644
index 000000000..5f11a1512
--- /dev/null
+++ b/docs/conversation-summary-memory.md
@@ -0,0 +1,37 @@
+`ConversationSummaryMemory` creates a summary of the conversation over time, which can be useful for condensing information. The **memory key** input is typically generated by encoding the input text using an encoder network, which maps the input text into a fixed-dimensional vector representation.
+
+
+
+{width=50%}
+{width=50%}
+
+
+
+To understand more, check out the LangChain [ConversationSummaryMemory](https://python.langchain.com/en/latest/modules/memory/types/summary.html){.internal-link target=\_blank} documentation.
+
+---
+
+### ⛓️LangFlow example
+
+{width=100%}
+{width=100%}
+
+
+
+[Download Flow](data/Conversation_summary_memory.json){: .md-button download="Conversation_summary_memory"}
+
+
+
+In the LangFlow example, we used `ChatOpenAI` as the LLM, but you can use any LLM that has an API. Make sure to get the API key from the LLM provider. For example, [ChatOpenAI](https://platform.openai.com/){.internal-link target=\_blank} requires you to create an account to get your API key.
+
+
+
+Check out the [ChatOpenAI](https://platform.openai.com/docs/introduction/overview){.internal-link target=\_blank} documentation to learn more about the API and the options that contain in the node.
+
+
+
+`ConversationChain` is a chain to have a conversation and load context from memory. **Output Key** and **Input Key** are simply unique identifiers used to represent the data being passed between different modules or steps in a Conversation Chain. These keys help to ensure that the data is properly routed and processed by the appropriate modules in the conversation flow.
+
+
+
+Output Key used the default: `response` and Input Key used the default: `input`.
diff --git a/docs/create-flows.md b/docs/create-flows.md
new file mode 100644
index 000000000..75e74f7c8
--- /dev/null
+++ b/docs/create-flows.md
@@ -0,0 +1,21 @@
+# Creating Flows
+
+Creating flows with LangFlow is easy. Simply drag sidebar components onto the canvas and connect them together to create your pipeline. LangFlow provides a range of [LangChain components](https://langchain.readthedocs.io/en/latest/reference.html){.internal-link target=\_blank} to choose from, including LLMs, prompt serializers, agents, and chains.
+
+
+
+Explore by editing prompt parameters, link chains and agents, track an agent's thought process, and export your flow.
+
+
+
+Once you're done, you can export your flow as a JSON file to use with LangChain.
+To do so, click the "Export" button in the top right corner of the canvas, then
+in Python, you can load the flow with:
+
+```py
+from langflow import load_flow_from_json
+
+flow = load_flow_from_json("path/to/flow.json")
+# Now you can use it like any chain
+flow("Hey, have you heard of LangFlow?")
+```
diff --git a/docs/csv-loader.md b/docs/csv-loader.md
new file mode 100644
index 000000000..970f0933a
--- /dev/null
+++ b/docs/csv-loader.md
@@ -0,0 +1,94 @@
+The `CSVLoader` loads a CSV file into a list of documents.
+
+
+
+{width=50%}
+{width=50%}
+
+
+
+Check out more about the `CSVLoader` in [LangChain](https://python.langchain.com/en/latest/modules/indexes/document_loaders/examples/csv.html?highlight=CSV%20loader){.internal-link target=\_blank} documentation.
+
+---
+
+### ⛓️LangFlow example
+
+{width=100%}
+{width=100%}
+
+
+
+[Download Flow](data/Csv_loader.json){: .md-button download="Csv_loader"}
+
+
+
+`File path:`
+
+
+
+[Download CSV](data/organizations-100.csv){: .md-button download="organizations-100.csv"}
+
+
+
+`CharacterTextSplitter` implements splitting text based on characters.
+
+Text splitters operate as follows:
+
+- Split the text into small, meaningful chunks (usually sentences).
+
+- Combine these small chunks into larger ones until they reach a certain size (measured by a function).
+
+- Once a chunk reaches the desired size, make it its piece of text and create a new chunk with some overlap to maintain context.
+
+**Separator used**:
+
+```txt
+.
+```
+
+**Chunk size used**:
+
+```txt
+2000
+```
+
+**Chunk overlap used**:
+
+```txt
+200
+```
+
+
+For the example, we used `OpenAI` as the LLM, but you can use any LLM that has an API. Make sure to get the API key from the LLM provider. For example, [OpenAI](https://platform.openai.com/){.internal-link target=_blank} requires you to create an account to get your API key.
+
+
+
+Check out the [OpenAI](https://platform.openai.com/docs/introduction/overview){.internal-link target=\_blank} documentation to learn more about the API and the options that contain in the node.
+
+
+
+The `OpenAIEmbeddings`, wrapper around [OpenAI Embeddings](https://platform.openai.com/docs/guides/embeddings/what-are-embeddings){.internal-link target=\_blank} models. Make sure to get the API key from the LLM provider, in this case [OpenAI](https://platform.openai.com/){.internal-link target=\_blank}.
+
+
+
+`Chroma` vector databases can be used as vector stores to conduct a semantic search or to select examples, thanks to a wrapper around them.
+
+
+
+A `VectorStoreInfo` set information about the vector store, such as the name and description.
+
+
+
+**Name used**:
+
+```txt
+organizations-100
+```
+
+**Description used**:
+
+```txt
+A table contains 100 companies.
+```
+
+The `VectoStoreAgent`is an agent designed to retrieve information from one or more vector stores, either with or without sources.
diff --git a/docs/data/Conversation_buffer_memory.json b/docs/data/Conversation_buffer_memory.json
new file mode 100644
index 000000000..43357d471
--- /dev/null
+++ b/docs/data/Conversation_buffer_memory.json
@@ -0,0 +1 @@
+{"description":"","name":"Conversation_buffer_memory","id":"5720c687-111b-4451-bff4-a5c9294b8cf4","data":{"nodes":[{"width":384,"height":273,"id":"dndnode_191","type":"genericNode","position":{"x":973.4347478611369,"y":287.3561437283455},"data":{"type":"ConversationBufferMemory","node":{"template":{"chat_memory":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"chat_memory","advanced":false,"type":"BaseChatMessageHistory","list":false},"output_key":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"output_key","advanced":false,"type":"str","list":false},"input_key":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"input_key","advanced":false,"type":"str","list":false},"return_messages":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"return_messages","advanced":false,"type":"bool","list":false},"human_prefix":{"required":false,"placeholder":"","show":false,"multiline":false,"value":"Human","password":false,"name":"human_prefix","advanced":false,"type":"str","list":false},"ai_prefix":{"required":false,"placeholder":"","show":false,"multiline":false,"value":"AI","password":false,"name":"ai_prefix","advanced":false,"type":"str","list":false},"memory_key":{"required":false,"placeholder":"","show":true,"multiline":false,"value":"history","password":false,"name":"memory_key","advanced":false,"type":"str","list":false},"_type":"ConversationBufferMemory"},"description":"Buffer for storing conversation memory.","base_classes":["ConversationBufferMemory","BaseChatMemory","BaseMemory"]},"id":"dndnode_191","value":null},"selected":false,"positionAbsolute":{"x":973.4347478611369,"y":287.3561437283455},"dragging":false},{"width":384,"height":511,"id":"dndnode_192","type":"genericNode","position":{"x":970.9455566181264,"y":643.49046286148},"data":{"type":"ChatOpenAI","node":{"template":{"verbose":{"required":false,"placeholder":"","show":false,"multiline":false,"value":false,"password":false,"name":"verbose","advanced":false,"type":"bool","list":false},"callbacks":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"callbacks","advanced":false,"type":"langchain.callbacks.base.BaseCallbackHandler","list":true},"client":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"client","advanced":false,"type":"Any","list":false},"model_name":{"required":false,"placeholder":"","show":true,"multiline":false,"value":"gpt-3.5-turbo","password":false,"options":["gpt-3.5-turbo","gpt-4","gpt-4-32k"],"name":"model_name","advanced":false,"type":"str","list":true},"temperature":{"required":false,"placeholder":"","show":true,"multiline":false,"value":0.7,"password":false,"name":"temperature","advanced":false,"type":"float","list":false},"model_kwargs":{"required":false,"placeholder":"","show":true,"multiline":false,"password":false,"name":"model_kwargs","advanced":true,"type":"code","list":false},"openai_api_key":{"required":false,"placeholder":"","show":true,"multiline":false,"value":"","password":true,"name":"openai_api_key","display_name":"OpenAI API Key","advanced":false,"type":"str","list":false},"openai_organization":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"openai_organization","advanced":false,"type":"str","list":false},"request_timeout":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"request_timeout","advanced":false,"type":"float","list":false},"max_retries":{"required":false,"placeholder":"","show":false,"multiline":false,"value":6,"password":false,"name":"max_retries","advanced":false,"type":"int","list":false},"streaming":{"required":false,"placeholder":"","show":false,"multiline":false,"value":false,"password":false,"name":"streaming","advanced":false,"type":"bool","list":false},"n":{"required":false,"placeholder":"","show":false,"multiline":false,"value":1,"password":false,"name":"n","advanced":false,"type":"int","list":false},"max_tokens":{"required":false,"placeholder":"","show":true,"multiline":false,"password":true,"name":"max_tokens","advanced":false,"type":"int","list":false},"_type":"ChatOpenAI"},"description":"Wrapper around OpenAI Chat large language models.","base_classes":["BaseLanguageModel","ChatOpenAI","BaseChatModel"]},"id":"dndnode_192","value":null},"selected":true,"positionAbsolute":{"x":970.9455566181264,"y":643.49046286148},"dragging":false},{"width":384,"height":287,"id":"dndnode_193","type":"genericNode","position":{"x":1697.034097486364,"y":474.7173739305684},"data":{"type":"ConversationChain","node":{"template":{"memory":{"required":false,"placeholder":"","show":true,"multiline":false,"password":false,"name":"memory","advanced":false,"type":"BaseMemory","list":false},"callbacks":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"callbacks","advanced":false,"type":"langchain.callbacks.base.BaseCallbackHandler","list":true},"verbose":{"required":false,"placeholder":"","show":true,"multiline":false,"password":false,"name":"verbose","advanced":true,"type":"bool","list":false},"prompt":{"required":false,"placeholder":"","show":false,"multiline":false,"value":{"input_variables":["history","input"],"output_parser":null,"partial_variables":{},"template":"The following is a friendly conversation between a human and an AI. The AI is talkative and provides lots of specific details from its context. If the AI does not know the answer to a question, it truthfully says it does not know.\n\nCurrent conversation:\n{history}\nHuman: {input}\nAI:","template_format":"f-string","validate_template":true,"_type":"prompt"},"password":false,"name":"prompt","advanced":false,"type":"BasePromptTemplate","list":false},"llm":{"required":true,"placeholder":"","show":true,"multiline":false,"password":false,"name":"llm","advanced":false,"type":"BaseLanguageModel","list":false},"output_key":{"required":true,"placeholder":"","show":true,"multiline":false,"value":"response","password":false,"name":"output_key","advanced":true,"type":"str","list":false},"input_key":{"required":true,"placeholder":"","show":true,"multiline":false,"value":"input","password":false,"name":"input_key","advanced":true,"type":"str","list":false},"_type":"ConversationChain"},"description":"Chain to have a conversation and load context from memory.","base_classes":["LLMChain","ConversationChain","Chain","function"]},"id":"dndnode_193","value":null},"selected":false,"positionAbsolute":{"x":1697.034097486364,"y":474.7173739305684},"dragging":false}],"edges":[{"source":"dndnode_192","sourceHandle":"ChatOpenAI|dndnode_192|BaseLanguageModel|ChatOpenAI|BaseChatModel","target":"dndnode_193","targetHandle":"BaseLanguageModel|llm|dndnode_193","className":"animate-pulse","id":"reactflow__edge-dndnode_192ChatOpenAI|dndnode_192|BaseLanguageModel|ChatOpenAI|BaseChatModel-dndnode_193BaseLanguageModel|llm|dndnode_193","selected":false},{"source":"dndnode_191","sourceHandle":"ConversationBufferMemory|dndnode_191|ConversationBufferMemory|BaseChatMemory|BaseMemory","target":"dndnode_193","targetHandle":"BaseMemory|memory|dndnode_193","className":"animate-pulse","id":"reactflow__edge-dndnode_191ConversationBufferMemory|dndnode_191|ConversationBufferMemory|BaseChatMemory|BaseMemory-dndnode_193BaseMemory|memory|dndnode_193","selected":false}],"viewport":{"x":-386.66203868655293,"y":-166.9729649100679,"zoom":0.8235910172675734}}}
\ No newline at end of file
diff --git a/docs/data/Conversation_summary_memory.json b/docs/data/Conversation_summary_memory.json
new file mode 100644
index 000000000..3a3eb93b2
--- /dev/null
+++ b/docs/data/Conversation_summary_memory.json
@@ -0,0 +1 @@
+{"description":"","name":"conversation-summary-memory","id":"45eea1c1-9fa3-4e6a-a334-b10a1c21c5c3","data":{"nodes":[{"width":384,"height":313,"id":"dndnode_1","type":"genericNode","position":{"x":1116.6791049603164,"y":270.33992433531944},"data":{"type":"ConversationSummaryMemory","node":{"template":{"human_prefix":{"required":false,"placeholder":"","show":false,"multiline":false,"value":"Human","password":false,"name":"human_prefix","advanced":false,"type":"str","list":false},"ai_prefix":{"required":false,"placeholder":"","show":false,"multiline":false,"value":"AI","password":false,"name":"ai_prefix","advanced":false,"type":"str","list":false},"llm":{"required":true,"placeholder":"","show":true,"multiline":false,"password":false,"name":"llm","advanced":false,"type":"BaseLanguageModel","list":false},"prompt":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"prompt","advanced":false,"type":"BasePromptTemplate","list":false},"summary_message_cls":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"summary_message_cls","advanced":false,"type":"Type[langchain.schema.BaseMessage]","list":false},"chat_memory":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"chat_memory","advanced":false,"type":"BaseChatMessageHistory","list":false},"output_key":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"output_key","advanced":false,"type":"str","list":false},"input_key":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"input_key","advanced":false,"type":"str","list":false},"return_messages":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"return_messages","advanced":false,"type":"bool","list":false},"buffer":{"required":false,"placeholder":"","show":false,"multiline":false,"value":"","password":false,"name":"buffer","advanced":false,"type":"str","list":false},"memory_key":{"required":false,"placeholder":"","show":true,"multiline":false,"value":"history","password":false,"name":"memory_key","advanced":false,"type":"str","list":false},"_type":"ConversationSummaryMemory"},"description":"Conversation summarizer to memory.","base_classes":["ConversationSummaryMemory","BaseChatMemory","SummarizerMixin","BaseMemory"]},"id":"dndnode_1","value":null},"selected":false,"positionAbsolute":{"x":1116.6791049603164,"y":270.33992433531944},"dragging":false},{"width":384,"height":511,"id":"dndnode_2","type":"genericNode","position":{"x":609.6100790835059,"y":560.4488110508937},"data":{"type":"ChatOpenAI","node":{"template":{"verbose":{"required":false,"placeholder":"","show":false,"multiline":false,"value":false,"password":false,"name":"verbose","advanced":false,"type":"bool","list":false},"callbacks":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"callbacks","advanced":false,"type":"langchain.callbacks.base.BaseCallbackHandler","list":true},"client":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"client","advanced":false,"type":"Any","list":false},"model_name":{"required":false,"placeholder":"","show":true,"multiline":false,"value":"gpt-3.5-turbo","password":false,"options":["gpt-3.5-turbo","gpt-4","gpt-4-32k"],"name":"model_name","advanced":false,"type":"str","list":true},"temperature":{"required":false,"placeholder":"","show":true,"multiline":false,"value":0.7,"password":false,"name":"temperature","advanced":false,"type":"float","list":false},"model_kwargs":{"required":false,"placeholder":"","show":true,"multiline":false,"password":false,"name":"model_kwargs","advanced":true,"type":"code","list":false},"openai_api_key":{"required":false,"placeholder":"","show":true,"multiline":false,"value":"","password":true,"name":"openai_api_key","display_name":"OpenAI API Key","advanced":false,"type":"str","list":false},"openai_organization":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"openai_organization","advanced":false,"type":"str","list":false},"request_timeout":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"request_timeout","advanced":false,"type":"float","list":false,"value":60},"max_retries":{"required":false,"placeholder":"","show":false,"multiline":false,"value":6,"password":false,"name":"max_retries","advanced":false,"type":"int","list":false},"streaming":{"required":false,"placeholder":"","show":false,"multiline":false,"value":false,"password":false,"name":"streaming","advanced":false,"type":"bool","list":false},"n":{"required":false,"placeholder":"","show":false,"multiline":false,"value":1,"password":false,"name":"n","advanced":false,"type":"int","list":false},"max_tokens":{"required":false,"placeholder":"","show":true,"multiline":false,"password":true,"name":"max_tokens","advanced":false,"type":"int","list":false},"_type":"ChatOpenAI"},"description":"Wrapper around OpenAI Chat large language models.","base_classes":["BaseLanguageModel","ChatOpenAI","BaseChatModel"]},"id":"dndnode_2","value":null},"selected":false,"positionAbsolute":{"x":609.6100790835059,"y":560.4488110508937},"dragging":false},{"width":384,"height":287,"id":"dndnode_3","type":"genericNode","position":{"x":1650.661589142996,"y":663.6935889080331},"data":{"type":"ConversationChain","node":{"template":{"memory":{"required":false,"placeholder":"","show":true,"multiline":false,"password":false,"name":"memory","advanced":false,"type":"BaseMemory","list":false},"callbacks":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"callbacks","advanced":false,"type":"langchain.callbacks.base.BaseCallbackHandler","list":true},"verbose":{"required":false,"placeholder":"","show":true,"multiline":false,"password":false,"name":"verbose","advanced":true,"type":"bool","list":false},"prompt":{"required":false,"placeholder":"","show":false,"multiline":false,"value":{"input_variables":["history","input"],"output_parser":null,"partial_variables":{},"template":"The following is a friendly conversation between a human and an AI. The AI is talkative and provides lots of specific details from its context. If the AI does not know the answer to a question, it truthfully says it does not know.\n\nCurrent conversation:\n{history}\nHuman: {input}\nAI:","template_format":"f-string","validate_template":true,"_type":"prompt"},"password":false,"name":"prompt","advanced":false,"type":"BasePromptTemplate","list":false},"llm":{"required":true,"placeholder":"","show":true,"multiline":false,"password":false,"name":"llm","advanced":false,"type":"BaseLanguageModel","list":false},"output_key":{"required":true,"placeholder":"","show":true,"multiline":false,"value":"response","password":false,"name":"output_key","advanced":true,"type":"str","list":false},"input_key":{"required":true,"placeholder":"","show":true,"multiline":false,"value":"input","password":false,"name":"input_key","advanced":true,"type":"str","list":false},"_type":"ConversationChain"},"description":"Chain to have a conversation and load context from memory.","base_classes":["LLMChain","ConversationChain","Chain"]},"id":"dndnode_3","value":null},"selected":false,"positionAbsolute":{"x":1650.661589142996,"y":663.6935889080331},"dragging":false}],"edges":[{"source":"dndnode_2","sourceHandle":"ChatOpenAI|dndnode_2|BaseLanguageModel|ChatOpenAI|BaseChatModel","target":"dndnode_1","targetHandle":"BaseLanguageModel|llm|dndnode_1","className":"animate-pulse","id":"reactflow__edge-dndnode_2ChatOpenAI|dndnode_2|BaseLanguageModel|ChatOpenAI|BaseChatModel-dndnode_1BaseLanguageModel|llm|dndnode_1","selected":false},{"source":"dndnode_1","sourceHandle":"ConversationSummaryMemory|dndnode_1|ConversationSummaryMemory|BaseChatMemory|SummarizerMixin|BaseMemory","target":"dndnode_3","targetHandle":"BaseMemory|memory|dndnode_3","className":"animate-pulse","id":"reactflow__edge-dndnode_1ConversationSummaryMemory|dndnode_1|ConversationSummaryMemory|BaseChatMemory|SummarizerMixin|BaseMemory-dndnode_3BaseMemory|memory|dndnode_3","selected":false},{"source":"dndnode_2","sourceHandle":"ChatOpenAI|dndnode_2|BaseLanguageModel|ChatOpenAI|BaseChatModel","target":"dndnode_3","targetHandle":"BaseLanguageModel|llm|dndnode_3","className":"animate-pulse","id":"reactflow__edge-dndnode_2ChatOpenAI|dndnode_2|BaseLanguageModel|ChatOpenAI|BaseChatModel-dndnode_3BaseLanguageModel|llm|dndnode_3","selected":false}],"viewport":{"x":-228.12489837254475,"y":-133.84121476342455,"zoom":0.697371833175203}}}
\ No newline at end of file
diff --git a/docs/data/Csv_loader.json b/docs/data/Csv_loader.json
new file mode 100644
index 000000000..d6bd332db
--- /dev/null
+++ b/docs/data/Csv_loader.json
@@ -0,0 +1 @@
+{"description":"","name":"Csv_loader","id":"5283fe6f-80fe-4391-8c96-861e55d6b4a7","data":{"nodes":[{"width":384,"height":489,"id":"dndnode_14","type":"genericNode","position":{"x":782.5571553614932,"y":114.77396249890023},"data":{"type":"CharacterTextSplitter","node":{"template":{"documents":{"required":true,"placeholder":"","show":true,"multiline":false,"password":false,"name":"documents","advanced":false,"type":"BaseLoader","list":false},"separator":{"required":true,"placeholder":"","show":true,"multiline":false,"value":".","password":false,"name":"separator","advanced":false,"type":"str","list":false},"chunk_size":{"required":true,"placeholder":"","show":true,"multiline":false,"value":"2000","password":false,"name":"chunk_size","advanced":false,"type":"int","list":false},"chunk_overlap":{"required":true,"placeholder":"","show":true,"multiline":false,"value":200,"password":false,"name":"chunk_overlap","advanced":false,"type":"int","list":false},"_type":"CharacterTextSplitter"},"description":"Implementation of splitting text that looks at characters.","base_classes":["CharacterTextSplitter","TextSplitter","BaseDocumentTransformer"]},"id":"dndnode_14","value":null},"selected":false,"positionAbsolute":{"x":782.5571553614932,"y":114.77396249890023},"dragging":false},{"width":384,"height":267,"id":"dndnode_15","type":"genericNode","position":{"x":1265.24911584291,"y":330.9903278739826},"data":{"type":"Chroma","node":{"template":{"documents":{"required":true,"placeholder":"","show":true,"multiline":false,"password":false,"name":"documents","advanced":false,"type":"TextSplitter","list":false},"embedding":{"required":true,"placeholder":"","show":true,"multiline":false,"password":false,"name":"embedding","advanced":false,"type":"Embeddings","list":false},"_type":"Chroma"},"description":"Wrapper around ChromaDB embeddings platform.","base_classes":["Chroma","VectorStore"]},"id":"dndnode_15","value":null},"selected":false,"positionAbsolute":{"x":1265.24911584291,"y":330.9903278739826},"dragging":false},{"width":384,"height":531,"id":"dndnode_16","type":"genericNode","position":{"x":758.5534212717178,"y":678.358127005068},"data":{"type":"OpenAIEmbeddings","node":{"template":{"client":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"client","advanced":false,"type":"Any","list":false},"model":{"required":false,"placeholder":"","show":false,"multiline":false,"value":"text-embedding-ada-002","password":false,"name":"model","advanced":false,"type":"str","list":false},"deployment":{"required":false,"placeholder":"","show":false,"multiline":false,"value":"text-embedding-ada-002","password":false,"name":"deployment","advanced":false,"type":"str","list":false},"openai_api_version":{"required":false,"placeholder":"","show":true,"multiline":false,"value":"","password":true,"name":"openai_api_version","advanced":false,"type":"str","list":false},"openai_api_base":{"required":false,"placeholder":"","show":true,"multiline":false,"password":true,"name":"openai_api_base","advanced":false,"type":"str","list":false,"value":""},"openai_api_type":{"required":false,"placeholder":"","show":true,"multiline":false,"password":true,"name":"openai_api_type","advanced":false,"type":"str","list":false,"value":""},"embedding_ctx_length":{"required":false,"placeholder":"","show":false,"multiline":false,"value":8191,"password":false,"name":"embedding_ctx_length","advanced":false,"type":"int","list":false},"openai_api_key":{"required":false,"placeholder":"","show":true,"multiline":false,"value":"","password":true,"name":"openai_api_key","display_name":"OpenAI API Key","advanced":false,"type":"str","list":false},"openai_organization":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"openai_organization","advanced":false,"type":"str","list":false},"allowed_special":{"required":false,"placeholder":"","show":false,"multiline":false,"value":[],"password":false,"name":"allowed_special","advanced":false,"type":"Literal'all'","list":true},"disallowed_special":{"required":false,"placeholder":"","show":false,"multiline":false,"value":"all","password":false,"name":"disallowed_special","advanced":false,"type":"Literal'all'","list":true},"chunk_size":{"required":false,"placeholder":"","show":false,"multiline":false,"value":1000,"password":false,"name":"chunk_size","advanced":false,"type":"int","list":false},"max_retries":{"required":false,"placeholder":"","show":false,"multiline":false,"value":6,"password":false,"name":"max_retries","advanced":false,"type":"int","list":false},"request_timeout":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"request_timeout","advanced":false,"type":"float","list":false},"_type":"OpenAIEmbeddings"},"description":"Wrapper around OpenAI embedding models.","base_classes":["Embeddings","OpenAIEmbeddings"]},"id":"dndnode_16","value":null},"selected":false,"positionAbsolute":{"x":758.5534212717178,"y":678.358127005068},"dragging":false},{"width":384,"height":399,"id":"dndnode_17","type":"genericNode","position":{"x":1746.4439293220303,"y":149.38698124945012},"data":{"type":"VectorStoreInfo","node":{"template":{"vectorstore":{"required":true,"placeholder":"","show":true,"multiline":false,"password":false,"name":"vectorstore","advanced":false,"type":"VectorStore","list":false},"name":{"required":true,"placeholder":"","show":true,"multiline":false,"password":false,"name":"name","advanced":false,"type":"str","list":false,"value":"organizations-100"},"description":{"required":true,"placeholder":"","show":true,"multiline":true,"password":false,"name":"description","advanced":false,"type":"str","list":false,"value":"A table contains 100 companies.\n"},"_type":"VectorStoreInfo"},"description":"Information about a vectorstore.","base_classes":["VectorStoreInfo"]},"id":"dndnode_17","value":null},"selected":true,"positionAbsolute":{"x":1746.4439293220303,"y":149.38698124945012},"dragging":false},{"width":384,"height":597,"id":"dndnode_18","type":"genericNode","position":{"x":1696.008981616998,"y":669.623298470022},"data":{"type":"OpenAI","node":{"template":{"cache":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"cache","advanced":false,"type":"bool","list":false},"verbose":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"verbose","advanced":false,"type":"bool","list":false},"callbacks":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"callbacks","advanced":false,"type":"langchain.callbacks.base.BaseCallbackHandler","list":true},"client":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"client","advanced":false,"type":"Any","list":false},"model_name":{"required":false,"placeholder":"","show":true,"multiline":false,"value":"text-davinci-003","password":false,"options":["text-davinci-003","text-davinci-002","text-curie-001","text-babbage-001","text-ada-001"],"name":"model_name","advanced":false,"type":"str","list":true},"temperature":{"required":false,"placeholder":"","show":true,"multiline":false,"value":0.7,"password":false,"name":"temperature","advanced":false,"type":"float","list":false},"max_tokens":{"required":false,"placeholder":"","show":true,"multiline":false,"value":256,"password":true,"name":"max_tokens","advanced":false,"type":"int","list":false},"top_p":{"required":false,"placeholder":"","show":false,"multiline":false,"value":1,"password":false,"name":"top_p","advanced":false,"type":"float","list":false},"frequency_penalty":{"required":false,"placeholder":"","show":false,"multiline":false,"value":0,"password":false,"name":"frequency_penalty","advanced":false,"type":"float","list":false},"presence_penalty":{"required":false,"placeholder":"","show":false,"multiline":false,"value":0,"password":false,"name":"presence_penalty","advanced":false,"type":"float","list":false},"n":{"required":false,"placeholder":"","show":false,"multiline":false,"value":1,"password":false,"name":"n","advanced":false,"type":"int","list":false},"best_of":{"required":false,"placeholder":"","show":false,"multiline":false,"value":1,"password":false,"name":"best_of","advanced":false,"type":"int","list":false},"model_kwargs":{"required":false,"placeholder":"","show":true,"multiline":false,"password":false,"name":"model_kwargs","advanced":true,"type":"code","list":false},"openai_api_key":{"required":false,"placeholder":"","show":true,"multiline":false,"value":"","password":true,"name":"openai_api_key","display_name":"OpenAI API Key","advanced":false,"type":"str","list":false},"openai_api_base":{"required":false,"placeholder":"","show":true,"multiline":false,"password":true,"name":"openai_api_base","advanced":false,"type":"str","list":false,"value":""},"openai_organization":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"openai_organization","advanced":false,"type":"str","list":false},"batch_size":{"required":false,"placeholder":"","show":false,"multiline":false,"value":20,"password":false,"name":"batch_size","advanced":false,"type":"int","list":false},"request_timeout":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"request_timeout","advanced":false,"type":"float","list":false},"logit_bias":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"logit_bias","advanced":false,"type":"code","list":false},"max_retries":{"required":false,"placeholder":"","show":false,"multiline":false,"value":6,"password":false,"name":"max_retries","advanced":false,"type":"int","list":false},"streaming":{"required":false,"placeholder":"","show":false,"multiline":false,"value":false,"password":false,"name":"streaming","advanced":false,"type":"bool","list":false},"allowed_special":{"required":false,"placeholder":"","show":false,"multiline":false,"value":[],"password":false,"name":"allowed_special","advanced":false,"type":"Literal'all'","list":true},"disallowed_special":{"required":false,"placeholder":"","show":false,"multiline":false,"value":"all","password":false,"name":"disallowed_special","advanced":false,"type":"Literal'all'","list":false},"_type":"OpenAI"},"description":"Wrapper around OpenAI large language models.","base_classes":["BaseOpenAI","BaseLLM","OpenAI","BaseLanguageModel"]},"id":"dndnode_18","value":null},"selected":false,"positionAbsolute":{"x":1696.008981616998,"y":669.623298470022},"dragging":false},{"width":384,"height":267,"id":"dndnode_19","type":"genericNode","position":{"x":2221.1883470675293,"y":415.49630736800714},"data":{"type":"VectorStoreAgent","node":{"template":{"vectorstoreinfo":{"required":true,"placeholder":"","show":true,"multiline":false,"password":false,"name":"vectorstoreinfo","display_name":"Vector Store Info","advanced":false,"type":"VectorStoreInfo","list":false},"llm":{"required":true,"placeholder":"","show":true,"multiline":false,"password":false,"name":"llm","display_name":"LLM","advanced":false,"type":"BaseLanguageModel","list":false},"_type":"vectorstore_agent"},"description":"Construct an agent from a Vector Store.","base_classes":["AgentExecutor"]},"id":"dndnode_19","value":null},"selected":false,"positionAbsolute":{"x":2221.1883470675293,"y":415.49630736800714},"dragging":false},{"width":384,"height":265,"id":"dndnode_21","type":"genericNode","position":{"x":325.0831403216823,"y":293.78744910049573},"data":{"type":"CSVLoader","node":{"template":{"file_path":{"required":true,"placeholder":"","show":true,"multiline":false,"value":"organizations-100.csv","suffixes":[".csv"],"password":false,"name":"file_path","advanced":false,"type":"file","list":false,"fileTypes":["csv"],"content":"data:text/csv;base64,SW5kZXgsT3JnYW5pemF0aW9uIElkLE5hbWUsV2Vic2l0ZSxDb3VudHJ5LERlc2NyaXB0aW9uLEZvdW5kZWQsSW5kdXN0cnksTnVtYmVyIG9mIGVtcGxveWVlcw0KMSxGQUIwZDQxZDViNWQyMmMsRmVycmVsbCBMTEMsaHR0cHM6Ly9wcmljZS5uZXQvLFBhcHVhIE5ldyBHdWluZWEsSG9yaXpvbnRhbCBlbXBvd2VyaW5nIGtub3dsZWRnZWJhc2UsMTk5MCxQbGFzdGljcywzNDk4DQoyLDZBN0VkREVBOUZhREM1MiwiTWNraW5uZXksIFJpbGV5IGFuZCBEYXkiLGh0dHA6Ly93d3cuaGFsbC1idWNoYW5hbi5pbmZvLyxGaW5sYW5kLFVzZXItY2VudHJpYyBzeXN0ZW0td29ydGh5IGxldmVyYWdlLDIwMTUsR2xhc3MgLyBDZXJhbWljcyAvIENvbmNyZXRlLDQ5NTINCjMsMGJGRUQxQURBRTRiY0MxLEhlc3RlciBMdGQsaHR0cDovL3N1bGxpdmFuLXJlZWQuY29tLyxDaGluYSxTd2l0Y2hhYmxlIHNjYWxhYmxlIG1vcmF0b3JpdW0sMTk3MSxQdWJsaWMgU2FmZXR5LDUyODcNCjQsMmJGQzFCZThhNGNlNDJmLEhvbGRlci1TZWxsZXJzLGh0dHBzOi8vYmVja2VyLmNvbS8sVHVya21lbmlzdGFuLERlLWVuZ2luZWVyZWQgc3lzdGVtaWMgYXJ0aWZpY2lhbCBpbnRlbGxpZ2VuY2UsMjAwNCxBdXRvbW90aXZlLDkyMQ0KNSw5ZUU4QTZhNEViOTZDMjQsTWF5ZXIgR3JvdXAsaHR0cDovL3d3dy5icmV3ZXIuY29tLyxNYXVyaXRpdXMsU3luY2hyb25pemVkIG5lZWRzLWJhc2VkIGNoYWxsZW5nZSwxOTkxLFRyYW5zcG9ydGF0aW9uLDc4NzANCjYsY0M3NTcxMTZmZTFDMDg1LEhlbnJ5LVRob21wc29uLGh0dHA6Ly9tb3JzZS5uZXQvLEJhaGFtYXMsRmFjZS10by1mYWNlIHdlbGwtbW9kdWxhdGVkIGN1c3RvbWVyIGxveWFsdHksMTk5MixQcmltYXJ5IC8gU2Vjb25kYXJ5IEVkdWNhdGlvbiw0OTE0DQo3LDIxOTIzM2U4YUZGMUJDMyxIYW5zZW4tRXZlcmV0dCxodHRwczovL3d3dy5raWRkLm9yZy8sUGFraXN0YW4sU2VhbWxlc3MgZGlzaW50ZXJtZWRpYXRlIGNvbGxhYm9yYXRpb24sMjAxOCxQdWJsaXNoaW5nIEluZHVzdHJ5LDc4MzINCjgsY2NjOTNEQ0Y4MWEzMUNELE1jaW50b3NoLU1vcmEsaHR0cHM6Ly93d3cuYnJvb2tzLmNvbS8sSGVhcmQgSXNsYW5kIGFuZCBNY0RvbmFsZCBJc2xhbmRzLENlbnRyYWxpemVkIGF0dGl0dWRlLW9yaWVudGVkIGNhcGFiaWxpdHksMTk3MCxJbXBvcnQgLyBFeHBvcnQsNDM4OQ0KOSwwQjRGOTNhQTA2RUQwM2UsQ2FyciBJbmMsaHR0cDovL3Jvc3MuY29tLyxLdXdhaXQsRGlzdHJpYnV0ZWQgaW1wYWN0ZnVsIGN1c3RvbWVyIGxveWFsdHksMTk5NixQbGFzdGljcyw4MTY3DQoxMCw3MzhiNWFEZTZCMUM2QTUsR2FpbmVzIEluYyxodHRwOi8vc2FuZG92YWwtaG9vcGVyLmNvbS8sVXpiZWtpc3RhbixNdWx0aS1sYXRlcmFsIHNjYWxhYmxlIHByb3RvY29sLDE5OTcsT3V0c291cmNpbmcgLyBPZmZzaG9yaW5nLDk2OTgNCjExLEFFNjFiOEZmZWJiYzQ3NixLaWRkIEdyb3VwLGh0dHA6Ly93d3cubHlvbnMuY29tLyxCb3V2ZXQgSXNsYW5kIChCb3V2ZXRveWEpLFByb2FjdGl2ZSBmb3JlZ3JvdW5kIHBhcmFkaWdtLDIwMDEsUHJpbWFyeSAvIFNlY29uZGFyeSBFZHVjYXRpb24sNzQ3Mw0KMTIsZWIzQjdEMDZjQ2RENjA5LENyYW5lLUNsYXJrZSxodHRwczovL3d3dy5zYW5kb3ZhbC5jb20vLERlbm1hcmssRnJvbnQtbGluZSBjbGVhci10aGlua2luZyBlbmNyeXB0aW9uLDIwMTQsRm9vZCAvIEJldmVyYWdlcyw5MDExDQoxMyw4RDBjMjkxODlDOTc5OEIsIktlbGxlciwgQ2FtcG9zIGFuZCBCbGFjayIsaHR0cHM6Ly93d3cuZ2FybmVyLmluZm8vLExpYmVyaWEsQW1lbGlvcmF0ZWQgZGlyZWN0aW9uYWwgZW11bGF0aW9uLDIwMjAsTXVzZXVtcyAvIEluc3RpdHV0aW9ucywyODYyDQoxNCxEMmM5MWNjMDNDQTM5NGMsR2xvdmVyLVBvcGUsaHR0cDovL3d3dy5zaWx2YS5iaXovLFVuaXRlZCBBcmFiIEVtaXJhdGVzLFBlcnNldmVyaW5nIGNvbnRleHR1YWxseS1iYXNlZCBhcHByb2FjaCwyMDEzLE1lZGljYWwgUHJhY3RpY2UsOTA3OQ0KMTUsQzhBQzFlYWY5QzAzNkY0LFBhY2hlY28tU3BlYXJzLGh0dHBzOi8vYWd1aWxhci5jb20vLFN3ZWRlbixTZWN1cmVkIGxvZ2lzdGljYWwgc3luZXJneSwxOTg0LE1hcml0aW1lLDc2OQ0KMTYsYjVEMTBBMTRmN2E4QWZFLEhvZGdlLUF5ZXJzLGh0dHA6Ly93d3cuYXJjaGVyLWVsbGlvdHQuY29tLyxIb25kdXJhcyxGdXR1cmUtcHJvb2ZlZCByYWRpY2FsIGltcGxlbWVudGF0aW9uLDE5OTAsRmFjaWxpdGllcyBTZXJ2aWNlcyw4NTA4DQoxNyw2ODEzOWI1QzREZTAzQjQsIkJvd2VycywgR3VlcnJhIGFuZCBLcmF1c2UiLGh0dHA6Ly93d3cuY2FycmlsbG8tbmljaG9sc29uLmNvbS8sVWdhbmRhLERlLWVuZ2luZWVyZWQgdHJhbnNpdGlvbmFsIHN0cmF0ZWd5LDE5NzIsUHJpbWFyeSAvIFNlY29uZGFyeSBFZHVjYXRpb24sNjk4Ng0KMTgsNWMyRWZmRWZkYmEyQmRGLE1ja2VuemllLU1lbHRvbixodHRwOi8vbW9udG95YS10aG9tcHNvbi5jb20vLEhvbmcgS29uZyxSZXZlcnNlLWVuZ2luZWVyZWQgaGV1cmlzdGljIGFsbGlhbmNlLDE5OTgsSW52ZXN0bWVudCBNYW5hZ2VtZW50IC8gSGVkZ2UgRnVuZCAvIFByaXZhdGUgRXF1aXR5LDQ1ODkNCjE5LGJhMTc5RjE5Rjc5MjVmNSxCcmFuY2gtTWFubixodHRwOi8vd3d3LmxvemFuby5jb20vLEJvdHN3YW5hLEFkYXB0aXZlIGludGFuZ2libGUgZnJhbWUsMTk5OSxBcmNoaXRlY3R1cmUgLyBQbGFubmluZyw3OTYxDQoyMCxjMUNlOUIzNTBCQWM2NmIsV2Vpc3MgYW5kIFNvbnMsaHR0cHM6Ly9iYXJyZXR0LmNvbS8sS29yZWEsU2hhcmFibGUgb3B0aW1hbCBmdW5jdGlvbmFsaXRpZXMsMjAxMSxQbGFzdGljcyw1OTg0DQoyMSw4ZGU0MEFDNGU2RWFDYTQsIlZlbGV6LCBQYXluZSBhbmQgQ29mZmV5IixodHRwOi8vYnVydG9uLmNvbS8sTHV4ZW1ib3VyZyxNYW5kYXRvcnkgY29oZXJlbnQgc3luZXJneSwxOTg2LFdob2xlc2FsZSw1MDEwDQoyMixBYWQ4NmE0RjAzODVGMmQsSGFycmVsbCBMTEMsaHR0cDovL3d3dy5mcmV5LXJvc2FyaW8uY29tLyxHdWFkZWxvdXBlLFJldmVyc2UtZW5naW5lZXJlZCBtaXNzaW9uLWNyaXRpY2FsIG1vcmF0b3JpdW0sMjAxOCxDb25zdHJ1Y3Rpb24sMjE4NQ0KMjMsMjJhQzNGRmQ2NGZENzAzLCJFYXRvbiwgUmV5bm9sZHMgYW5kIFZhcmdhcyIsaHR0cDovL3d3dy5mcmVlbWFuLmJpei8sTW9uYWNvLFNlbGYtZW5hYmxpbmcgbXVsdGktdGFza2luZyBwcm9jZXNzIGltcHJvdmVtZW50LDIwMTQsTHV4dXJ5IEdvb2RzIC8gSmV3ZWxyeSw4OTg3DQoyNCw1RWM0QzI3MmJDZjA4NWMsUm9iYmlucy1DdW1taW5ncyxodHRwOi8vZG9uYWxkc29uLXdpbGtpbnMuY29tLyxCZWxnaXVtLE9yZ2FuaWMgbm9uLXZvbGF0aWxlIGhpZXJhcmNoeSwxOTkxLFBoYXJtYWNldXRpY2Fscyw1MDM4DQoyNSw1ZkRCZUE4QkI5MWEwMDAsSmVua2lucyBJbmMsaHR0cDovL3d3dy5raXJrLmJpei8sU291dGggQWZyaWNhLEZyb250LWxpbmUgc3lzdGVtYXRpYyBoZWxwLWRlc2ssMjAwMixJbnN1cmFuY2UsMTIxNQ0KMjYsZEZmRDZhNkY5QUMyZDlDLCJHcmVlbmUsIEJlbmphbWluIGFuZCBOb3ZhayIsaHR0cDovL3d3dy5rZW50Lm5ldC8sUm9tYW5pYSxDZW50cmFsaXplZCBsZWFkaW5nZWRnZSBtb3JhdG9yaXVtLDIwMTIsTXVzZXVtcyAvIEluc3RpdHV0aW9ucyw0OTQxDQoyNyw0QjIxN2NDNWEwNjc0QzUsIkRpY2tzb24sIFJpY2htb25kIGFuZCBDbGF5IixodHRwOi8vZXZlcmV0dC5jb20vLEN6ZWNoIFJlcHVibGljLFRlYW0tb3JpZW50ZWQgdGFuZ2libGUgY29tcGxleGl0eSwxOTgwLFJlYWwgRXN0YXRlIC8gTW9ydGdhZ2UsMzEyMg0KMjgsODhiMWYxY0RjZjU5YTM3LFByaW5jZS1EYXZpZCxodHRwOi8vdGhvbXBzb24uY29tLyxDaHJpc3RtYXMgSXNsYW5kLFZpcnR1YWwgaG9saXN0aWMgbWV0aG9kb2xvZ3ksMTk3MCxCYW5raW5nIC8gTW9ydGdhZ2UsMTA0Ng0KMjksZjlGN2JCQ0FFZUMzNjBGLEF5YWxhIExMQyxodHRwOi8vd3d3LnpoYW5nLmNvbS8sUGhpbGlwcGluZXMsT3Blbi1zb3VyY2UgemVybyBhZG1pbmlzdHJhdGlvbiBoaWVyYXJjaHksMjAyMSxMZWdhbCBTZXJ2aWNlcyw3NjY0DQozMCw3Q2IzQWVGY0U0QmEzMWUsUml2YXMgR3JvdXAsaHR0cHM6Ly9oZWJlcnQub3JnLyxBdXN0cmFsaWEsT3Blbi1hcmNoaXRlY3RlZCB3ZWxsLW1vZHVsYXRlZCBjYXBhY2l0eSwxOTk4LExvZ2lzdGljcyAvIFByb2N1cmVtZW50LDQxNTUNCjMxLGNjQmNDMzJhZGNiYzUzMCwiU2xvYW4sIE1heXMgYW5kIFdoaXRlaGVhZCIsaHR0cDovL2xhd3Nvbi5jb20vLENoYWQsRmFjZS10by1mYWNlIGhpZ2gtbGV2ZWwgY29uZ2xvbWVyYXRpb24sMTk5NyxDaXZpbCBFbmdpbmVlcmluZywzNjUNCjMyLGY1YWZkNjg2YjNkMDVGNSwiRHVyaGFtLCBBbGxlbiBhbmQgQmFybmVzIixodHRwOi8vY2hhbi1zdGFmZm9yZC5vcmcvLFppbWJhYndlLFN5bmVyZ2lzdGljIHdlYi1lbmFibGVkIGZyYW1ld29yaywxOTkzLE1lY2hhbmljYWwgb3IgSW5kdXN0cmlhbCBFbmdpbmVlcmluZyw2MTM1DQozMywzOEM2Y2ZDNTA3NEZhNWUsRnJpdHotRnJhbmtsaW4saHR0cDovL3d3dy5sYW1iZXJ0LmNvbS8sTmVwYWwsQXV0b21hdGVkIDR0aGdlbmVyYXRpb24gd2Vic2l0ZSwxOTcyLEhvc3BpdGFsaXR5LDQ1MTYNCjM0LDVDZDdlZmNjQ2NiYTM4ZixCdXJjaC1Fd2luZyxodHRwOi8vY2xpbmUubmV0LyxUYWl3YW4sVXNlci1jZW50cmljIDR0aGdlbmVyYXRpb24gc3lzdGVtIGVuZ2luZSwxOTgxLFZlbnR1cmUgQ2FwaXRhbCAvIFZDLDc0NDMNCjM1LDlFNkFjYjUxZTNGOWQ2RiwiR2xhc3MsIEJhcnJlcmEgYW5kIFR1cm5lciIsaHR0cHM6Ly9kdW5sYXAuY29tLyxLeXJneXogUmVwdWJsaWMsTXVsdGktY2hhbm5lbGVkIDNyZGdlbmVyYXRpb24gb3BlbiBzeXN0ZW0sMjAyMCxVdGlsaXRpZXMsMjYxMA0KMzYsNEQ0ZDdFMTgzMjFlYWVDLFBpbmVkYS1Db3gsaHR0cDovL2FndWlsYXIub3JnLyxCb2xpdmlhLEZ1bmRhbWVudGFsIGFzeW5jaHJvbm91cyBjYXBhYmlsaXR5LDIwMTAsSHVtYW4gUmVzb3VyY2VzIC8gSFIsMTMxMg0KMzcsNDg1ZjVkMDZCOTM4RjJiLCJCYWtlciwgTWNjYW5uIGFuZCBNYWNkb25hbGQiLGh0dHA6Ly93d3cuYW5kZXJzb24tYmFya2VyLmNvbS8sS2VueWEsQ3Jvc3MtZ3JvdXAgdXNlci1mYWNpbmcgZm9jdXMgZ3JvdXAsMjAxMyxMZWdpc2xhdGl2ZSBPZmZpY2UsMTYzOA0KMzgsMTlFM2E1QmY2ZEJEYzRGLEN1ZXZhcy1Nb3NzLGh0dHBzOi8vZG9kc29uLWNhc3RhbmVkYS5uZXQvLEd1YXRlbWFsYSxFeHRlbmRlZCBodW1hbi1yZXNvdXJjZSBpbnRyYW5ldCwxOTk0LE11c2ljLDk5OTUNCjM5LDY4ODNBOTY1YzdiNjhGNyxIYWhuIFBMQyxodHRwOi8vbmV3bWFuLmNvbS8sQmVsYXJ1cyxPcmdhbmljIGxvZ2lzdGljYWwgbGV2ZXJhZ2UsMjAxMixFbGVjdHJpY2FsIC8gRWxlY3Ryb25pYyBNYW51ZmFjdHVyaW5nLDM3MTUNCjQwLEFDNUI3QUE3NEFhNEEyRSwiVmFsZW50aW5lLCBGZXJndXNvbiBhbmQgS3JhbWVyIixodHRwOi8vc3R1YXJ0Lm5ldC8sSmVyc2V5LENlbnRyYWxpemVkIHNlY29uZGFyeSB0aW1lLWZyYW1lLDE5OTcsTm9uIC0gUHJvZml0IC8gVm9sdW50ZWVyaW5nLDM1ODUNCjQxLGRlY2FiMEQ1MDI3Q0E2YSxBcnJveW8gSW5jLGh0dHBzOi8vd3d3LnR1cm5lci5jb20vLEdyZW5hZGEsTWFuYWdlZCBkZW1hbmQtZHJpdmVuIHdlYnNpdGUsMjAwNixXcml0aW5nIC8gRWRpdGluZyw5MDY3DQo0MixkRjA4NEZiQmI2MTNlZWEsV2FsbHMgTExDLGh0dHA6Ly93d3cucmVlc2UtdmFzcXVlei5iaXovLENhcGUgVmVyZGUsU2VsZi1lbmFibGluZyBmcmVzaC10aGlua2luZyBpbnN0YWxsYXRpb24sMTk4OSxJbnZlc3RtZW50IE1hbmFnZW1lbnQgLyBIZWRnZSBGdW5kIC8gUHJpdmF0ZSBFcXVpdHksMTY3OA0KNDMsQTJEODlBYjliQ2NBZDRlLCJNaXRjaGVsbCwgV2FycmVuIGFuZCBTY2huZWlkZXIiLGh0dHBzOi8vZm94LmJpei8sVHJpbmlkYWQgYW5kIFRvYmFnbyxFbmhhbmNlZCBpbnRhbmdpYmxlIHRpbWUtZnJhbWUsMjAyMSxDYXBpdGFsIE1hcmtldHMgLyBIZWRnZSBGdW5kIC8gUHJpdmF0ZSBFcXVpdHksMzgxNg0KNDQsNzdhRGM5MDU0MzRhNDlmLFByaW5jZSBQTEMsaHR0cHM6Ly93d3cud2F0dHMuY29tLyxTd2VkZW4sUHJvZml0LWZvY3VzZWQgY29oZXJlbnQgaW5zdGFsbGF0aW9uLDIwMTYsSW5kaXZpZHVhbCAvIEZhbWlseSBTZXJ2aWNlcyw3NjQ1DQo0NSwyMzVmZEVGRTJjZkRhNUYsQnJvY2stQmxhY2t3ZWxsLGh0dHA6Ly93d3cuc21hbGwuY29tLyxCZW5pbixTZWN1cmVkIGZvcmVncm91bmQgZW11bGF0aW9uLDE5ODYsT25saW5lIFB1Ymxpc2hpbmcsNzAzNA0KNDYsMWVENjRjRmU5ODZCQmJFLFdhbHRvbi1CYXJuZXR0LGh0dHBzOi8vYXNobGV5LXNjaGFlZmVyLmNvbS8sV2VzdGVybiBTYWhhcmEsUmlnaHQtc2l6ZWQgY2xlYXItdGhpbmtpbmcgZmxleGliaWxpdHksMjAwMSxMdXh1cnkgR29vZHMgLyBKZXdlbHJ5LDE3NDYNCjQ3LENiQmJGY2RkMGVhRTJjRixCYXJ0bGV0dC1BcnJveW8saHR0cHM6Ly9jcnV6LmNvbS8sTm9ydGhlcm4gTWFyaWFuYSBJc2xhbmRzLFJlYWxpZ25lZCBkaWRhY3RpYyBmdW5jdGlvbiwxOTc2LENpdmljIC8gU29jaWFsIE9yZ2FuaXphdGlvbiwzOTg3DQo0OCw0OWFFQ2JEYUU2YUJENTMsIldhbGxhY2UsIE1hZGRlbiBhbmQgTW9ycmlzIixodHRwOi8vd3d3LmJsZXZpbnMtZmVybmFuZGV6LmJpei8sR2VybWFueSxQZXJzaXN0ZW50IHJlYWwtdGltZSBjdXN0b21lciBsb3lhbHR5LDIwMTYsUGhhcm1hY2V1dGljYWxzLDk0NDMNCjQ5LDdiM2ZlNmU3RTcyYkZhNCxCZXJnLVNwYXJrcyxodHRwczovL2Npc25lcm9zLWxvdmUuY29tLyxDYW5hZGEsU3RhbmQtYWxvbmUgc3RhdGljIGltcGxlbWVudGF0aW9uLDE5NzQsQXJ0cyAvIENyYWZ0cywyMDczDQo1MCxjNkRlZEE4MkE4YWVmN0UsR29uemFsZXMgTHRkLGh0dHA6Ly9iaXJkLmNvbS8sVG9uZ2EsTWFuYWdlZCBodW1hbi1yZXNvdXJjZSBwb2xpY3ksMTk4OCxDb25zdW1lciBHb29kcyw5MDY5DQo1MSw3RDlGQkY4NWNkQzM4NzEsTGF3c29uIGFuZCBTb25zLGh0dHBzOi8vd3d3LndvbmcuY29tLyxGcmVuY2ggU291dGhlcm4gVGVycml0b3JpZXMsQ29tcGF0aWJsZSBhbmFseXppbmcgaW50cmFuZXQsMjAyMSxBcnRzIC8gQ3JhZnRzLDM1MjcNCjUyLDdkZDE4RmI3Y0IwN2I2NSwiTWNndWlyZSwgTWNjb25uZWxsIGFuZCBPbHNlbiIsaHR0cHM6Ly9tZWx0b24tYnJpZ2dzLmNvbS8sS29yZWEsUHJvZm91bmQgY2xpZW50LXNlcnZlciBmcmFtZSwxOTg4LFByaW50aW5nLDg0NDUNCjUzLEVGNUI1NUZhZGNjQjhGZSxDaGFybGVzLVBoaWxsaXBzLGh0dHBzOi8vYm93bWFuLmNvbS8sQ290ZSBkJ0l2b2lyZSxNb25pdG9yZWQgY2xpZW50LXNlcnZlciBpbXBsZW1lbnRhdGlvbiwyMDEyLE1lbnRhbCBIZWFsdGggQ2FyZSwzNDUwDQo1NCxmOEQ0Qjk5ZTExZkFGNUQsT2RvbSBMdGQsaHR0cHM6Ly93d3cuaHVtcGhyZXktaGVzcy5jb20vLENvdGUgZCdJdm9pcmUsQWR2YW5jZWQgc3RhdGljIHByb2Nlc3MgaW1wcm92ZW1lbnQsMjAxMixNYW5hZ2VtZW50IENvbnN1bHRpbmcsMTgyNQ0KNTUsZTI0RDIxQkZkM2JGMUU1LFJpY2hhcmQgUExDLGh0dHBzOi8vaG9sZGVuLWNvbGVtYW4ubmV0LyxNYXlvdHRlLE9iamVjdC1iYXNlZCBvcHRpbWl6aW5nIG1vZGVsLDE5NzEsQnJvYWRjYXN0IE1lZGlhLDQ5NDINCjU2LEI5QmRmRUI2RDNDYTQ0RSxTYW1wc29uIEx0ZCxodHRwczovL2JsZXZpbnMuY29tLyxDYXltYW4gSXNsYW5kcyxJbnR1aXRpdmUgbG9jYWwgYWRhcHRlciwyMDA1LEZhcm1pbmcsMTQxOA0KNTcsMmE3NEQ2ZjNEM0IyNjhlLCJDaGVycnksIExlIGFuZCBDYWxsYWhhbiIsaHR0cHM6Ly93YWxsZXItZGVsYWNydXouYml6LyxOaWdlcmlhLFVuaXZlcnNhbCBodW1hbi1yZXNvdXJjZSBjb2xsYWJvcmF0aW9uLDIwMTcsRW50ZXJ0YWlubWVudCAvIE1vdmllIFByb2R1Y3Rpb24sNzIwMg0KNTgsQmYzRjNmNjJjOGFCQzMzLENoZXJyeSBQTEMsaHR0cHM6Ly93d3cuYXZpbGEuaW5mby8sTWFyc2hhbGwgSXNsYW5kcyxQZXJzaXN0ZW50IHRlcnRpYXJ5IHdlYnNpdGUsMTk4MCxQbGFzdGljcyw4MjQ1DQo1OSxhZUJlMjZCODBhN2EyM2MsTWVsdG9uLU5pY2hvbHMsaHR0cHM6Ly9rZW5uZWR5LmNvbS8sUGFsYXUsVXNlci1mcmllbmRseSBjbGVhci10aGlua2luZyBwcm9kdWN0aXZpdHksMjAyMSxMZWdpc2xhdGl2ZSBPZmZpY2UsODc0MQ0KNjAsYUFlYjI5YWQ0Mzg4NkM2LFBvdHRlci1XYWxzaCxodHRwOi8vdGhvbWFzLWZyZW5jaC5vcmcvLFR1cmtleSxPcHRpb25hbCBub24tdm9sYXRpbGUgb3BlbiBzeXN0ZW0sMjAwOCxIdW1hbiBSZXNvdXJjZXMgLyBIUiw2OTIzDQo2MSxiRDFiYzZiQjZkMUZlRDMsRnJlZW1hbi1DaGVuLGh0dHBzOi8vbWF0aGlzLmNvbS8sVGltb3ItTGVzdGUsUGhhc2VkIG5leHQgZ2VuZXJhdGlvbiBhZGFwdGVyLDE5NzMsSW50ZXJuYXRpb25hbCBUcmFkZSAvIERldmVsb3BtZW50LDM0Ng0KNjIsRUI5ZjQ1NmU4YjcwMjJhLFNvdG8gR3JvdXAsaHR0cHM6Ly9ub3JyaXMuaW5mby8sVmlldG5hbSxFbnRlcnByaXNlLXdpZGUgZXhlY3V0aXZlIGluc3RhbGxhdGlvbiwxOTg4LEJ1c2luZXNzIFN1cHBsaWVzIC8gRXF1aXBtZW50LDkwOTcNCjYzLERmZWYzOEM1MUQ4REFlMywiUG9vbGUsIENydXogYW5kIFdoaXRuZXkiLGh0dHBzOi8vcmVlZC5pbmZvLyxSZXVuaW9uLEJhbGFuY2VkIGFuYWx5emluZyBncm91cHdhcmUsMTk3OCxNYXJrZXRpbmcgLyBBZHZlcnRpc2luZyAvIFNhbGVzLDI5OTINCjY0LDA1NWZmRWZCMkRkOTVCMCxSaWxleSBMdGQsaHR0cDovL3dpbGV5LmNvbS8sQnJhemlsLE9wdGlvbmFsIGV4dWRpbmcgc3VwZXJzdHJ1Y3R1cmUsMTk4NixUZXh0aWxlcyw5MzE1DQo2NSxjQmZlNGRiQUUxNjk5ZGEsIkVyaWNrc29uLCBBbmRyZXdzIGFuZCBCYWlsZXkiLGh0dHBzOi8vd3d3LmhvYmJzLWdyYW50LmNvbS8sRXJpdHJlYSxWaXNpb24tb3JpZW50ZWQgc2Vjb25kYXJ5IHByb2plY3QsMjAxNCxDb25zdW1lciBFbGVjdHJvbmljcyw3ODI5DQo2NixmZEZiZWNiYWRjZENkZjEsIldpbGtpbnNvbiwgQ2hhcmxlcyBhbmQgQXJyb3lvIixodHRwOi8vaHVudGVyLW1jZmFybGFuZC5jb20vLFVuaXRlZCBTdGF0ZXMgVmlyZ2luIElzbGFuZHMsQXNzaW1pbGF0ZWQgMjQvNyBhcmNoaXZlLDE5OTYsQnVpbGRpbmcgTWF0ZXJpYWxzLDYwMg0KNjcsNURDYjhBNWE1Y2EwM2MwLEZsb3lkIEx0ZCxodHRwOi8vd3d3LndoaXRuZXkuY29tLyxGYWxrbGFuZCBJc2xhbmRzIChNYWx2aW5hcyksRnVuY3Rpb24tYmFzZWQgZmF1bHQtdG9sZXJhbnQgY29uY2VwdCwyMDE3LFB1YmxpYyBSZWxhdGlvbnMgLyBQUiwyOTExDQo2OCxjZTU3RENiY0ZENmQ2MTgsTmV3bWFuLUdhbGxvd2F5LGh0dHBzOi8vd3d3LnNjb3R0LmNvbS8sTHV4ZW1ib3VyZyxFbmhhbmNlZCBmb3JlZ3JvdW5kIGNvbGxhYm9yYXRpb24sMTk4NyxJbmZvcm1hdGlvbiBUZWNobm9sb2d5IC8gSVQsMzkzNA0KNjksNWFhRDE4N2RjOTI5MzcxLEZyYXppZXItQnV0bGVyLGh0dHBzOi8vd3d3LmRhdWdoZXJ0eS1mYXJsZXkuaW5mby8sTm9ydGhlcm4gTWFyaWFuYSBJc2xhbmRzLFBlcnNpc3RlbnQgaW50ZXJhY3RpdmUgY2lyY3VpdCwxOTcyLE91dHNvdXJjaW5nIC8gT2Zmc2hvcmluZyw1MTMwDQo3MCw5MDJEN0FjOGI2ZDQ3NmIsTmV3dG9uIEluYyxodHRwczovL3d3dy5yaWNobW9uZC1tYW5uaW5nLmluZm8vLE5ldGhlcmxhbmRzIEFudGlsbGVzLEZ1bmRhbWVudGFsIHN0YWJsZSBpbmZvLW1lZGlhcmllcywxOTc2LE1pbGl0YXJ5IEluZHVzdHJ5LDU2Mw0KNzEsMzJCQjlGZjRkOTM5Nzg4LER1ZmZ5LUxldnksaHR0cHM6Ly93d3cucG90dGVyLmNvbS8sR3Vlcm5zZXksRGl2ZXJzZSBleHVkaW5nIGluc3RhbGxhdGlvbiwxOTgyLFdpcmVsZXNzLDYxNDYNCjcyLGFkY0IwYWZiRTU4YkFlMyxXYWduZXIgTExDLGh0dHBzOi8vZGVja2VyLWVzcGFyemEuY29tLyxVcnVndWF5LFJlYWN0aXZlIGF0dGl0dWRlLW9yaWVudGVkIHRvb2xzZXQsMTk4NyxJbnRlcm5hdGlvbmFsIEFmZmFpcnMsNjg3NA0KNzMsZGZjQTFjODRBZEI2MUFjLE1jY2FsbC1Ib2xtZXMsaHR0cDovL3d3dy5kZWFuLmNvbS8sQmVuaW4sT2JqZWN0LWJhc2VkIHZhbHVlLWFkZGVkIGRhdGFiYXNlLDIwMDksTGVnYWwgU2VydmljZXMsNjk2DQo3NCwyMDgwNDRBQzJmZTUyRjMsTWFzc2V5IExMQyxodHRwczovL2ZyYXppZXIuYml6LyxTdXJpbmFtZSxDb25maWd1cmFibGUgemVybyBhZG1pbmlzdHJhdGlvbiBHcmFwaGljYWwgVXNlciBJbnRlcmZhY2UsMTk4NixBY2NvdW50aW5nLDUwMDQNCjc1LGYzQzM2NWYwYzFBMDYyMyxIaWNrcyBMTEMsaHR0cDovL2FsdmFyZXouYml6LyxQYWtpc3RhbixRdWFsaXR5LWZvY3VzZWQgY2xpZW50LXNlcnZlciBHcmFwaGljYWwgVXNlciBJbnRlcmZhY2UsMTk3MCxDb21wdXRlciBTb2Z0d2FyZSAvIEVuZ2luZWVyaW5nLDg0ODANCjc2LGVjNUJkZDNDQkFmYUI5MywiQ29sZSwgUnVzc2VsbCBhbmQgQXZlcnkiLGh0dHA6Ly93d3cuYmxhbmtlbnNoaXAuY29tLyxNb25nb2xpYSxEZS1lbmdpbmVlcmVkIGZhdWx0LXRvbGVyYW50IGNoYWxsZW5nZSwyMDAwLExhdyBFbmZvcmNlbWVudCw3MDEyDQo3NyxEREIxOUJlN2VlQjU2QjQsQ3VtbWluZ3MtUm9qYXMsaHR0cHM6Ly9zaW1vbi1wZWFyc29uLmNvbS8sU3ZhbGJhcmQgJiBKYW4gTWF5ZW4gSXNsYW5kcyxVc2VyLWNlbnRyaWMgbW9kdWxhciBjdXN0b21lciBsb3lhbHR5LDIwMTIsRmluYW5jaWFsIFNlcnZpY2VzLDc1MjkNCjc4LGRkNkNBM2QwYmMzY0FmYywiQmVhc2xleSwgR3JlZW5lIGFuZCBNYWhvbmV5IixodHRwOi8vd3d3LnBldGVyc2VuLWxhd3JlbmNlLmNvbS8sVG9nbyxFeHRlbmRlZCBjb250ZW50LWJhc2VkIG1ldGhvZG9sb2d5LDE5NzYsUmVsaWdpb3VzIEluc3RpdHV0aW9ucyw4NjkNCjc5LEEwQjlkNTZlNjEwNzBlMywiQmVhc2xleSwgU2ltcyBhbmQgQWxsaXNvbiIsaHR0cDovL2J1cmtlLmluZm8vLExhdHZpYSxTZWN1cmVkIHplcm8gdG9sZXJhbmNlIGh1YiwxOTcyLEZhY2lsaXRpZXMgU2VydmljZXMsNjE4Mg0KODAsY0JhN0VGZTVEMDVBZGFmLENyYXdmb3JkLVJpdmVyYSxodHRwczovL2JsYWNrLXJhbWlyZXoub3JnLyxDdWJhLFBlcnNldmVyaW5nIGV4dWRpbmcgYnVkZ2V0YXJ5IG1hbmFnZW1lbnQsMTk5OSxPbmxpbmUgUHVibGlzaGluZyw3ODA1DQo4MSxFYTNmNkQ1MkVjNzM1NjMsTW9udGVzLUhlbnNsZXksaHR0cHM6Ly9rcnVlZ2VyLm9yZy8sTGllY2h0ZW5zdGVpbixNdWx0aS10aWVyZWQgc2Vjb25kYXJ5IHByb2R1Y3Rpdml0eSwyMDA5LFByaW50aW5nLDg0MzMNCjgyLGJDMENFZDQ4QTgwMDBFMCxWZWxhenF1ZXotT2RvbSxodHRwczovL3N0b2tlcy5jb20vLERqaWJvdXRpLFN0cmVhbWxpbmVkIDZ0aGdlbmVyYXRpb24gZnVuY3Rpb24sMjAwMixBbHRlcm5hdGl2ZSBEaXNwdXRlIFJlc29sdXRpb24sNDA0NA0KODMsYzg5YjliNTlCQzRiYWExLEVhdG9uLU1vcmFsZXMsaHR0cHM6Ly93d3cucmVldmVzLWdyYWhhbS5jb20vLE1pY3JvbmVzaWEsQ3VzdG9tZXItZm9jdXNlZCBleHBsaWNpdCBmcmFtZSwxOTkwLENhcGl0YWwgTWFya2V0cyAvIEhlZGdlIEZ1bmQgLyBQcml2YXRlIEVxdWl0eSw3MDEzDQo4NCxGRUM1MWJjZTg0MjFhN2IsIlJvYmVyc29uLCBQZW5uaW5ndG9uIGFuZCBQYWxtZXIiLGh0dHA6Ly93d3cua2VpdGgtZmlzaGVyLmNvbS8sQ2FtZXJvb24sQWRhcHRpdmUgYmktZGlyZWN0aW9uYWwgaGllcmFyY2h5LDE5OTMsVGVsZWNvbW11bmljYXRpb25zLDU1NzENCjg1LGUwRThlMjdlQWM5Q0FkNSwiR2VvcmdlLCBSdXNzbyBhbmQgR3VlcnJhIixodHRwczovL2RyYWtlLmNvbS8sU3dlZGVuLENlbnRyYWxpemVkIG5vbi12b2xhdGlsZSBjYXBhYmlsaXR5LDE5ODksTWlsaXRhcnkgSW5kdXN0cnksMjg4MA0KODYsQjk3YTZDRjliZjU5ODNDLERhdmlsYSBJbmMsaHR0cHM6Ly9tY2Nvbm5lbGwuaW5mby8sQ29jb3MgKEtlZWxpbmcpIElzbGFuZHMsUHJvZml0LWZvY3VzZWQgZGVkaWNhdGVkIGZyYW1lLDIwMTcsQ29uc3VtZXIgRWxlY3Ryb25pY3MsMjIxNQ0KODcsYTBhNmY5YjNEYmNCRWI1LE1heXMtUHJlc3RvbixodHRwOi8vd3d3LmJyb3duaW5nLWtleS5jb20vLE1hbGksVXNlci1jZW50cmljIGhldXJpc3RpYyBmb2N1cyBncm91cCwyMDA2LE1pbGl0YXJ5IEluZHVzdHJ5LDU3ODYNCjg4LDhjQzFiRGEzMzBhNTg3MSxQaW5lZGEtTW9ydG9uLGh0dHBzOi8vd3d3LmNhcnIuY29tLyxVbml0ZWQgU3RhdGVzIFZpcmdpbiBJc2xhbmRzLEdyYXNzLXJvb3RzIG1ldGhvZGljYWwgaW5mby1tZWRpYXJpZXMsMTk5MSxQcmludGluZyw2MTY4DQo4OSxFRDg4OUNCMkZFOWNiZDMsSHVhbmcgYW5kIFNvbnMsaHR0cHM6Ly93d3cuYm9sdG9uLmNvbS8sRXJpdHJlYSxSZS1jb250ZXh0dWFsaXplZCBkeW5hbWljIGhpZXJhcmNoeSwxOTgxLFNlbWljb25kdWN0b3JzLDc0ODQNCjkwLEY0RGMxNDE3QkM2Y2I4ZixHaWxiZXJ0LVNpbW9uLGh0dHBzOi8vd3d3LmJyYWRmb3JkLmJpei8sQnVydW5kaSxHcmFzcy1yb290cyByYWRpY2FsIHBhcmFsbGVsaXNtLDE5NzMsTmV3c3BhcGVycyAvIEpvdXJuYWxpc20sMTkyNw0KOTEsN0FCYzNjN2VjQTAzQjM0LFNhbXBzb24tR3JpZmZpdGgsaHR0cDovL2hlbmRyaWNrcy5vcmcvLEJlbmluLE11bHRpLWxheWVyZWQgY29tcG9zaXRlIHBhcmFkaWdtLDE5NzIsVGV4dGlsZXMsMzg4MQ0KOTIsNGUwNzE5RkJFMzhlMGFCLE1pbGVzLURvbWluZ3VleixodHRwOi8vd3d3LnR1cm5lci5jb20vLEdpYnJhbHRhcixPcmdhbml6ZWQgZW1wb3dlcmluZyBmb3JlY2FzdCwxOTk2LENpdmljIC8gU29jaWFsIE9yZ2FuaXphdGlvbiw4OTcNCjkzLGRFYkRBQWVEZmFlZDAwQSxSb3dlIGFuZCBTb25zLGh0dHBzOi8vd3d3LnNpbXBzb24ub3JnLyxFbCBTYWx2YWRvcixCYWxhbmNlZCBtdWx0aW1lZGlhIGtub3dsZWRnZWJhc2UsMTk3OCxGYWNpbGl0aWVzIFNlcnZpY2VzLDgxNzINCjk0LDYxQkRlQ2ZlRkQwY0VGNSwiVmFsZW56dWVsYSwgSG9sbWVzIGFuZCBSb3dsYW5kIixodHRwczovL3d3dy5kb3JzZXkubmV0LyxUYWl3YW4sUGVyc2lzdGVudCB0ZXJ0aWFyeSBmb2N1cyBncm91cCwxOTk5LFRyYW5zcG9ydGF0aW9uLDE0ODMNCjk1LDRlOTFlRDI1ZjQ4NjExMCwiQmVzdCwgV2FkZSBhbmQgU2hlcGFyZCIsaHR0cHM6Ly96aW1tZXJtYW4uY29tLyxaaW1iYWJ3ZSxJbm5vdmF0aXZlIGJhY2tncm91bmQgZGVmaW5pdGlvbiwxOTkxLEdhbWJsaW5nIC8gQ2FzaW5vcyw0ODczDQo5NiwwYTBiZkZiQmJCOGVDN2MsSG9sbWVzIEdyb3VwLGh0dHBzOi8vbWNkb3dlbGwub3JnLyxFdGhpb3BpYSxSaWdodC1zaXplZCB6ZXJvIHRvbGVyYW5jZSBmb2N1cyBncm91cCwxOTc1LFBob3RvZ3JhcGh5LDI5ODgNCjk3LEJBNkNkOURhZTJFZmQ2MixHb29kIEx0ZCxodHRwOi8vZHVmZnkuY29tLyxBbmd1aWxsYSxSZXZlcnNlLWVuZ2luZWVyZWQgY29tcG9zaXRlIG1vcmF0b3JpdW0sMTk3MSxDb25zdW1lciBTZXJ2aWNlcyw0MjkyDQo5OCxFN2RmODBDNjBBYmQ3ZjksQ2xlbWVudHMtRXNwaW5vemEsaHR0cDovL3d3dy5mbG93ZXJzLm5ldC8sRmFsa2xhbmQgSXNsYW5kcyAoTWFsdmluYXMpLFByb2dyZXNzaXZlIG1vZHVsYXIgaHViLDE5OTEsQnJvYWRjYXN0IE1lZGlhLDIzNg0KOTksQUZjMjg1ZGJFMmZFZDI0LE1lbmRleiBJbmMsaHR0cHM6Ly93d3cuYnVya2UubmV0LyxLeXJneXogUmVwdWJsaWMsVXNlci1mcmllbmRseSBleHVkaW5nIG1pZ3JhdGlvbiwxOTkzLEVkdWNhdGlvbiBNYW5hZ2VtZW50LDMzOQ0KMTAwLGU5ZUI1QTYwQ2VmODM1NCxXYXRraW5zLUthaXNlcixodHRwOi8vd3d3LmhlcnJpbmcuY29tLyxUb2dvLFN5bmVyZ2lzdGljIGJhY2tncm91bmQgYWNjZXNzLDIwMDksRmluYW5jaWFsIFNlcnZpY2VzLDI3ODUNCg=="},"_type":"CSVLoader"},"description":"Loads a CSV file into a list of documents.","base_classes":["CSVLoader","BaseLoader"]},"id":"dndnode_21","value":null},"selected":false,"positionAbsolute":{"x":325.0831403216823,"y":293.78744910049573},"dragging":false}],"edges":[{"source":"dndnode_14","sourceHandle":"CharacterTextSplitter|dndnode_14|CharacterTextSplitter|TextSplitter|BaseDocumentTransformer","target":"dndnode_15","targetHandle":"TextSplitter|documents|dndnode_15","className":"animate-pulse","id":"reactflow__edge-dndnode_14CharacterTextSplitter|dndnode_14|CharacterTextSplitter|TextSplitter|BaseDocumentTransformer-dndnode_15TextSplitter|documents|dndnode_15","selected":false},{"source":"dndnode_16","sourceHandle":"OpenAIEmbeddings|dndnode_16|Embeddings|OpenAIEmbeddings","target":"dndnode_15","targetHandle":"Embeddings|embedding|dndnode_15","className":"animate-pulse","id":"reactflow__edge-dndnode_16OpenAIEmbeddings|dndnode_16|Embeddings|OpenAIEmbeddings-dndnode_15Embeddings|embedding|dndnode_15","selected":false},{"source":"dndnode_15","sourceHandle":"Chroma|dndnode_15|Chroma|VectorStore","target":"dndnode_17","targetHandle":"VectorStore|vectorstore|dndnode_17","className":"animate-pulse","id":"reactflow__edge-dndnode_15Chroma|dndnode_15|Chroma|VectorStore-dndnode_17VectorStore|vectorstore|dndnode_17","selected":false},{"source":"dndnode_17","sourceHandle":"VectorStoreInfo|dndnode_17|VectorStoreInfo","target":"dndnode_19","targetHandle":"VectorStoreInfo|vectorstoreinfo|dndnode_19","className":"animate-pulse","id":"reactflow__edge-dndnode_17VectorStoreInfo|dndnode_17|VectorStoreInfo-dndnode_19VectorStoreInfo|vectorstoreinfo|dndnode_19","selected":false},{"source":"dndnode_18","sourceHandle":"OpenAI|dndnode_18|BaseOpenAI|BaseLLM|OpenAI|BaseLanguageModel","target":"dndnode_19","targetHandle":"BaseLanguageModel|llm|dndnode_19","className":"animate-pulse","id":"reactflow__edge-dndnode_18OpenAI|dndnode_18|BaseOpenAI|BaseLLM|OpenAI|BaseLanguageModel-dndnode_19BaseLanguageModel|llm|dndnode_19","selected":false},{"source":"dndnode_21","sourceHandle":"CSVLoader|dndnode_21|CSVLoader|BaseLoader","target":"dndnode_14","targetHandle":"BaseLoader|documents|dndnode_14","className":"animate-pulse","id":"reactflow__edge-dndnode_21CSVLoader|dndnode_21|CSVLoader|BaseLoader-dndnode_14BaseLoader|documents|dndnode_14","selected":false}],"viewport":{"x":-213.70382550048328,"y":-16.87909194307929,"zoom":0.6973718331752029}}}
\ No newline at end of file
diff --git a/docs/data/Json_agent.json b/docs/data/Json_agent.json
new file mode 100644
index 000000000..0ce234172
--- /dev/null
+++ b/docs/data/Json_agent.json
@@ -0,0 +1 @@
+{"description":"","name":"New Flow","id":"bfd7a711-3225-44ef-b1c3-044499b14123","data":{"nodes":[{"width":384,"height":323,"id":"dndnode_230","type":"genericNode","position":{"x":390,"y":230},"data":{"type":"JsonSpec","node":{"template":{"max_value_length":{"required":true,"placeholder":"","show":true,"multiline":false,"value":"400","password":false,"name":"max_value_length","advanced":false,"type":"int","list":false},"path":{"required":true,"placeholder":"","show":true,"multiline":false,"value":"openapi.yaml","suffixes":[".json",".yaml",".yml"],"password":false,"name":"path","advanced":false,"type":"file","list":false,"fileTypes":["json","yaml","yml"],"content":"data:application/x-yaml;base64,b3BlbmFwaTogMy4wLjAKaW5mbzoKICB0aXRsZTogT3BlbkFJIEFQSQogIGRlc2NyaXB0aW9uOiBBUElzIGZvciBzYW1wbGluZyBmcm9tIGFuZCBmaW5lLXR1bmluZyBsYW5ndWFnZSBtb2RlbHMKICB2ZXJzaW9uOiAnMS4yLjAnCnNlcnZlcnM6CiAgLSB1cmw6IGh0dHBzOi8vYXBpLm9wZW5haS5jb20vdjEKdGFnczoKLSBuYW1lOiBPcGVuQUkKICBkZXNjcmlwdGlvbjogVGhlIE9wZW5BSSBSRVNUIEFQSQpwYXRoczoKICAvZW5naW5lczoKICAgIGdldDoKICAgICAgb3BlcmF0aW9uSWQ6IGxpc3RFbmdpbmVzCiAgICAgIGRlcHJlY2F0ZWQ6IHRydWUKICAgICAgdGFnczoKICAgICAgLSBPcGVuQUkKICAgICAgc3VtbWFyeTogTGlzdHMgdGhlIGN1cnJlbnRseSBhdmFpbGFibGUgKG5vbi1maW5ldHVuZWQpIG1vZGVscywgYW5kIHByb3ZpZGVzIGJhc2ljIGluZm9ybWF0aW9uIGFib3V0IGVhY2ggb25lIHN1Y2ggYXMgdGhlIG93bmVyIGFuZCBhdmFpbGFiaWxpdHkuCiAgICAgIHJlc3BvbnNlczoKICAgICAgICAiMjAwIjoKICAgICAgICAgIGRlc2NyaXB0aW9uOiBPSwogICAgICAgICAgY29udGVudDoKICAgICAgICAgICAgYXBwbGljYXRpb24vanNvbjoKICAgICAgICAgICAgICBzY2hlbWE6CiAgICAgICAgICAgICAgICAkcmVmOiAnIy9jb21wb25lbnRzL3NjaGVtYXMvTGlzdEVuZ2luZXNSZXNwb25zZScKICAgICAgeC1vYWlNZXRhOgogICAgICAgIG5hbWU6IExpc3QgZW5naW5lcwogICAgICAgIGdyb3VwOiBlbmdpbmVzCiAgICAgICAgcGF0aDogbGlzdAogICAgICAgIGV4YW1wbGVzOgogICAgICAgICAgY3VybDogfAogICAgICAgICAgICBjdXJsIGh0dHBzOi8vYXBpLm9wZW5haS5jb20vdjEvZW5naW5lcyBcCiAgICAgICAgICAgICAgLUggJ0F1dGhvcml6YXRpb246IEJlYXJlciBZT1VSX0FQSV9LRVknCiAgICAgICAgICBweXRob246IHwKICAgICAgICAgICAgaW1wb3J0IG9zCiAgICAgICAgICAgIGltcG9ydCBvcGVuYWkKICAgICAgICAgICAgb3BlbmFpLmFwaV9rZXkgPSBvcy5nZXRlbnYoIk9QRU5BSV9BUElfS0VZIikKICAgICAgICAgICAgb3BlbmFpLkVuZ2luZS5saXN0KCkKICAgICAgICAgIG5vZGUuanM6IHwKICAgICAgICAgICAgY29uc3QgeyBDb25maWd1cmF0aW9uLCBPcGVuQUlBcGkgfSA9IHJlcXVpcmUoIm9wZW5haSIpOwogICAgICAgICAgICBjb25zdCBjb25maWd1cmF0aW9uID0gbmV3IENvbmZpZ3VyYXRpb24oewogICAgICAgICAgICAgIGFwaUtleTogcHJvY2Vzcy5lbnYuT1BFTkFJX0FQSV9LRVksCiAgICAgICAgICAgIH0pOwogICAgICAgICAgICBjb25zdCBvcGVuYWkgPSBuZXcgT3BlbkFJQXBpKGNvbmZpZ3VyYXRpb24pOwogICAgICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IG9wZW5haS5saXN0RW5naW5lcygpOwogICAgICAgIHJlc3BvbnNlOiB8CiAgICAgICAgICB7CiAgICAgICAgICAgICJkYXRhIjogWwogICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJpZCI6ICJlbmdpbmUtaWQtMCIsCiAgICAgICAgICAgICAgICAib2JqZWN0IjogImVuZ2luZSIsCiAgICAgICAgICAgICAgICAib3duZXIiOiAib3JnYW5pemF0aW9uLW93bmVyIiwKICAgICAgICAgICAgICAgICJyZWFkeSI6IHRydWUKICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJpZCI6ICJlbmdpbmUtaWQtMiIsCiAgICAgICAgICAgICAgICAib2JqZWN0IjogImVuZ2luZSIsCiAgICAgICAgICAgICAgICAib3duZXIiOiAib3JnYW5pemF0aW9uLW93bmVyIiwKICAgICAgICAgICAgICAgICJyZWFkeSI6IHRydWUKICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJpZCI6ICJlbmdpbmUtaWQtMyIsCiAgICAgICAgICAgICAgICAib2JqZWN0IjogImVuZ2luZSIsCiAgICAgICAgICAgICAgICAib3duZXIiOiAib3BlbmFpIiwKICAgICAgICAgICAgICAgICJyZWFkeSI6IGZhbHNlCiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgXSwKICAgICAgICAgICAgIm9iamVjdCI6ICJsaXN0IgogICAgICAgICAgfQoKICAvZW5naW5lcy97ZW5naW5lX2lkfToKICAgIGdldDoKICAgICAgb3BlcmF0aW9uSWQ6IHJldHJpZXZlRW5naW5lCiAgICAgIGRlcHJlY2F0ZWQ6IHRydWUKICAgICAgdGFnczoKICAgICAgLSBPcGVuQUkKICAgICAgc3VtbWFyeTogUmV0cmlldmVzIGEgbW9kZWwgaW5zdGFuY2UsIHByb3ZpZGluZyBiYXNpYyBpbmZvcm1hdGlvbiBhYm91dCBpdCBzdWNoIGFzIHRoZSBvd25lciBhbmQgYXZhaWxhYmlsaXR5LgogICAgICBwYXJhbWV0ZXJzOgogICAgICAgIC0gaW46IHBhdGgKICAgICAgICAgIG5hbWU6IGVuZ2luZV9pZAogICAgICAgICAgcmVxdWlyZWQ6IHRydWUKICAgICAgICAgIHNjaGVtYToKICAgICAgICAgICAgdHlwZTogc3RyaW5nCiAgICAgICAgICAgICMgaWRlYWxseSB0aGlzIHdpbGwgYmUgYW4gYWN0dWFsIElELCBzbyB0aGlzIHdpbGwgYWx3YXlzIHdvcmsgZnJvbSBicm93c2VyCiAgICAgICAgICAgIGV4YW1wbGU6CiAgICAgICAgICAgICAgZGF2aW5jaQogICAgICAgICAgZGVzY3JpcHRpb246ICZlbmdpbmVfaWRfZGVzY3JpcHRpb24gPgogICAgICAgICAgICBUaGUgSUQgb2YgdGhlIGVuZ2luZSB0byB1c2UgZm9yIHRoaXMgcmVxdWVzdAogICAgICByZXNwb25zZXM6CiAgICAgICAgIjIwMCI6CiAgICAgICAgICBkZXNjcmlwdGlvbjogT0sKICAgICAgICAgIGNvbnRlbnQ6CiAgICAgICAgICAgIGFwcGxpY2F0aW9uL2pzb246CiAgICAgICAgICAgICAgc2NoZW1hOgogICAgICAgICAgICAgICAgJHJlZjogJyMvY29tcG9uZW50cy9zY2hlbWFzL0VuZ2luZScKICAgICAgeC1vYWlNZXRhOgogICAgICAgIG5hbWU6IFJldHJpZXZlIGVuZ2luZQogICAgICAgIGdyb3VwOiBlbmdpbmVzCiAgICAgICAgcGF0aDogcmV0cmlldmUKICAgICAgICBleGFtcGxlczoKICAgICAgICAgIGN1cmw6IHwKICAgICAgICAgICAgY3VybCBodHRwczovL2FwaS5vcGVuYWkuY29tL3YxL2VuZ2luZXMvVkFSX21vZGVsX2lkIFwKICAgICAgICAgICAgICAtSCAnQXV0aG9yaXphdGlvbjogQmVhcmVyIFlPVVJfQVBJX0tFWScKICAgICAgICAgIHB5dGhvbjogfAogICAgICAgICAgICBpbXBvcnQgb3MKICAgICAgICAgICAgaW1wb3J0IG9wZW5haQogICAgICAgICAgICBvcGVuYWkuYXBpX2tleSA9IG9zLmdldGVudigiT1BFTkFJX0FQSV9LRVkiKQogICAgICAgICAgICBvcGVuYWkuRW5naW5lLnJldHJpZXZlKCJWQVJfbW9kZWxfaWQiKQogICAgICAgICAgbm9kZS5qczogfAogICAgICAgICAgICBjb25zdCB7IENvbmZpZ3VyYXRpb24sIE9wZW5BSUFwaSB9ID0gcmVxdWlyZSgib3BlbmFpIik7CiAgICAgICAgICAgIGNvbnN0IGNvbmZpZ3VyYXRpb24gPSBuZXcgQ29uZmlndXJhdGlvbih7CiAgICAgICAgICAgICAgYXBpS2V5OiBwcm9jZXNzLmVudi5PUEVOQUlfQVBJX0tFWSwKICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIGNvbnN0IG9wZW5haSA9IG5ldyBPcGVuQUlBcGkoY29uZmlndXJhdGlvbik7CiAgICAgICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgb3BlbmFpLnJldHJpZXZlRW5naW5lKCJWQVJfbW9kZWxfaWQiKTsKICAgICAgICByZXNwb25zZTogfAogICAgICAgICAgewogICAgICAgICAgICAiaWQiOiAiVkFSX21vZGVsX2lkIiwKICAgICAgICAgICAgIm9iamVjdCI6ICJlbmdpbmUiLAogICAgICAgICAgICAib3duZXIiOiAib3BlbmFpIiwKICAgICAgICAgICAgInJlYWR5IjogdHJ1ZQogICAgICAgICAgfQoKICAvY29tcGxldGlvbnM6CiAgICBwb3N0OgogICAgICBvcGVyYXRpb25JZDogY3JlYXRlQ29tcGxldGlvbgogICAgICB0YWdzOgogICAgICAtIE9wZW5BSQogICAgICBzdW1tYXJ5OiBDcmVhdGVzIGEgY29tcGxldGlvbiBmb3IgdGhlIHByb3ZpZGVkIHByb21wdCBhbmQgcGFyYW1ldGVycwogICAgICByZXF1ZXN0Qm9keToKICAgICAgICByZXF1aXJlZDogdHJ1ZQogICAgICAgIGNvbnRlbnQ6CiAgICAgICAgICBhcHBsaWNhdGlvbi9qc29uOgogICAgICAgICAgICBzY2hlbWE6CiAgICAgICAgICAgICAgJHJlZjogJyMvY29tcG9uZW50cy9zY2hlbWFzL0NyZWF0ZUNvbXBsZXRpb25SZXF1ZXN0JwogICAgICByZXNwb25zZXM6CiAgICAgICAgIjIwMCI6CiAgICAgICAgICBkZXNjcmlwdGlvbjogT0sKICAgICAgICAgIGNvbnRlbnQ6CiAgICAgICAgICAgIGFwcGxpY2F0aW9uL2pzb246CiAgICAgICAgICAgICAgc2NoZW1hOgogICAgICAgICAgICAgICAgJHJlZjogJyMvY29tcG9uZW50cy9zY2hlbWFzL0NyZWF0ZUNvbXBsZXRpb25SZXNwb25zZScKICAgICAgeC1vYWlNZXRhOgogICAgICAgIG5hbWU6IENyZWF0ZSBjb21wbGV0aW9uCiAgICAgICAgZ3JvdXA6IGNvbXBsZXRpb25zCiAgICAgICAgcGF0aDogY3JlYXRlCiAgICAgICAgZXhhbXBsZXM6CiAgICAgICAgICBjdXJsOiB8CiAgICAgICAgICAgIGN1cmwgaHR0cHM6Ly9hcGkub3BlbmFpLmNvbS92MS9jb21wbGV0aW9ucyBcCiAgICAgICAgICAgICAgLUggJ0NvbnRlbnQtVHlwZTogYXBwbGljYXRpb24vanNvbicgXAogICAgICAgICAgICAgIC1IICdBdXRob3JpemF0aW9uOiBCZWFyZXIgWU9VUl9BUElfS0VZJyBcCiAgICAgICAgICAgICAgLWQgJ3sKICAgICAgICAgICAgICAibW9kZWwiOiAiVkFSX21vZGVsX2lkIiwKICAgICAgICAgICAgICAicHJvbXB0IjogIlNheSB0aGlzIGlzIGEgdGVzdCIsCiAgICAgICAgICAgICAgIm1heF90b2tlbnMiOiA3LAogICAgICAgICAgICAgICJ0ZW1wZXJhdHVyZSI6IDAKICAgICAgICAgICAgfScKICAgICAgICAgIHB5dGhvbjogfAogICAgICAgICAgICBpbXBvcnQgb3MKICAgICAgICAgICAgaW1wb3J0IG9wZW5haQogICAgICAgICAgICBvcGVuYWkuYXBpX2tleSA9IG9zLmdldGVudigiT1BFTkFJX0FQSV9LRVkiKQogICAgICAgICAgICBvcGVuYWkuQ29tcGxldGlvbi5jcmVhdGUoCiAgICAgICAgICAgICAgbW9kZWw9IlZBUl9tb2RlbF9pZCIsCiAgICAgICAgICAgICAgcHJvbXB0PSJTYXkgdGhpcyBpcyBhIHRlc3QiLAogICAgICAgICAgICAgIG1heF90b2tlbnM9NywKICAgICAgICAgICAgICB0ZW1wZXJhdHVyZT0wCiAgICAgICAgICAgICkKICAgICAgICAgIG5vZGUuanM6IHwKICAgICAgICAgICAgY29uc3QgeyBDb25maWd1cmF0aW9uLCBPcGVuQUlBcGkgfSA9IHJlcXVpcmUoIm9wZW5haSIpOwogICAgICAgICAgICBjb25zdCBjb25maWd1cmF0aW9uID0gbmV3IENvbmZpZ3VyYXRpb24oewogICAgICAgICAgICAgIGFwaUtleTogcHJvY2Vzcy5lbnYuT1BFTkFJX0FQSV9LRVksCiAgICAgICAgICAgIH0pOwogICAgICAgICAgICBjb25zdCBvcGVuYWkgPSBuZXcgT3BlbkFJQXBpKGNvbmZpZ3VyYXRpb24pOwogICAgICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IG9wZW5haS5jcmVhdGVDb21wbGV0aW9uKHsKICAgICAgICAgICAgICBtb2RlbDogIlZBUl9tb2RlbF9pZCIsCiAgICAgICAgICAgICAgcHJvbXB0OiAiU2F5IHRoaXMgaXMgYSB0ZXN0IiwKICAgICAgICAgICAgICBtYXhfdG9rZW5zOiA3LAogICAgICAgICAgICAgIHRlbXBlcmF0dXJlOiAwLAogICAgICAgICAgICB9KTsKICAgICAgICBwYXJhbWV0ZXJzOiB8CiAgICAgICAgICB7CiAgICAgICAgICAgICJtb2RlbCI6ICJWQVJfbW9kZWxfaWQiLAogICAgICAgICAgICAicHJvbXB0IjogIlNheSB0aGlzIGlzIGEgdGVzdCIsCiAgICAgICAgICAgICJtYXhfdG9rZW5zIjogNywKICAgICAgICAgICAgInRlbXBlcmF0dXJlIjogMCwKICAgICAgICAgICAgInRvcF9wIjogMSwKICAgICAgICAgICAgIm4iOiAxLAogICAgICAgICAgICAic3RyZWFtIjogZmFsc2UsCiAgICAgICAgICAgICJsb2dwcm9icyI6IG51bGwsCiAgICAgICAgICAgICJzdG9wIjogIlxuIgogICAgICAgICAgfQogICAgICAgIHJlc3BvbnNlOiB8CiAgICAgICAgICB7CiAgICAgICAgICAgICJpZCI6ICJjbXBsLXVxa3ZsUXlZSzdiR1lyUkhRMGVYbFdpNyIsCiAgICAgICAgICAgICJvYmplY3QiOiAidGV4dF9jb21wbGV0aW9uIiwKICAgICAgICAgICAgImNyZWF0ZWQiOiAxNTg5NDc4Mzc4LAogICAgICAgICAgICAibW9kZWwiOiAiVkFSX21vZGVsX2lkIiwKICAgICAgICAgICAgImNob2ljZXMiOiBbCiAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgInRleHQiOiAiXG5cblRoaXMgaXMgaW5kZWVkIGEgdGVzdCIsCiAgICAgICAgICAgICAgICAiaW5kZXgiOiAwLAogICAgICAgICAgICAgICAgImxvZ3Byb2JzIjogbnVsbCwKICAgICAgICAgICAgICAgICJmaW5pc2hfcmVhc29uIjogImxlbmd0aCIKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIF0sCiAgICAgICAgICAgICJ1c2FnZSI6IHsKICAgICAgICAgICAgICAicHJvbXB0X3Rva2VucyI6IDUsCiAgICAgICAgICAgICAgImNvbXBsZXRpb25fdG9rZW5zIjogNywKICAgICAgICAgICAgICAidG90YWxfdG9rZW5zIjogMTIKICAgICAgICAgICAgfQogICAgICAgICAgfQogIC9jaGF0L2NvbXBsZXRpb25zOgogICAgcG9zdDoKICAgICAgb3BlcmF0aW9uSWQ6IGNyZWF0ZUNoYXRDb21wbGV0aW9uCiAgICAgIHRhZ3M6CiAgICAgIC0gT3BlbkFJCiAgICAgIHN1bW1hcnk6IENyZWF0ZXMgYSBjb21wbGV0aW9uIGZvciB0aGUgY2hhdCBtZXNzYWdlCiAgICAgIHJlcXVlc3RCb2R5OgogICAgICAgIHJlcXVpcmVkOiB0cnVlCiAgICAgICAgY29udGVudDoKICAgICAgICAgIGFwcGxpY2F0aW9uL2pzb246CiAgICAgICAgICAgIHNjaGVtYToKICAgICAgICAgICAgICAkcmVmOiAnIy9jb21wb25lbnRzL3NjaGVtYXMvQ3JlYXRlQ2hhdENvbXBsZXRpb25SZXF1ZXN0JwogICAgICByZXNwb25zZXM6CiAgICAgICAgIjIwMCI6CiAgICAgICAgICBkZXNjcmlwdGlvbjogT0sKICAgICAgICAgIGNvbnRlbnQ6CiAgICAgICAgICAgIGFwcGxpY2F0aW9uL2pzb246CiAgICAgICAgICAgICAgc2NoZW1hOgogICAgICAgICAgICAgICAgJHJlZjogJyMvY29tcG9uZW50cy9zY2hlbWFzL0NyZWF0ZUNoYXRDb21wbGV0aW9uUmVzcG9uc2UnCgogICAgICB4LW9haU1ldGE6CiAgICAgICAgbmFtZTogQ3JlYXRlIGNoYXQgY29tcGxldGlvbgogICAgICAgIGdyb3VwOiBjaGF0CiAgICAgICAgcGF0aDogY3JlYXRlCiAgICAgICAgYmV0YTogdHJ1ZQogICAgICAgIGV4YW1wbGVzOgogICAgICAgICAgY3VybDogfAogICAgICAgICAgICBjdXJsIGh0dHBzOi8vYXBpLm9wZW5haS5jb20vdjEvY2hhdC9jb21wbGV0aW9ucyBcCiAgICAgICAgICAgICAgLUggJ0NvbnRlbnQtVHlwZTogYXBwbGljYXRpb24vanNvbicgXAogICAgICAgICAgICAgIC1IICdBdXRob3JpemF0aW9uOiBCZWFyZXIgWU9VUl9BUElfS0VZJyBcCiAgICAgICAgICAgICAgLWQgJ3sKICAgICAgICAgICAgICAibW9kZWwiOiAiZ3B0LTMuNS10dXJibyIsCiAgICAgICAgICAgICAgIm1lc3NhZ2VzIjogW3sicm9sZSI6ICJ1c2VyIiwgImNvbnRlbnQiOiAiSGVsbG8hIn1dCiAgICAgICAgICAgIH0nCiAgICAgICAgICBweXRob246IHwKICAgICAgICAgICAgaW1wb3J0IG9zCiAgICAgICAgICAgIGltcG9ydCBvcGVuYWkKICAgICAgICAgICAgb3BlbmFpLmFwaV9rZXkgPSBvcy5nZXRlbnYoIk9QRU5BSV9BUElfS0VZIikKCiAgICAgICAgICAgIGNvbXBsZXRpb24gPSBvcGVuYWkuQ2hhdENvbXBsZXRpb24uY3JlYXRlKAogICAgICAgICAgICAgIG1vZGVsPSJncHQtMy41LXR1cmJvIiwKICAgICAgICAgICAgICBtZXNzYWdlcz1bCiAgICAgICAgICAgICAgICB7InJvbGUiOiAidXNlciIsICJjb250ZW50IjogIkhlbGxvISJ9CiAgICAgICAgICAgICAgXQogICAgICAgICAgICApCgogICAgICAgICAgICBwcmludChjb21wbGV0aW9uLmNob2ljZXNbMF0ubWVzc2FnZSkKICAgICAgICAgIG5vZGUuanM6IHwKICAgICAgICAgICAgY29uc3QgeyBDb25maWd1cmF0aW9uLCBPcGVuQUlBcGkgfSA9IHJlcXVpcmUoIm9wZW5haSIpOwoKICAgICAgICAgICAgY29uc3QgY29uZmlndXJhdGlvbiA9IG5ldyBDb25maWd1cmF0aW9uKHsKICAgICAgICAgICAgICBhcGlLZXk6IHByb2Nlc3MuZW52Lk9QRU5BSV9BUElfS0VZLAogICAgICAgICAgICB9KTsKICAgICAgICAgICAgY29uc3Qgb3BlbmFpID0gbmV3IE9wZW5BSUFwaShjb25maWd1cmF0aW9uKTsKCiAgICAgICAgICAgIGNvbnN0IGNvbXBsZXRpb24gPSBhd2FpdCBvcGVuYWkuY3JlYXRlQ2hhdENvbXBsZXRpb24oewogICAgICAgICAgICAgIG1vZGVsOiAiZ3B0LTMuNS10dXJibyIsCiAgICAgICAgICAgICAgbWVzc2FnZXM6IFt7cm9sZTogInVzZXIiLCBjb250ZW50OiAiSGVsbG8gd29ybGQifV0sCiAgICAgICAgICAgIH0pOwogICAgICAgICAgICBjb25zb2xlLmxvZyhjb21wbGV0aW9uLmRhdGEuY2hvaWNlc1swXS5tZXNzYWdlKTsKICAgICAgICBwYXJhbWV0ZXJzOiB8CiAgICAgICAgICB7CiAgICAgICAgICAgICJtb2RlbCI6ICJncHQtMy41LXR1cmJvIiwKICAgICAgICAgICAgIm1lc3NhZ2VzIjogW3sicm9sZSI6ICJ1c2VyIiwgImNvbnRlbnQiOiAiSGVsbG8hIn1dCiAgICAgICAgICB9CiAgICAgICAgcmVzcG9uc2U6IHwKICAgICAgICAgIHsKICAgICAgICAgICAgImlkIjogImNoYXRjbXBsLTEyMyIsCiAgICAgICAgICAgICJvYmplY3QiOiAiY2hhdC5jb21wbGV0aW9uIiwKICAgICAgICAgICAgImNyZWF0ZWQiOiAxNjc3NjUyMjg4LAogICAgICAgICAgICAiY2hvaWNlcyI6IFt7CiAgICAgICAgICAgICAgImluZGV4IjogMCwKICAgICAgICAgICAgICAibWVzc2FnZSI6IHsKICAgICAgICAgICAgICAgICJyb2xlIjogImFzc2lzdGFudCIsCiAgICAgICAgICAgICAgICAiY29udGVudCI6ICJcblxuSGVsbG8gdGhlcmUsIGhvdyBtYXkgSSBhc3Npc3QgeW91IHRvZGF5PyIsCiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAiZmluaXNoX3JlYXNvbiI6ICJzdG9wIgogICAgICAgICAgICB9XSwKICAgICAgICAgICAgInVzYWdlIjogewogICAgICAgICAgICAgICJwcm9tcHRfdG9rZW5zIjogOSwKICAgICAgICAgICAgICAiY29tcGxldGlvbl90b2tlbnMiOiAxMiwKICAgICAgICAgICAgICAidG90YWxfdG9rZW5zIjogMjEKICAgICAgICAgICAgfQogICAgICAgICAgfQoKICAvZWRpdHM6CiAgICBwb3N0OgogICAgICBvcGVyYXRpb25JZDogY3JlYXRlRWRpdAogICAgICB0YWdzOgogICAgICAgIC0gT3BlbkFJCiAgICAgIHN1bW1hcnk6IENyZWF0ZXMgYSBuZXcgZWRpdCBmb3IgdGhlIHByb3ZpZGVkIGlucHV0LCBpbnN0cnVjdGlvbiwgYW5kIHBhcmFtZXRlcnMuCiAgICAgIHJlcXVlc3RCb2R5OgogICAgICAgIHJlcXVpcmVkOiB0cnVlCiAgICAgICAgY29udGVudDoKICAgICAgICAgIGFwcGxpY2F0aW9uL2pzb246CiAgICAgICAgICAgIHNjaGVtYToKICAgICAgICAgICAgICAkcmVmOiAnIy9jb21wb25lbnRzL3NjaGVtYXMvQ3JlYXRlRWRpdFJlcXVlc3QnCiAgICAgIHJlc3BvbnNlczoKICAgICAgICAiMjAwIjoKICAgICAgICAgIGRlc2NyaXB0aW9uOiBPSwogICAgICAgICAgY29udGVudDoKICAgICAgICAgICAgYXBwbGljYXRpb24vanNvbjoKICAgICAgICAgICAgICBzY2hlbWE6CiAgICAgICAgICAgICAgICAkcmVmOiAnIy9jb21wb25lbnRzL3NjaGVtYXMvQ3JlYXRlRWRpdFJlc3BvbnNlJwogICAgICB4LW9haU1ldGE6CiAgICAgICAgbmFtZTogQ3JlYXRlIGVkaXQKICAgICAgICBncm91cDogZWRpdHMKICAgICAgICBwYXRoOiBjcmVhdGUKICAgICAgICBleGFtcGxlczoKICAgICAgICAgIGN1cmw6IHwKICAgICAgICAgICAgY3VybCBodHRwczovL2FwaS5vcGVuYWkuY29tL3YxL2VkaXRzIFwKICAgICAgICAgICAgICAtSCAnQ29udGVudC1UeXBlOiBhcHBsaWNhdGlvbi9qc29uJyBcCiAgICAgICAgICAgICAgLUggJ0F1dGhvcml6YXRpb246IEJlYXJlciBZT1VSX0FQSV9LRVknIFwKICAgICAgICAgICAgICAtZCAnewogICAgICAgICAgICAgICJtb2RlbCI6ICJWQVJfbW9kZWxfaWQiLAogICAgICAgICAgICAgICJpbnB1dCI6ICJXaGF0IGRheSBvZiB0aGUgd2VrIGlzIGl0PyIsCiAgICAgICAgICAgICAgImluc3RydWN0aW9uIjogIkZpeCB0aGUgc3BlbGxpbmcgbWlzdGFrZXMiCiAgICAgICAgICAgIH0nCiAgICAgICAgICBweXRob246IHwKICAgICAgICAgICAgaW1wb3J0IG9zCiAgICAgICAgICAgIGltcG9ydCBvcGVuYWkKICAgICAgICAgICAgb3BlbmFpLmFwaV9rZXkgPSBvcy5nZXRlbnYoIk9QRU5BSV9BUElfS0VZIikKICAgICAgICAgICAgb3BlbmFpLkVkaXQuY3JlYXRlKAogICAgICAgICAgICAgIG1vZGVsPSJWQVJfbW9kZWxfaWQiLAogICAgICAgICAgICAgIGlucHV0PSJXaGF0IGRheSBvZiB0aGUgd2VrIGlzIGl0PyIsCiAgICAgICAgICAgICAgaW5zdHJ1Y3Rpb249IkZpeCB0aGUgc3BlbGxpbmcgbWlzdGFrZXMiCiAgICAgICAgICAgICkKICAgICAgICAgIG5vZGUuanM6IHwKICAgICAgICAgICAgY29uc3QgeyBDb25maWd1cmF0aW9uLCBPcGVuQUlBcGkgfSA9IHJlcXVpcmUoIm9wZW5haSIpOwogICAgICAgICAgICBjb25zdCBjb25maWd1cmF0aW9uID0gbmV3IENvbmZpZ3VyYXRpb24oewogICAgICAgICAgICAgIGFwaUtleTogcHJvY2Vzcy5lbnYuT1BFTkFJX0FQSV9LRVksCiAgICAgICAgICAgIH0pOwogICAgICAgICAgICBjb25zdCBvcGVuYWkgPSBuZXcgT3BlbkFJQXBpKGNvbmZpZ3VyYXRpb24pOwogICAgICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IG9wZW5haS5jcmVhdGVFZGl0KHsKICAgICAgICAgICAgICBtb2RlbDogIlZBUl9tb2RlbF9pZCIsCiAgICAgICAgICAgICAgaW5wdXQ6ICJXaGF0IGRheSBvZiB0aGUgd2VrIGlzIGl0PyIsCiAgICAgICAgICAgICAgaW5zdHJ1Y3Rpb246ICJGaXggdGhlIHNwZWxsaW5nIG1pc3Rha2VzIiwKICAgICAgICAgICAgfSk7CiAgICAgICAgcGFyYW1ldGVyczogfAogICAgICAgICAgewogICAgICAgICAgICAibW9kZWwiOiAiVkFSX21vZGVsX2lkIiwKICAgICAgICAgICAgImlucHV0IjogIldoYXQgZGF5IG9mIHRoZSB3ZWsgaXMgaXQ/IiwKICAgICAgICAgICAgImluc3RydWN0aW9uIjogIkZpeCB0aGUgc3BlbGxpbmcgbWlzdGFrZXMiLAogICAgICAgICAgfQogICAgICAgIHJlc3BvbnNlOiB8CiAgICAgICAgICB7CiAgICAgICAgICAgICJvYmplY3QiOiAiZWRpdCIsCiAgICAgICAgICAgICJjcmVhdGVkIjogMTU4OTQ3ODM3OCwKICAgICAgICAgICAgImNob2ljZXMiOiBbCiAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgInRleHQiOiAiV2hhdCBkYXkgb2YgdGhlIHdlZWsgaXMgaXQ/IiwKICAgICAgICAgICAgICAgICJpbmRleCI6IDAsCiAgICAgICAgICAgICAgfQogICAgICAgICAgICBdLAogICAgICAgICAgICAidXNhZ2UiOiB7CiAgICAgICAgICAgICAgInByb21wdF90b2tlbnMiOiAyNSwKICAgICAgICAgICAgICAiY29tcGxldGlvbl90b2tlbnMiOiAzMiwKICAgICAgICAgICAgICAidG90YWxfdG9rZW5zIjogNTcKICAgICAgICAgICAgfQogICAgICAgICAgfQoKICAvaW1hZ2VzL2dlbmVyYXRpb25zOgogICAgcG9zdDoKICAgICAgb3BlcmF0aW9uSWQ6IGNyZWF0ZUltYWdlCiAgICAgIHRhZ3M6CiAgICAgIC0gT3BlbkFJCiAgICAgIHN1bW1hcnk6IENyZWF0ZXMgYW4gaW1hZ2UgZ2l2ZW4gYSBwcm9tcHQuCiAgICAgIHJlcXVlc3RCb2R5OgogICAgICAgIHJlcXVpcmVkOiB0cnVlCiAgICAgICAgY29udGVudDoKICAgICAgICAgIGFwcGxpY2F0aW9uL2pzb246CiAgICAgICAgICAgIHNjaGVtYToKICAgICAgICAgICAgICAkcmVmOiAnIy9jb21wb25lbnRzL3NjaGVtYXMvQ3JlYXRlSW1hZ2VSZXF1ZXN0JwogICAgICByZXNwb25zZXM6CiAgICAgICAgIjIwMCI6CiAgICAgICAgICBkZXNjcmlwdGlvbjogT0sKICAgICAgICAgIGNvbnRlbnQ6CiAgICAgICAgICAgIGFwcGxpY2F0aW9uL2pzb246CiAgICAgICAgICAgICAgc2NoZW1hOgogICAgICAgICAgICAgICAgJHJlZjogJyMvY29tcG9uZW50cy9zY2hlbWFzL0ltYWdlc1Jlc3BvbnNlJwogICAgICB4LW9haU1ldGE6CiAgICAgICAgbmFtZTogQ3JlYXRlIGltYWdlCiAgICAgICAgZ3JvdXA6IGltYWdlcwogICAgICAgIHBhdGg6IGNyZWF0ZQogICAgICAgIGJldGE6IHRydWUKICAgICAgICBleGFtcGxlczoKICAgICAgICAgIGN1cmw6IHwKICAgICAgICAgICAgY3VybCBodHRwczovL2FwaS5vcGVuYWkuY29tL3YxL2ltYWdlcy9nZW5lcmF0aW9ucyBcCiAgICAgICAgICAgICAgLUggJ0NvbnRlbnQtVHlwZTogYXBwbGljYXRpb24vanNvbicgXAogICAgICAgICAgICAgIC1IICdBdXRob3JpemF0aW9uOiBCZWFyZXIgWU9VUl9BUElfS0VZJyBcCiAgICAgICAgICAgICAgLWQgJ3sKICAgICAgICAgICAgICAicHJvbXB0IjogIkEgY3V0ZSBiYWJ5IHNlYSBvdHRlciIsCiAgICAgICAgICAgICAgIm4iOiAyLAogICAgICAgICAgICAgICJzaXplIjogIjEwMjR4MTAyNCIKICAgICAgICAgICAgfScKICAgICAgICAgIHB5dGhvbjogfAogICAgICAgICAgICBpbXBvcnQgb3MKICAgICAgICAgICAgaW1wb3J0IG9wZW5haQogICAgICAgICAgICBvcGVuYWkuYXBpX2tleSA9IG9zLmdldGVudigiT1BFTkFJX0FQSV9LRVkiKQogICAgICAgICAgICBvcGVuYWkuSW1hZ2UuY3JlYXRlKAogICAgICAgICAgICAgIHByb21wdD0iQSBjdXRlIGJhYnkgc2VhIG90dGVyIiwKICAgICAgICAgICAgICBuPTIsCiAgICAgICAgICAgICAgc2l6ZT0iMTAyNHgxMDI0IgogICAgICAgICAgICApCiAgICAgICAgICBub2RlLmpzOiB8CiAgICAgICAgICAgIGNvbnN0IHsgQ29uZmlndXJhdGlvbiwgT3BlbkFJQXBpIH0gPSByZXF1aXJlKCJvcGVuYWkiKTsKICAgICAgICAgICAgY29uc3QgY29uZmlndXJhdGlvbiA9IG5ldyBDb25maWd1cmF0aW9uKHsKICAgICAgICAgICAgICBhcGlLZXk6IHByb2Nlc3MuZW52Lk9QRU5BSV9BUElfS0VZLAogICAgICAgICAgICB9KTsKICAgICAgICAgICAgY29uc3Qgb3BlbmFpID0gbmV3IE9wZW5BSUFwaShjb25maWd1cmF0aW9uKTsKICAgICAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBvcGVuYWkuY3JlYXRlSW1hZ2UoewogICAgICAgICAgICAgIHByb21wdDogIkEgY3V0ZSBiYWJ5IHNlYSBvdHRlciIsCiAgICAgICAgICAgICAgbjogMiwKICAgICAgICAgICAgICBzaXplOiAiMTAyNHgxMDI0IiwKICAgICAgICAgICAgfSk7CiAgICAgICAgcGFyYW1ldGVyczogfAogICAgICAgICAgewogICAgICAgICAgICAicHJvbXB0IjogIkEgY3V0ZSBiYWJ5IHNlYSBvdHRlciIsCiAgICAgICAgICAgICJuIjogMiwKICAgICAgICAgICAgInNpemUiOiAiMTAyNHgxMDI0IgogICAgICAgICAgfQogICAgICAgIHJlc3BvbnNlOiB8CiAgICAgICAgICB7CiAgICAgICAgICAgICJjcmVhdGVkIjogMTU4OTQ3ODM3OCwKICAgICAgICAgICAgImRhdGEiOiBbCiAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgInVybCI6ICJodHRwczovLy4uLiIKICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJ1cmwiOiAiaHR0cHM6Ly8uLi4iCiAgICAgICAgICAgICAgfQogICAgICAgICAgICBdCiAgICAgICAgICB9CgogIC9pbWFnZXMvZWRpdHM6CiAgICBwb3N0OgogICAgICBvcGVyYXRpb25JZDogY3JlYXRlSW1hZ2VFZGl0CiAgICAgIHRhZ3M6CiAgICAgIC0gT3BlbkFJCiAgICAgIHN1bW1hcnk6IENyZWF0ZXMgYW4gZWRpdGVkIG9yIGV4dGVuZGVkIGltYWdlIGdpdmVuIGFuIG9yaWdpbmFsIGltYWdlIGFuZCBhIHByb21wdC4KICAgICAgcmVxdWVzdEJvZHk6CiAgICAgICAgcmVxdWlyZWQ6IHRydWUKICAgICAgICBjb250ZW50OgogICAgICAgICAgbXVsdGlwYXJ0L2Zvcm0tZGF0YToKICAgICAgICAgICAgc2NoZW1hOgogICAgICAgICAgICAgICRyZWY6ICcjL2NvbXBvbmVudHMvc2NoZW1hcy9DcmVhdGVJbWFnZUVkaXRSZXF1ZXN0JwogICAgICByZXNwb25zZXM6CiAgICAgICAgIjIwMCI6CiAgICAgICAgICBkZXNjcmlwdGlvbjogT0sKICAgICAgICAgIGNvbnRlbnQ6CiAgICAgICAgICAgIGFwcGxpY2F0aW9uL2pzb246CiAgICAgICAgICAgICAgc2NoZW1hOgogICAgICAgICAgICAgICAgJHJlZjogJyMvY29tcG9uZW50cy9zY2hlbWFzL0ltYWdlc1Jlc3BvbnNlJwogICAgICB4LW9haU1ldGE6CiAgICAgICAgbmFtZTogQ3JlYXRlIGltYWdlIGVkaXQKICAgICAgICBncm91cDogaW1hZ2VzCiAgICAgICAgcGF0aDogY3JlYXRlLWVkaXQKICAgICAgICBiZXRhOiB0cnVlCiAgICAgICAgZXhhbXBsZXM6CiAgICAgICAgICBjdXJsOiB8CiAgICAgICAgICAgIGN1cmwgaHR0cHM6Ly9hcGkub3BlbmFpLmNvbS92MS9pbWFnZXMvZWRpdHMgXAogICAgICAgICAgICAgIC1IICdBdXRob3JpemF0aW9uOiBCZWFyZXIgWU9VUl9BUElfS0VZJyBcCiAgICAgICAgICAgICAgLUYgaW1hZ2U9J0BvdHRlci5wbmcnIFwKICAgICAgICAgICAgICAtRiBtYXNrPSdAbWFzay5wbmcnIFwKICAgICAgICAgICAgICAtRiBwcm9tcHQ9IkEgY3V0ZSBiYWJ5IHNlYSBvdHRlciB3ZWFyaW5nIGEgYmVyZXQiIFwKICAgICAgICAgICAgICAtRiBuPTIgXAogICAgICAgICAgICAgIC1GIHNpemU9IjEwMjR4MTAyNCIKICAgICAgICAgIHB5dGhvbjogfAogICAgICAgICAgICBpbXBvcnQgb3MKICAgICAgICAgICAgaW1wb3J0IG9wZW5haQogICAgICAgICAgICBvcGVuYWkuYXBpX2tleSA9IG9zLmdldGVudigiT1BFTkFJX0FQSV9LRVkiKQogICAgICAgICAgICBvcGVuYWkuSW1hZ2UuY3JlYXRlX2VkaXQoCiAgICAgICAgICAgICAgaW1hZ2U9b3Blbigib3R0ZXIucG5nIiwgInJiIiksCiAgICAgICAgICAgICAgbWFzaz1vcGVuKCJtYXNrLnBuZyIsICJyYiIpLAogICAgICAgICAgICAgIHByb21wdD0iQSBjdXRlIGJhYnkgc2VhIG90dGVyIHdlYXJpbmcgYSBiZXJldCIsCiAgICAgICAgICAgICAgbj0yLAogICAgICAgICAgICAgIHNpemU9IjEwMjR4MTAyNCIKICAgICAgICAgICAgKQogICAgICAgICAgbm9kZS5qczogfAogICAgICAgICAgICBjb25zdCB7IENvbmZpZ3VyYXRpb24sIE9wZW5BSUFwaSB9ID0gcmVxdWlyZSgib3BlbmFpIik7CiAgICAgICAgICAgIGNvbnN0IGNvbmZpZ3VyYXRpb24gPSBuZXcgQ29uZmlndXJhdGlvbih7CiAgICAgICAgICAgICAgYXBpS2V5OiBwcm9jZXNzLmVudi5PUEVOQUlfQVBJX0tFWSwKICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIGNvbnN0IG9wZW5haSA9IG5ldyBPcGVuQUlBcGkoY29uZmlndXJhdGlvbik7CiAgICAgICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgb3BlbmFpLmNyZWF0ZUltYWdlRWRpdCgKICAgICAgICAgICAgICBmcy5jcmVhdGVSZWFkU3RyZWFtKCJvdHRlci5wbmciKSwKICAgICAgICAgICAgICBmcy5jcmVhdGVSZWFkU3RyZWFtKCJtYXNrLnBuZyIpLAogICAgICAgICAgICAgICJBIGN1dGUgYmFieSBzZWEgb3R0ZXIgd2VhcmluZyBhIGJlcmV0IiwKICAgICAgICAgICAgICAyLAogICAgICAgICAgICAgICIxMDI0eDEwMjQiCiAgICAgICAgICAgICk7CiAgICAgICAgcmVzcG9uc2U6IHwKICAgICAgICAgIHsKICAgICAgICAgICAgImNyZWF0ZWQiOiAxNTg5NDc4Mzc4LAogICAgICAgICAgICAiZGF0YSI6IFsKICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAidXJsIjogImh0dHBzOi8vLi4uIgogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgInVybCI6ICJodHRwczovLy4uLiIKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIF0KICAgICAgICAgIH0KCiAgL2ltYWdlcy92YXJpYXRpb25zOgogICAgcG9zdDoKICAgICAgb3BlcmF0aW9uSWQ6IGNyZWF0ZUltYWdlVmFyaWF0aW9uCiAgICAgIHRhZ3M6CiAgICAgIC0gT3BlbkFJCiAgICAgIHN1bW1hcnk6IENyZWF0ZXMgYSB2YXJpYXRpb24gb2YgYSBnaXZlbiBpbWFnZS4KICAgICAgcmVxdWVzdEJvZHk6CiAgICAgICAgcmVxdWlyZWQ6IHRydWUKICAgICAgICBjb250ZW50OgogICAgICAgICAgbXVsdGlwYXJ0L2Zvcm0tZGF0YToKICAgICAgICAgICAgc2NoZW1hOgogICAgICAgICAgICAgICRyZWY6ICcjL2NvbXBvbmVudHMvc2NoZW1hcy9DcmVhdGVJbWFnZVZhcmlhdGlvblJlcXVlc3QnCiAgICAgIHJlc3BvbnNlczoKICAgICAgICAiMjAwIjoKICAgICAgICAgIGRlc2NyaXB0aW9uOiBPSwogICAgICAgICAgY29udGVudDoKICAgICAgICAgICAgYXBwbGljYXRpb24vanNvbjoKICAgICAgICAgICAgICBzY2hlbWE6CiAgICAgICAgICAgICAgICAkcmVmOiAnIy9jb21wb25lbnRzL3NjaGVtYXMvSW1hZ2VzUmVzcG9uc2UnCiAgICAgIHgtb2FpTWV0YToKICAgICAgICBuYW1lOiBDcmVhdGUgaW1hZ2UgdmFyaWF0aW9uCiAgICAgICAgZ3JvdXA6IGltYWdlcwogICAgICAgIHBhdGg6IGNyZWF0ZS12YXJpYXRpb24KICAgICAgICBiZXRhOiB0cnVlCiAgICAgICAgZXhhbXBsZXM6CiAgICAgICAgICBjdXJsOiB8CiAgICAgICAgICAgIGN1cmwgaHR0cHM6Ly9hcGkub3BlbmFpLmNvbS92MS9pbWFnZXMvdmFyaWF0aW9ucyBcCiAgICAgICAgICAgICAgLUggJ0F1dGhvcml6YXRpb246IEJlYXJlciBZT1VSX0FQSV9LRVknIFwKICAgICAgICAgICAgICAtRiBpbWFnZT0nQG90dGVyLnBuZycgXAogICAgICAgICAgICAgIC1GIG49MiBcCiAgICAgICAgICAgICAgLUYgc2l6ZT0iMTAyNHgxMDI0IgogICAgICAgICAgcHl0aG9uOiB8CiAgICAgICAgICAgIGltcG9ydCBvcwogICAgICAgICAgICBpbXBvcnQgb3BlbmFpCiAgICAgICAgICAgIG9wZW5haS5hcGlfa2V5ID0gb3MuZ2V0ZW52KCJPUEVOQUlfQVBJX0tFWSIpCiAgICAgICAgICAgIG9wZW5haS5JbWFnZS5jcmVhdGVfdmFyaWF0aW9uKAogICAgICAgICAgICAgIGltYWdlPW9wZW4oIm90dGVyLnBuZyIsICJyYiIpLAogICAgICAgICAgICAgIG49MiwKICAgICAgICAgICAgICBzaXplPSIxMDI0eDEwMjQiCiAgICAgICAgICAgICkKICAgICAgICAgIG5vZGUuanM6IHwKICAgICAgICAgICAgY29uc3QgeyBDb25maWd1cmF0aW9uLCBPcGVuQUlBcGkgfSA9IHJlcXVpcmUoIm9wZW5haSIpOwogICAgICAgICAgICBjb25zdCBjb25maWd1cmF0aW9uID0gbmV3IENvbmZpZ3VyYXRpb24oewogICAgICAgICAgICAgIGFwaUtleTogcHJvY2Vzcy5lbnYuT1BFTkFJX0FQSV9LRVksCiAgICAgICAgICAgIH0pOwogICAgICAgICAgICBjb25zdCBvcGVuYWkgPSBuZXcgT3BlbkFJQXBpKGNvbmZpZ3VyYXRpb24pOwogICAgICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IG9wZW5haS5jcmVhdGVJbWFnZVZhcmlhdGlvbigKICAgICAgICAgICAgICBmcy5jcmVhdGVSZWFkU3RyZWFtKCJvdHRlci5wbmciKSwKICAgICAgICAgICAgICAyLAogICAgICAgICAgICAgICIxMDI0eDEwMjQiCiAgICAgICAgICAgICk7CiAgICAgICAgcmVzcG9uc2U6IHwKICAgICAgICAgIHsKICAgICAgICAgICAgImNyZWF0ZWQiOiAxNTg5NDc4Mzc4LAogICAgICAgICAgICAiZGF0YSI6IFsKICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAidXJsIjogImh0dHBzOi8vLi4uIgogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgInVybCI6ICJodHRwczovLy4uLiIKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIF0KICAgICAgICAgIH0KCiAgL2VtYmVkZGluZ3M6CiAgICBwb3N0OgogICAgICBvcGVyYXRpb25JZDogY3JlYXRlRW1iZWRkaW5nCiAgICAgIHRhZ3M6CiAgICAgICAgLSBPcGVuQUkKICAgICAgc3VtbWFyeTogQ3JlYXRlcyBhbiBlbWJlZGRpbmcgdmVjdG9yIHJlcHJlc2VudGluZyB0aGUgaW5wdXQgdGV4dC4KICAgICAgcmVxdWVzdEJvZHk6CiAgICAgICAgcmVxdWlyZWQ6IHRydWUKICAgICAgICBjb250ZW50OgogICAgICAgICAgYXBwbGljYXRpb24vanNvbjoKICAgICAgICAgICAgc2NoZW1hOgogICAgICAgICAgICAgICRyZWY6ICcjL2NvbXBvbmVudHMvc2NoZW1hcy9DcmVhdGVFbWJlZGRpbmdSZXF1ZXN0JwogICAgICByZXNwb25zZXM6CiAgICAgICAgIjIwMCI6CiAgICAgICAgICBkZXNjcmlwdGlvbjogT0sKICAgICAgICAgIGNvbnRlbnQ6CiAgICAgICAgICAgIGFwcGxpY2F0aW9uL2pzb246CiAgICAgICAgICAgICAgc2NoZW1hOgogICAgICAgICAgICAgICAgJHJlZjogJyMvY29tcG9uZW50cy9zY2hlbWFzL0NyZWF0ZUVtYmVkZGluZ1Jlc3BvbnNlJwogICAgICB4LW9haU1ldGE6CiAgICAgICAgbmFtZTogQ3JlYXRlIGVtYmVkZGluZ3MKICAgICAgICBncm91cDogZW1iZWRkaW5ncwogICAgICAgIHBhdGg6IGNyZWF0ZQogICAgICAgIGV4YW1wbGVzOgogICAgICAgICAgY3VybDogfAogICAgICAgICAgICBjdXJsIGh0dHBzOi8vYXBpLm9wZW5haS5jb20vdjEvZW1iZWRkaW5ncyBcCiAgICAgICAgICAgICAgLVggUE9TVCBcCiAgICAgICAgICAgICAgLUggIkF1dGhvcml6YXRpb246IEJlYXJlciBZT1VSX0FQSV9LRVkiIFwKICAgICAgICAgICAgICAtSCAiQ29udGVudC1UeXBlOiBhcHBsaWNhdGlvbi9qc29uIiBcCiAgICAgICAgICAgICAgLWQgJ3siaW5wdXQiOiAiVGhlIGZvb2Qgd2FzIGRlbGljaW91cyBhbmQgdGhlIHdhaXRlci4uLiIsCiAgICAgICAgICAgICAgICAgICAibW9kZWwiOiAidGV4dC1lbWJlZGRpbmctYWRhLTAwMiJ9JwoKICAgICAgICAgIHB5dGhvbjogfAogICAgICAgICAgICBpbXBvcnQgb3MKICAgICAgICAgICAgaW1wb3J0IG9wZW5haQogICAgICAgICAgICBvcGVuYWkuYXBpX2tleSA9IG9zLmdldGVudigiT1BFTkFJX0FQSV9LRVkiKQogICAgICAgICAgICBvcGVuYWkuRW1iZWRkaW5nLmNyZWF0ZSgKICAgICAgICAgICAgICBtb2RlbD0idGV4dC1lbWJlZGRpbmctYWRhLTAwMiIsCiAgICAgICAgICAgICAgaW5wdXQ9IlRoZSBmb29kIHdhcyBkZWxpY2lvdXMgYW5kIHRoZSB3YWl0ZXIuLi4iCiAgICAgICAgICAgICkKICAgICAgICAgIG5vZGUuanM6IHwKICAgICAgICAgICAgY29uc3QgeyBDb25maWd1cmF0aW9uLCBPcGVuQUlBcGkgfSA9IHJlcXVpcmUoIm9wZW5haSIpOwogICAgICAgICAgICBjb25zdCBjb25maWd1cmF0aW9uID0gbmV3IENvbmZpZ3VyYXRpb24oewogICAgICAgICAgICAgIGFwaUtleTogcHJvY2Vzcy5lbnYuT1BFTkFJX0FQSV9LRVksCiAgICAgICAgICAgIH0pOwogICAgICAgICAgICBjb25zdCBvcGVuYWkgPSBuZXcgT3BlbkFJQXBpKGNvbmZpZ3VyYXRpb24pOwogICAgICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IG9wZW5haS5jcmVhdGVFbWJlZGRpbmcoewogICAgICAgICAgICAgIG1vZGVsOiAidGV4dC1lbWJlZGRpbmctYWRhLTAwMiIsCiAgICAgICAgICAgICAgaW5wdXQ6ICJUaGUgZm9vZCB3YXMgZGVsaWNpb3VzIGFuZCB0aGUgd2FpdGVyLi4uIiwKICAgICAgICAgICAgfSk7CiAgICAgICAgcGFyYW1ldGVyczogfAogICAgICAgICAgewogICAgICAgICAgICAibW9kZWwiOiAidGV4dC1lbWJlZGRpbmctYWRhLTAwMiIsCiAgICAgICAgICAgICJpbnB1dCI6ICJUaGUgZm9vZCB3YXMgZGVsaWNpb3VzIGFuZCB0aGUgd2FpdGVyLi4uIgogICAgICAgICAgfQogICAgICAgIHJlc3BvbnNlOiB8CiAgICAgICAgICB7CiAgICAgICAgICAgICJvYmplY3QiOiAibGlzdCIsCiAgICAgICAgICAgICJkYXRhIjogWwogICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJvYmplY3QiOiAiZW1iZWRkaW5nIiwKICAgICAgICAgICAgICAgICJlbWJlZGRpbmciOiBbCiAgICAgICAgICAgICAgICAgIDAuMDAyMzA2NDI1NSwKICAgICAgICAgICAgICAgICAgLTAuMDA5MzI3MjkyLAogICAgICAgICAgICAgICAgICAuLi4uICgxNTM2IGZsb2F0cyB0b3RhbCBmb3IgYWRhLTAwMikKICAgICAgICAgICAgICAgICAgLTAuMDAyODg0MjIyMiwKICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICAiaW5kZXgiOiAwCiAgICAgICAgICAgICAgfQogICAgICAgICAgICBdLAogICAgICAgICAgICAibW9kZWwiOiAidGV4dC1lbWJlZGRpbmctYWRhLTAwMiIsCiAgICAgICAgICAgICJ1c2FnZSI6IHsKICAgICAgICAgICAgICAicHJvbXB0X3Rva2VucyI6IDgsCiAgICAgICAgICAgICAgInRvdGFsX3Rva2VucyI6IDgKICAgICAgICAgICAgfQogICAgICAgICAgfQoKICAvYXVkaW8vdHJhbnNjcmlwdGlvbnM6CiAgICBwb3N0OgogICAgICBvcGVyYXRpb25JZDogY3JlYXRlVHJhbnNjcmlwdGlvbgogICAgICB0YWdzOgogICAgICAgIC0gT3BlbkFJCiAgICAgIHN1bW1hcnk6IFRyYW5zY3JpYmVzIGF1ZGlvIGludG8gdGhlIGlucHV0IGxhbmd1YWdlLgogICAgICByZXF1ZXN0Qm9keToKICAgICAgICByZXF1aXJlZDogdHJ1ZQogICAgICAgIGNvbnRlbnQ6CiAgICAgICAgICBtdWx0aXBhcnQvZm9ybS1kYXRhOgogICAgICAgICAgICBzY2hlbWE6CiAgICAgICAgICAgICAgJHJlZjogJyMvY29tcG9uZW50cy9zY2hlbWFzL0NyZWF0ZVRyYW5zY3JpcHRpb25SZXF1ZXN0JwogICAgICByZXNwb25zZXM6CiAgICAgICAgIjIwMCI6CiAgICAgICAgICBkZXNjcmlwdGlvbjogT0sKICAgICAgICAgIGNvbnRlbnQ6CiAgICAgICAgICAgIGFwcGxpY2F0aW9uL2pzb246CiAgICAgICAgICAgICAgc2NoZW1hOgogICAgICAgICAgICAgICAgJHJlZjogJyMvY29tcG9uZW50cy9zY2hlbWFzL0NyZWF0ZVRyYW5zY3JpcHRpb25SZXNwb25zZScKICAgICAgeC1vYWlNZXRhOgogICAgICAgIG5hbWU6IENyZWF0ZSB0cmFuc2NyaXB0aW9uCiAgICAgICAgZ3JvdXA6IGF1ZGlvCiAgICAgICAgcGF0aDogY3JlYXRlCiAgICAgICAgYmV0YTogdHJ1ZQogICAgICAgIGV4YW1wbGVzOgogICAgICAgICAgY3VybDogfAogICAgICAgICAgICBjdXJsIGh0dHBzOi8vYXBpLm9wZW5haS5jb20vdjEvYXVkaW8vdHJhbnNjcmlwdGlvbnMgXAogICAgICAgICAgICAgIC1YIFBPU1QgXAogICAgICAgICAgICAgIC1IICdBdXRob3JpemF0aW9uOiBCZWFyZXIgVE9LRU4nIFwKICAgICAgICAgICAgICAtSCAnQ29udGVudC1UeXBlOiBtdWx0aXBhcnQvZm9ybS1kYXRhJyBcCiAgICAgICAgICAgICAgLUYgZmlsZT1AL3BhdGgvdG8vZmlsZS9hdWRpby5tcDMgXAogICAgICAgICAgICAgIC1GIG1vZGVsPXdoaXNwZXItMQogICAgICAgICAgcHl0aG9uOiB8CiAgICAgICAgICAgIGltcG9ydCBvcwogICAgICAgICAgICBpbXBvcnQgb3BlbmFpCiAgICAgICAgICAgIG9wZW5haS5hcGlfa2V5ID0gb3MuZ2V0ZW52KCJPUEVOQUlfQVBJX0tFWSIpCiAgICAgICAgICAgIGF1ZGlvX2ZpbGUgPSBvcGVuKCJhdWRpby5tcDMiLCAicmIiKQogICAgICAgICAgICB0cmFuc2NyaXB0ID0gb3BlbmFpLkF1ZGlvLnRyYW5zY3JpYmUoIndoaXNwZXItMSIsIGF1ZGlvX2ZpbGUpCiAgICAgICAgICBub2RlOiB8CiAgICAgICAgICAgIGNvbnN0IHsgQ29uZmlndXJhdGlvbiwgT3BlbkFJQXBpIH0gPSByZXF1aXJlKCJvcGVuYWkiKTsKICAgICAgICAgICAgY29uc3QgY29uZmlndXJhdGlvbiA9IG5ldyBDb25maWd1cmF0aW9uKHsKICAgICAgICAgICAgICBhcGlLZXk6IHByb2Nlc3MuZW52Lk9QRU5BSV9BUElfS0VZLAogICAgICAgICAgICB9KTsKICAgICAgICAgICAgY29uc3Qgb3BlbmFpID0gbmV3IE9wZW5BSUFwaShjb25maWd1cmF0aW9uKTsKICAgICAgICAgICAgY29uc3QgcmVzcCA9IGF3YWl0IG9wZW5haS5jcmVhdGVUcmFuc2NyaXB0aW9uKAogICAgICAgICAgICAgIGZzLmNyZWF0ZVJlYWRTdHJlYW0oImF1ZGlvLm1wMyIpLAogICAgICAgICAgICAgICJ3aGlzcGVyLTEiCiAgICAgICAgICAgICk7CiAgICAgICAgcGFyYW1ldGVyczogfAogICAgICAgICAgewogICAgICAgICAgICAiZmlsZSI6ICJhdWRpby5tcDMiLAogICAgICAgICAgICAibW9kZWwiOiAid2hpc3Blci0xIgogICAgICAgICAgfQogICAgICAgIHJlc3BvbnNlOiB8CiAgICAgICAgICB7CiAgICAgICAgICAgICJ0ZXh0IjogIkltYWdpbmUgdGhlIHdpbGRlc3QgaWRlYSB0aGF0IHlvdSd2ZSBldmVyIGhhZCwgYW5kIHlvdSdyZSBjdXJpb3VzIGFib3V0IGhvdyBpdCBtaWdodCBzY2FsZSB0byBzb21ldGhpbmcgdGhhdCdzIGEgMTAwLCBhIDEsMDAwIHRpbWVzIGJpZ2dlci4gVGhpcyBpcyBhIHBsYWNlIHdoZXJlIHlvdSBjYW4gZ2V0IHRvIGRvIHRoYXQuIgogICAgICAgICAgfQoKICAvYXVkaW8vdHJhbnNsYXRpb25zOgogICAgcG9zdDoKICAgICAgb3BlcmF0aW9uSWQ6IGNyZWF0ZVRyYW5zbGF0aW9uCiAgICAgIHRhZ3M6CiAgICAgICAgLSBPcGVuQUkKICAgICAgc3VtbWFyeTogVHJhbnNsYXRlcyBhdWRpbyBpbnRvIGludG8gRW5nbGlzaC4KICAgICAgcmVxdWVzdEJvZHk6CiAgICAgICAgcmVxdWlyZWQ6IHRydWUKICAgICAgICBjb250ZW50OgogICAgICAgICAgbXVsdGlwYXJ0L2Zvcm0tZGF0YToKICAgICAgICAgICAgc2NoZW1hOgogICAgICAgICAgICAgICRyZWY6ICcjL2NvbXBvbmVudHMvc2NoZW1hcy9DcmVhdGVUcmFuc2xhdGlvblJlcXVlc3QnCiAgICAgIHJlc3BvbnNlczoKICAgICAgICAiMjAwIjoKICAgICAgICAgIGRlc2NyaXB0aW9uOiBPSwogICAgICAgICAgY29udGVudDoKICAgICAgICAgICAgYXBwbGljYXRpb24vanNvbjoKICAgICAgICAgICAgICBzY2hlbWE6CiAgICAgICAgICAgICAgICAkcmVmOiAnIy9jb21wb25lbnRzL3NjaGVtYXMvQ3JlYXRlVHJhbnNsYXRpb25SZXNwb25zZScKICAgICAgeC1vYWlNZXRhOgogICAgICAgIG5hbWU6IENyZWF0ZSB0cmFuc2xhdGlvbgogICAgICAgIGdyb3VwOiBhdWRpbwogICAgICAgIHBhdGg6IGNyZWF0ZQogICAgICAgIGJldGE6IHRydWUKICAgICAgICBleGFtcGxlczoKICAgICAgICAgIGN1cmw6IHwKICAgICAgICAgICAgY3VybCBodHRwczovL2FwaS5vcGVuYWkuY29tL3YxL2F1ZGlvL3RyYW5zbGF0aW9ucyBcCiAgICAgICAgICAgICAgICAtWCBQT1NUIFwKICAgICAgICAgICAgICAgIC1IICdBdXRob3JpemF0aW9uOiBCZWFyZXIgVE9LRU4nIFwKICAgICAgICAgICAgICAgIC1IICdDb250ZW50LVR5cGU6IG11bHRpcGFydC9mb3JtLWRhdGEnIFwKICAgICAgICAgICAgICAgIC1GIGZpbGU9QC9wYXRoL3RvL2ZpbGUvZ2VybWFuLm00YSBcCiAgICAgICAgICAgICAgICAtRiBtb2RlbD13aGlzcGVyLTEKICAgICAgICAgIHB5dGhvbjogfAogICAgICAgICAgICBpbXBvcnQgb3MKICAgICAgICAgICAgaW1wb3J0IG9wZW5haQogICAgICAgICAgICBvcGVuYWkuYXBpX2tleSA9IG9zLmdldGVudigiT1BFTkFJX0FQSV9LRVkiKQogICAgICAgICAgICBhdWRpb19maWxlID0gb3BlbigiZ2VybWFuLm00YSIsICJyYiIpCiAgICAgICAgICAgIHRyYW5zY3JpcHQgPSBvcGVuYWkuQXVkaW8udHJhbnNsYXRlKCJ3aGlzcGVyLTEiLCBhdWRpb19maWxlKQogICAgICAgICAgbm9kZTogfAogICAgICAgICAgICBjb25zdCB7IENvbmZpZ3VyYXRpb24sIE9wZW5BSUFwaSB9ID0gcmVxdWlyZSgib3BlbmFpIik7CiAgICAgICAgICAgIGNvbnN0IGNvbmZpZ3VyYXRpb24gPSBuZXcgQ29uZmlndXJhdGlvbih7CiAgICAgICAgICAgICAgYXBpS2V5OiBwcm9jZXNzLmVudi5PUEVOQUlfQVBJX0tFWSwKICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIGNvbnN0IG9wZW5haSA9IG5ldyBPcGVuQUlBcGkoY29uZmlndXJhdGlvbik7CiAgICAgICAgICAgIGNvbnN0IHJlc3AgPSBhd2FpdCBvcGVuYWkuY3JlYXRlVHJhbnNsYXRpb24oCiAgICAgICAgICAgICAgZnMuY3JlYXRlUmVhZFN0cmVhbSgiYXVkaW8ubXAzIiksCiAgICAgICAgICAgICAgIndoaXNwZXItMSIKICAgICAgICAgICAgKTsKICAgICAgICBwYXJhbWV0ZXJzOiB8CiAgICAgICAgICB7CiAgICAgICAgICAgICJmaWxlIjogImdlcm1hbi5tNGEiLAogICAgICAgICAgICAibW9kZWwiOiAid2hpc3Blci0xIgogICAgICAgICAgfQogICAgICAgIHJlc3BvbnNlOiB8CiAgICAgICAgICB7CiAgICAgICAgICAgICJ0ZXh0IjogIkhlbGxvLCBteSBuYW1lIGlzIFdvbGZnYW5nIGFuZCBJIGNvbWUgZnJvbSBHZXJtYW55LiBXaGVyZSBhcmUgeW91IGhlYWRpbmcgdG9kYXk/IgogICAgICAgICAgfQoKICAvZW5naW5lcy97ZW5naW5lX2lkfS9zZWFyY2g6CiAgICBwb3N0OgogICAgICBvcGVyYXRpb25JZDogY3JlYXRlU2VhcmNoCiAgICAgIGRlcHJlY2F0ZWQ6IHRydWUKICAgICAgdGFnczoKICAgICAgLSBPcGVuQUkKICAgICAgc3VtbWFyeTogfAogICAgICAgIFRoZSBzZWFyY2ggZW5kcG9pbnQgY29tcHV0ZXMgc2ltaWxhcml0eSBzY29yZXMgYmV0d2VlbiBwcm92aWRlZCBxdWVyeSBhbmQgZG9jdW1lbnRzLiBEb2N1bWVudHMgY2FuIGJlIHBhc3NlZCBkaXJlY3RseSB0byB0aGUgQVBJIGlmIHRoZXJlIGFyZSBubyBtb3JlIHRoYW4gMjAwIG9mIHRoZW0uCgogICAgICAgIFRvIGdvIGJleW9uZCB0aGUgMjAwIGRvY3VtZW50IGxpbWl0LCBkb2N1bWVudHMgY2FuIGJlIHByb2Nlc3NlZCBvZmZsaW5lIGFuZCB0aGVuIHVzZWQgZm9yIGVmZmljaWVudCByZXRyaWV2YWwgYXQgcXVlcnkgdGltZS4gV2hlbiBgZmlsZWAgaXMgc2V0LCB0aGUgc2VhcmNoIGVuZHBvaW50IHNlYXJjaGVzIG92ZXIgYWxsIHRoZSBkb2N1bWVudHMgaW4gdGhlIGdpdmVuIGZpbGUgYW5kIHJldHVybnMgdXAgdG8gdGhlIGBtYXhfcmVyYW5rYCBudW1iZXIgb2YgZG9jdW1lbnRzLiBUaGVzZSBkb2N1bWVudHMgd2lsbCBiZSByZXR1cm5lZCBhbG9uZyB3aXRoIHRoZWlyIHNlYXJjaCBzY29yZXMuCgogICAgICAgIFRoZSBzaW1pbGFyaXR5IHNjb3JlIGlzIGEgcG9zaXRpdmUgc2NvcmUgdGhhdCB1c3VhbGx5IHJhbmdlcyBmcm9tIDAgdG8gMzAwIChidXQgY2FuIHNvbWV0aW1lcyBnbyBoaWdoZXIpLCB3aGVyZSBhIHNjb3JlIGFib3ZlIDIwMCB1c3VhbGx5IG1lYW5zIHRoZSBkb2N1bWVudCBpcyBzZW1hbnRpY2FsbHkgc2ltaWxhciB0byB0aGUgcXVlcnkuCiAgICAgIHBhcmFtZXRlcnM6CiAgICAgICAgLSBpbjogcGF0aAogICAgICAgICAgbmFtZTogZW5naW5lX2lkCiAgICAgICAgICByZXF1aXJlZDogdHJ1ZQogICAgICAgICAgc2NoZW1hOgogICAgICAgICAgICB0eXBlOiBzdHJpbmcKICAgICAgICAgICAgZXhhbXBsZTogZGF2aW5jaQogICAgICAgICAgZGVzY3JpcHRpb246IFRoZSBJRCBvZiB0aGUgZW5naW5lIHRvIHVzZSBmb3IgdGhpcyByZXF1ZXN0LiAgWW91IGNhbiBzZWxlY3Qgb25lIG9mIGBhZGFgLCBgYmFiYmFnZWAsIGBjdXJpZWAsIG9yIGBkYXZpbmNpYC4KICAgICAgcmVxdWVzdEJvZHk6CiAgICAgICAgcmVxdWlyZWQ6IHRydWUKICAgICAgICBjb250ZW50OgogICAgICAgICAgYXBwbGljYXRpb24vanNvbjoKICAgICAgICAgICAgc2NoZW1hOgogICAgICAgICAgICAgICRyZWY6ICcjL2NvbXBvbmVudHMvc2NoZW1hcy9DcmVhdGVTZWFyY2hSZXF1ZXN0JwogICAgICByZXNwb25zZXM6CiAgICAgICAgIjIwMCI6CiAgICAgICAgICBkZXNjcmlwdGlvbjogT0sKICAgICAgICAgIGNvbnRlbnQ6CiAgICAgICAgICAgIGFwcGxpY2F0aW9uL2pzb246CiAgICAgICAgICAgICAgc2NoZW1hOgogICAgICAgICAgICAgICAgJHJlZjogJyMvY29tcG9uZW50cy9zY2hlbWFzL0NyZWF0ZVNlYXJjaFJlc3BvbnNlJwogICAgICB4LW9haU1ldGE6CiAgICAgICAgbmFtZTogQ3JlYXRlIHNlYXJjaAogICAgICAgIGdyb3VwOiBzZWFyY2hlcwogICAgICAgIHBhdGg6IGNyZWF0ZQogICAgICAgIGV4YW1wbGVzOgogICAgICAgICAgY3VybDogfAogICAgICAgICAgICBjdXJsIGh0dHBzOi8vYXBpLm9wZW5haS5jb20vdjEvZW5naW5lcy9kYXZpbmNpL3NlYXJjaCBcCiAgICAgICAgICAgICAgLUggIkNvbnRlbnQtVHlwZTogYXBwbGljYXRpb24vanNvbiIgXAogICAgICAgICAgICAgIC1IICdBdXRob3JpemF0aW9uOiBCZWFyZXIgWU9VUl9BUElfS0VZJyBcCiAgICAgICAgICAgICAgLWQgJ3sKICAgICAgICAgICAgICAiZG9jdW1lbnRzIjogWyJXaGl0ZSBIb3VzZSIsICJob3NwaXRhbCIsICJzY2hvb2wiXSwKICAgICAgICAgICAgICAicXVlcnkiOiAidGhlIHByZXNpZGVudCIKICAgICAgICAgICAgfScKICAgICAgICAgIHB5dGhvbjogfAogICAgICAgICAgICBpbXBvcnQgb3MKICAgICAgICAgICAgaW1wb3J0IG9wZW5haQogICAgICAgICAgICBvcGVuYWkuYXBpX2tleSA9IG9zLmdldGVudigiT1BFTkFJX0FQSV9LRVkiKQogICAgICAgICAgICBvcGVuYWkuRW5naW5lKCJkYXZpbmNpIikuc2VhcmNoKAogICAgICAgICAgICAgIGRvY3VtZW50cz1bIldoaXRlIEhvdXNlIiwgImhvc3BpdGFsIiwgInNjaG9vbCJdLAogICAgICAgICAgICAgIHF1ZXJ5PSJ0aGUgcHJlc2lkZW50IgogICAgICAgICAgICApCiAgICAgICAgICBub2RlLmpzOiB8CiAgICAgICAgICAgIGNvbnN0IHsgQ29uZmlndXJhdGlvbiwgT3BlbkFJQXBpIH0gPSByZXF1aXJlKCJvcGVuYWkiKTsKICAgICAgICAgICAgY29uc3QgY29uZmlndXJhdGlvbiA9IG5ldyBDb25maWd1cmF0aW9uKHsKICAgICAgICAgICAgICBhcGlLZXk6IHByb2Nlc3MuZW52Lk9QRU5BSV9BUElfS0VZLAogICAgICAgICAgICB9KTsKICAgICAgICAgICAgY29uc3Qgb3BlbmFpID0gbmV3IE9wZW5BSUFwaShjb25maWd1cmF0aW9uKTsKICAgICAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBvcGVuYWkuY3JlYXRlU2VhcmNoKCJkYXZpbmNpIiwgewogICAgICAgICAgICAgIGRvY3VtZW50czogWyJXaGl0ZSBIb3VzZSIsICJob3NwaXRhbCIsICJzY2hvb2wiXSwKICAgICAgICAgICAgICBxdWVyeTogInRoZSBwcmVzaWRlbnQiLAogICAgICAgICAgICB9KTsKICAgICAgICBwYXJhbWV0ZXJzOiB8CiAgICAgICAgICB7CiAgICAgICAgICAgICJkb2N1bWVudHMiOiBbCiAgICAgICAgICAgICAgIldoaXRlIEhvdXNlIiwKICAgICAgICAgICAgICAiaG9zcGl0YWwiLAogICAgICAgICAgICAgICJzY2hvb2wiCiAgICAgICAgICAgIF0sCiAgICAgICAgICAgICJxdWVyeSI6ICJ0aGUgcHJlc2lkZW50IgogICAgICAgICAgfQogICAgICAgIHJlc3BvbnNlOiB8CiAgICAgICAgICB7CiAgICAgICAgICAgICJkYXRhIjogWwogICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJkb2N1bWVudCI6IDAsCiAgICAgICAgICAgICAgICAib2JqZWN0IjogInNlYXJjaF9yZXN1bHQiLAogICAgICAgICAgICAgICAgInNjb3JlIjogMjE1LjQxMgogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgImRvY3VtZW50IjogMSwKICAgICAgICAgICAgICAgICJvYmplY3QiOiAic2VhcmNoX3Jlc3VsdCIsCiAgICAgICAgICAgICAgICAic2NvcmUiOiA0MC4zMTYKICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJkb2N1bWVudCI6IDIsCiAgICAgICAgICAgICAgICAib2JqZWN0IjogInNlYXJjaF9yZXN1bHQiLAogICAgICAgICAgICAgICAgInNjb3JlIjogIDU1LjIyNgogICAgICAgICAgICAgIH0KICAgICAgICAgICAgXSwKICAgICAgICAgICAgIm9iamVjdCI6ICJsaXN0IgogICAgICAgICAgfQoKICAvZmlsZXM6CiAgICBnZXQ6CiAgICAgIG9wZXJhdGlvbklkOiBsaXN0RmlsZXMKICAgICAgdGFnczoKICAgICAgLSBPcGVuQUkKICAgICAgc3VtbWFyeTogUmV0dXJucyBhIGxpc3Qgb2YgZmlsZXMgdGhhdCBiZWxvbmcgdG8gdGhlIHVzZXIncyBvcmdhbml6YXRpb24uCiAgICAgIHJlc3BvbnNlczoKICAgICAgICAiMjAwIjoKICAgICAgICAgIGRlc2NyaXB0aW9uOiBPSwogICAgICAgICAgY29udGVudDoKICAgICAgICAgICAgYXBwbGljYXRpb24vanNvbjoKICAgICAgICAgICAgICBzY2hlbWE6CiAgICAgICAgICAgICAgICAkcmVmOiAnIy9jb21wb25lbnRzL3NjaGVtYXMvTGlzdEZpbGVzUmVzcG9uc2UnCiAgICAgIHgtb2FpTWV0YToKICAgICAgICBuYW1lOiBMaXN0IGZpbGVzCiAgICAgICAgZ3JvdXA6IGZpbGVzCiAgICAgICAgcGF0aDogbGlzdAogICAgICAgIGV4YW1wbGVzOgogICAgICAgICAgY3VybDogfAogICAgICAgICAgICBjdXJsIGh0dHBzOi8vYXBpLm9wZW5haS5jb20vdjEvZmlsZXMgXAogICAgICAgICAgICAgIC1IICdBdXRob3JpemF0aW9uOiBCZWFyZXIgWU9VUl9BUElfS0VZJwogICAgICAgICAgcHl0aG9uOiB8CiAgICAgICAgICAgIGltcG9ydCBvcwogICAgICAgICAgICBpbXBvcnQgb3BlbmFpCiAgICAgICAgICAgIG9wZW5haS5hcGlfa2V5ID0gb3MuZ2V0ZW52KCJPUEVOQUlfQVBJX0tFWSIpCiAgICAgICAgICAgIG9wZW5haS5GaWxlLmxpc3QoKQogICAgICAgICAgbm9kZS5qczogfAogICAgICAgICAgICBjb25zdCB7IENvbmZpZ3VyYXRpb24sIE9wZW5BSUFwaSB9ID0gcmVxdWlyZSgib3BlbmFpIik7CiAgICAgICAgICAgIGNvbnN0IGNvbmZpZ3VyYXRpb24gPSBuZXcgQ29uZmlndXJhdGlvbih7CiAgICAgICAgICAgICAgYXBpS2V5OiBwcm9jZXNzLmVudi5PUEVOQUlfQVBJX0tFWSwKICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIGNvbnN0IG9wZW5haSA9IG5ldyBPcGVuQUlBcGkoY29uZmlndXJhdGlvbik7CiAgICAgICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgb3BlbmFpLmxpc3RGaWxlcygpOwogICAgICAgIHJlc3BvbnNlOiB8CiAgICAgICAgICB7CiAgICAgICAgICAgICJkYXRhIjogWwogICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJpZCI6ICJmaWxlLWNjZERackMzaVpWTmlRVmVFQTZaNjZ3ZiIsCiAgICAgICAgICAgICAgICAib2JqZWN0IjogImZpbGUiLAogICAgICAgICAgICAgICAgImJ5dGVzIjogMTc1LAogICAgICAgICAgICAgICAgImNyZWF0ZWRfYXQiOiAxNjEzNjc3Mzg1LAogICAgICAgICAgICAgICAgImZpbGVuYW1lIjogInRyYWluLmpzb25sIiwKICAgICAgICAgICAgICAgICJwdXJwb3NlIjogInNlYXJjaCIKICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJpZCI6ICJmaWxlLVhqR3hTM0tURzB1Tm1OT0szNjJpSnVhMyIsCiAgICAgICAgICAgICAgICAib2JqZWN0IjogImZpbGUiLAogICAgICAgICAgICAgICAgImJ5dGVzIjogMTQwLAogICAgICAgICAgICAgICAgImNyZWF0ZWRfYXQiOiAxNjEzNzc5MTIxLAogICAgICAgICAgICAgICAgImZpbGVuYW1lIjogInB1cHB5Lmpzb25sIiwKICAgICAgICAgICAgICAgICJwdXJwb3NlIjogInNlYXJjaCIKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIF0sCiAgICAgICAgICAgICJvYmplY3QiOiAibGlzdCIKICAgICAgICAgIH0KICAgIHBvc3Q6CiAgICAgIG9wZXJhdGlvbklkOiBjcmVhdGVGaWxlCiAgICAgIHRhZ3M6CiAgICAgIC0gT3BlbkFJCiAgICAgIHN1bW1hcnk6IHwKICAgICAgICBVcGxvYWQgYSBmaWxlIHRoYXQgY29udGFpbnMgZG9jdW1lbnQocykgdG8gYmUgdXNlZCBhY3Jvc3MgdmFyaW91cyBlbmRwb2ludHMvZmVhdHVyZXMuIEN1cnJlbnRseSwgdGhlIHNpemUgb2YgYWxsIHRoZSBmaWxlcyB1cGxvYWRlZCBieSBvbmUgb3JnYW5pemF0aW9uIGNhbiBiZSB1cCB0byAxIEdCLiBQbGVhc2UgY29udGFjdCB1cyBpZiB5b3UgbmVlZCB0byBpbmNyZWFzZSB0aGUgc3RvcmFnZSBsaW1pdC4KCiAgICAgIHJlcXVlc3RCb2R5OgogICAgICAgIHJlcXVpcmVkOiB0cnVlCiAgICAgICAgY29udGVudDoKICAgICAgICAgIG11bHRpcGFydC9mb3JtLWRhdGE6CiAgICAgICAgICAgIHNjaGVtYToKICAgICAgICAgICAgICAkcmVmOiAnIy9jb21wb25lbnRzL3NjaGVtYXMvQ3JlYXRlRmlsZVJlcXVlc3QnCiAgICAgIHJlc3BvbnNlczoKICAgICAgICAiMjAwIjoKICAgICAgICAgIGRlc2NyaXB0aW9uOiBPSwogICAgICAgICAgY29udGVudDoKICAgICAgICAgICAgYXBwbGljYXRpb24vanNvbjoKICAgICAgICAgICAgICBzY2hlbWE6CiAgICAgICAgICAgICAgICAkcmVmOiAnIy9jb21wb25lbnRzL3NjaGVtYXMvT3BlbkFJRmlsZScKICAgICAgeC1vYWlNZXRhOgogICAgICAgIG5hbWU6IFVwbG9hZCBmaWxlCiAgICAgICAgZ3JvdXA6IGZpbGVzCiAgICAgICAgcGF0aDogdXBsb2FkCiAgICAgICAgZXhhbXBsZXM6CiAgICAgICAgICBjdXJsOiB8CiAgICAgICAgICAgIGN1cmwgaHR0cHM6Ly9hcGkub3BlbmFpLmNvbS92MS9maWxlcyBcCiAgICAgICAgICAgICAgLUggIkF1dGhvcml6YXRpb246IEJlYXJlciBZT1VSX0FQSV9LRVkiIFwKICAgICAgICAgICAgICAtRiBwdXJwb3NlPSJmaW5lLXR1bmUiIFwKICAgICAgICAgICAgICAtRiBmaWxlPSdAbXlkYXRhLmpzb25sJwoKICAgICAgICAgIHB5dGhvbjogfAogICAgICAgICAgICBpbXBvcnQgb3MKICAgICAgICAgICAgaW1wb3J0IG9wZW5haQogICAgICAgICAgICBvcGVuYWkuYXBpX2tleSA9IG9zLmdldGVudigiT1BFTkFJX0FQSV9LRVkiKQogICAgICAgICAgICBvcGVuYWkuRmlsZS5jcmVhdGUoCiAgICAgICAgICAgICAgZmlsZT1vcGVuKCJteWRhdGEuanNvbmwiLCAicmIiKSwKICAgICAgICAgICAgICBwdXJwb3NlPSdmaW5lLXR1bmUnCiAgICAgICAgICAgICkKICAgICAgICAgIG5vZGUuanM6IHwKICAgICAgICAgICAgY29uc3QgZnMgPSByZXF1aXJlKCJmcyIpOwogICAgICAgICAgICBjb25zdCB7IENvbmZpZ3VyYXRpb24sIE9wZW5BSUFwaSB9ID0gcmVxdWlyZSgib3BlbmFpIik7CiAgICAgICAgICAgIGNvbnN0IGNvbmZpZ3VyYXRpb24gPSBuZXcgQ29uZmlndXJhdGlvbih7CiAgICAgICAgICAgICAgYXBpS2V5OiBwcm9jZXNzLmVudi5PUEVOQUlfQVBJX0tFWSwKICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIGNvbnN0IG9wZW5haSA9IG5ldyBPcGVuQUlBcGkoY29uZmlndXJhdGlvbik7CiAgICAgICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgb3BlbmFpLmNyZWF0ZUZpbGUoCiAgICAgICAgICAgICAgZnMuY3JlYXRlUmVhZFN0cmVhbSgibXlkYXRhLmpzb25sIiksCiAgICAgICAgICAgICAgImZpbmUtdHVuZSIKICAgICAgICAgICAgKTsKICAgICAgICByZXNwb25zZTogfAogICAgICAgICAgewogICAgICAgICAgICAiaWQiOiAiZmlsZS1Yakd4UzNLVEcwdU5tTk9LMzYyaUp1YTMiLAogICAgICAgICAgICAib2JqZWN0IjogImZpbGUiLAogICAgICAgICAgICAiYnl0ZXMiOiAxNDAsCiAgICAgICAgICAgICJjcmVhdGVkX2F0IjogMTYxMzc3OTEyMSwKICAgICAgICAgICAgImZpbGVuYW1lIjogIm15ZGF0YS5qc29ubCIsCiAgICAgICAgICAgICJwdXJwb3NlIjogImZpbmUtdHVuZSIKICAgICAgICAgIH0KCiAgL2ZpbGVzL3tmaWxlX2lkfToKICAgIGRlbGV0ZToKICAgICAgb3BlcmF0aW9uSWQ6IGRlbGV0ZUZpbGUKICAgICAgdGFnczoKICAgICAgLSBPcGVuQUkKICAgICAgc3VtbWFyeTogRGVsZXRlIGEgZmlsZS4KICAgICAgcGFyYW1ldGVyczoKICAgICAgICAtIGluOiBwYXRoCiAgICAgICAgICBuYW1lOiBmaWxlX2lkCiAgICAgICAgICByZXF1aXJlZDogdHJ1ZQogICAgICAgICAgc2NoZW1hOgogICAgICAgICAgICB0eXBlOiBzdHJpbmcKICAgICAgICAgIGRlc2NyaXB0aW9uOiBUaGUgSUQgb2YgdGhlIGZpbGUgdG8gdXNlIGZvciB0aGlzIHJlcXVlc3QKICAgICAgcmVzcG9uc2VzOgogICAgICAgICIyMDAiOgogICAgICAgICAgZGVzY3JpcHRpb246IE9LCiAgICAgICAgICBjb250ZW50OgogICAgICAgICAgICBhcHBsaWNhdGlvbi9qc29uOgogICAgICAgICAgICAgIHNjaGVtYToKICAgICAgICAgICAgICAgICRyZWY6ICcjL2NvbXBvbmVudHMvc2NoZW1hcy9EZWxldGVGaWxlUmVzcG9uc2UnCiAgICAgIHgtb2FpTWV0YToKICAgICAgICBuYW1lOiBEZWxldGUgZmlsZQogICAgICAgIGdyb3VwOiBmaWxlcwogICAgICAgIHBhdGg6IGRlbGV0ZQogICAgICAgIGV4YW1wbGVzOgogICAgICAgICAgY3VybDogfAogICAgICAgICAgICBjdXJsIGh0dHBzOi8vYXBpLm9wZW5haS5jb20vdjEvZmlsZXMvZmlsZS1Yakd4UzNLVEcwdU5tTk9LMzYyaUp1YTMgXAogICAgICAgICAgICAgIC1YIERFTEVURSBcCiAgICAgICAgICAgICAgLUggJ0F1dGhvcml6YXRpb246IEJlYXJlciBZT1VSX0FQSV9LRVknCiAgICAgICAgICBweXRob246IHwKICAgICAgICAgICAgaW1wb3J0IG9zCiAgICAgICAgICAgIGltcG9ydCBvcGVuYWkKICAgICAgICAgICAgb3BlbmFpLmFwaV9rZXkgPSBvcy5nZXRlbnYoIk9QRU5BSV9BUElfS0VZIikKICAgICAgICAgICAgb3BlbmFpLkZpbGUuZGVsZXRlKCJmaWxlLVhqR3hTM0tURzB1Tm1OT0szNjJpSnVhMyIpCiAgICAgICAgICBub2RlLmpzOiB8CiAgICAgICAgICAgIGNvbnN0IHsgQ29uZmlndXJhdGlvbiwgT3BlbkFJQXBpIH0gPSByZXF1aXJlKCJvcGVuYWkiKTsKICAgICAgICAgICAgY29uc3QgY29uZmlndXJhdGlvbiA9IG5ldyBDb25maWd1cmF0aW9uKHsKICAgICAgICAgICAgICBhcGlLZXk6IHByb2Nlc3MuZW52Lk9QRU5BSV9BUElfS0VZLAogICAgICAgICAgICB9KTsKICAgICAgICAgICAgY29uc3Qgb3BlbmFpID0gbmV3IE9wZW5BSUFwaShjb25maWd1cmF0aW9uKTsKICAgICAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBvcGVuYWkuZGVsZXRlRmlsZSgiZmlsZS1Yakd4UzNLVEcwdU5tTk9LMzYyaUp1YTMiKTsKICAgICAgICByZXNwb25zZTogfAogICAgICAgICAgewogICAgICAgICAgICAiaWQiOiAiZmlsZS1Yakd4UzNLVEcwdU5tTk9LMzYyaUp1YTMiLAogICAgICAgICAgICAib2JqZWN0IjogImZpbGUiLAogICAgICAgICAgICAiZGVsZXRlZCI6IHRydWUKICAgICAgICAgIH0KICAgIGdldDoKICAgICAgb3BlcmF0aW9uSWQ6IHJldHJpZXZlRmlsZQogICAgICB0YWdzOgogICAgICAtIE9wZW5BSQogICAgICBzdW1tYXJ5OiBSZXR1cm5zIGluZm9ybWF0aW9uIGFib3V0IGEgc3BlY2lmaWMgZmlsZS4KICAgICAgcGFyYW1ldGVyczoKICAgICAgICAtIGluOiBwYXRoCiAgICAgICAgICBuYW1lOiBmaWxlX2lkCiAgICAgICAgICByZXF1aXJlZDogdHJ1ZQogICAgICAgICAgc2NoZW1hOgogICAgICAgICAgICB0eXBlOiBzdHJpbmcKICAgICAgICAgIGRlc2NyaXB0aW9uOiBUaGUgSUQgb2YgdGhlIGZpbGUgdG8gdXNlIGZvciB0aGlzIHJlcXVlc3QKICAgICAgcmVzcG9uc2VzOgogICAgICAgICIyMDAiOgogICAgICAgICAgZGVzY3JpcHRpb246IE9LCiAgICAgICAgICBjb250ZW50OgogICAgICAgICAgICBhcHBsaWNhdGlvbi9qc29uOgogICAgICAgICAgICAgIHNjaGVtYToKICAgICAgICAgICAgICAgICRyZWY6ICcjL2NvbXBvbmVudHMvc2NoZW1hcy9PcGVuQUlGaWxlJwogICAgICB4LW9haU1ldGE6CiAgICAgICAgbmFtZTogUmV0cmlldmUgZmlsZQogICAgICAgIGdyb3VwOiBmaWxlcwogICAgICAgIHBhdGg6IHJldHJpZXZlCiAgICAgICAgZXhhbXBsZXM6CiAgICAgICAgICBjdXJsOiB8CiAgICAgICAgICAgIGN1cmwgaHR0cHM6Ly9hcGkub3BlbmFpLmNvbS92MS9maWxlcy9maWxlLVhqR3hTM0tURzB1Tm1OT0szNjJpSnVhMyBcCiAgICAgICAgICAgICAgLUggJ0F1dGhvcml6YXRpb246IEJlYXJlciBZT1VSX0FQSV9LRVknCiAgICAgICAgICBweXRob246IHwKICAgICAgICAgICAgaW1wb3J0IG9zCiAgICAgICAgICAgIGltcG9ydCBvcGVuYWkKICAgICAgICAgICAgb3BlbmFpLmFwaV9rZXkgPSBvcy5nZXRlbnYoIk9QRU5BSV9BUElfS0VZIikKICAgICAgICAgICAgb3BlbmFpLkZpbGUucmV0cmlldmUoImZpbGUtWGpHeFMzS1RHMHVObU5PSzM2MmlKdWEzIikKICAgICAgICAgIG5vZGUuanM6IHwKICAgICAgICAgICAgY29uc3QgeyBDb25maWd1cmF0aW9uLCBPcGVuQUlBcGkgfSA9IHJlcXVpcmUoIm9wZW5haSIpOwogICAgICAgICAgICBjb25zdCBjb25maWd1cmF0aW9uID0gbmV3IENvbmZpZ3VyYXRpb24oewogICAgICAgICAgICAgIGFwaUtleTogcHJvY2Vzcy5lbnYuT1BFTkFJX0FQSV9LRVksCiAgICAgICAgICAgIH0pOwogICAgICAgICAgICBjb25zdCBvcGVuYWkgPSBuZXcgT3BlbkFJQXBpKGNvbmZpZ3VyYXRpb24pOwogICAgICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IG9wZW5haS5yZXRyaWV2ZUZpbGUoImZpbGUtWGpHeFMzS1RHMHVObU5PSzM2MmlKdWEzIik7CiAgICAgICAgcmVzcG9uc2U6IHwKICAgICAgICAgIHsKICAgICAgICAgICAgImlkIjogImZpbGUtWGpHeFMzS1RHMHVObU5PSzM2MmlKdWEzIiwKICAgICAgICAgICAgIm9iamVjdCI6ICJmaWxlIiwKICAgICAgICAgICAgImJ5dGVzIjogMTQwLAogICAgICAgICAgICAiY3JlYXRlZF9hdCI6IDE2MTM3Nzk2NTcsCiAgICAgICAgICAgICJmaWxlbmFtZSI6ICJteWRhdGEuanNvbmwiLAogICAgICAgICAgICAicHVycG9zZSI6ICJmaW5lLXR1bmUiCiAgICAgICAgICB9CgogIC9maWxlcy97ZmlsZV9pZH0vY29udGVudDoKICAgIGdldDoKICAgICAgb3BlcmF0aW9uSWQ6IGRvd25sb2FkRmlsZQogICAgICB0YWdzOgogICAgICAtIE9wZW5BSQogICAgICBzdW1tYXJ5OiBSZXR1cm5zIHRoZSBjb250ZW50cyBvZiB0aGUgc3BlY2lmaWVkIGZpbGUKICAgICAgcGFyYW1ldGVyczoKICAgICAgICAtIGluOiBwYXRoCiAgICAgICAgICBuYW1lOiBmaWxlX2lkCiAgICAgICAgICByZXF1aXJlZDogdHJ1ZQogICAgICAgICAgc2NoZW1hOgogICAgICAgICAgICB0eXBlOiBzdHJpbmcKICAgICAgICAgIGRlc2NyaXB0aW9uOiBUaGUgSUQgb2YgdGhlIGZpbGUgdG8gdXNlIGZvciB0aGlzIHJlcXVlc3QKICAgICAgcmVzcG9uc2VzOgogICAgICAgICIyMDAiOgogICAgICAgICAgZGVzY3JpcHRpb246IE9LCiAgICAgICAgICBjb250ZW50OgogICAgICAgICAgICBhcHBsaWNhdGlvbi9qc29uOgogICAgICAgICAgICAgIHNjaGVtYToKICAgICAgICAgICAgICAgIHR5cGU6IHN0cmluZwogICAgICB4LW9haU1ldGE6CiAgICAgICAgbmFtZTogUmV0cmlldmUgZmlsZSBjb250ZW50CiAgICAgICAgZ3JvdXA6IGZpbGVzCiAgICAgICAgcGF0aDogcmV0cmlldmUtY29udGVudAogICAgICAgIGV4YW1wbGVzOgogICAgICAgICAgY3VybDogfAogICAgICAgICAgICBjdXJsIGh0dHBzOi8vYXBpLm9wZW5haS5jb20vdjEvZmlsZXMvZmlsZS1Yakd4UzNLVEcwdU5tTk9LMzYyaUp1YTMvY29udGVudCBcCiAgICAgICAgICAgICAgLUggJ0F1dGhvcml6YXRpb246IEJlYXJlciBZT1VSX0FQSV9LRVknID4gZmlsZS5qc29ubAogICAgICAgICAgcHl0aG9uOiB8CiAgICAgICAgICAgIGltcG9ydCBvcwogICAgICAgICAgICBpbXBvcnQgb3BlbmFpCiAgICAgICAgICAgIG9wZW5haS5hcGlfa2V5ID0gb3MuZ2V0ZW52KCJPUEVOQUlfQVBJX0tFWSIpCiAgICAgICAgICAgIGNvbnRlbnQgPSBvcGVuYWkuRmlsZS5kb3dubG9hZCgiZmlsZS1Yakd4UzNLVEcwdU5tTk9LMzYyaUp1YTMiKQogICAgICAgICAgbm9kZS5qczogfAogICAgICAgICAgICBjb25zdCB7IENvbmZpZ3VyYXRpb24sIE9wZW5BSUFwaSB9ID0gcmVxdWlyZSgib3BlbmFpIik7CiAgICAgICAgICAgIGNvbnN0IGNvbmZpZ3VyYXRpb24gPSBuZXcgQ29uZmlndXJhdGlvbih7CiAgICAgICAgICAgICAgYXBpS2V5OiBwcm9jZXNzLmVudi5PUEVOQUlfQVBJX0tFWSwKICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIGNvbnN0IG9wZW5haSA9IG5ldyBPcGVuQUlBcGkoY29uZmlndXJhdGlvbik7CiAgICAgICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgb3BlbmFpLmRvd25sb2FkRmlsZSgiZmlsZS1Yakd4UzNLVEcwdU5tTk9LMzYyaUp1YTMiKTsKCiAgL2Fuc3dlcnM6CiAgICBwb3N0OgogICAgICBvcGVyYXRpb25JZDogY3JlYXRlQW5zd2VyCiAgICAgIGRlcHJlY2F0ZWQ6IHRydWUKICAgICAgdGFnczoKICAgICAgLSBPcGVuQUkKICAgICAgc3VtbWFyeTogfAogICAgICAgIEFuc3dlcnMgdGhlIHNwZWNpZmllZCBxdWVzdGlvbiB1c2luZyB0aGUgcHJvdmlkZWQgZG9jdW1lbnRzIGFuZCBleGFtcGxlcy4KCiAgICAgICAgVGhlIGVuZHBvaW50IGZpcnN0IFtzZWFyY2hlc10oL2RvY3MvYXBpLXJlZmVyZW5jZS9zZWFyY2hlcykgb3ZlciBwcm92aWRlZCBkb2N1bWVudHMgb3IgZmlsZXMgdG8gZmluZCByZWxldmFudCBjb250ZXh0LiBUaGUgcmVsZXZhbnQgY29udGV4dCBpcyBjb21iaW5lZCB3aXRoIHRoZSBwcm92aWRlZCBleGFtcGxlcyBhbmQgcXVlc3Rpb24gdG8gY3JlYXRlIHRoZSBwcm9tcHQgZm9yIFtjb21wbGV0aW9uXSgvZG9jcy9hcGktcmVmZXJlbmNlL2NvbXBsZXRpb25zKS4KICAgICAgcmVxdWVzdEJvZHk6CiAgICAgICAgcmVxdWlyZWQ6IHRydWUKICAgICAgICBjb250ZW50OgogICAgICAgICAgYXBwbGljYXRpb24vanNvbjoKICAgICAgICAgICAgc2NoZW1hOgogICAgICAgICAgICAgICRyZWY6ICcjL2NvbXBvbmVudHMvc2NoZW1hcy9DcmVhdGVBbnN3ZXJSZXF1ZXN0JwogICAgICByZXNwb25zZXM6CiAgICAgICAgIjIwMCI6CiAgICAgICAgICBkZXNjcmlwdGlvbjogT0sKICAgICAgICAgIGNvbnRlbnQ6CiAgICAgICAgICAgIGFwcGxpY2F0aW9uL2pzb246CiAgICAgICAgICAgICAgc2NoZW1hOgogICAgICAgICAgICAgICAgJHJlZjogJyMvY29tcG9uZW50cy9zY2hlbWFzL0NyZWF0ZUFuc3dlclJlc3BvbnNlJwogICAgICB4LW9haU1ldGE6CiAgICAgICAgbmFtZTogQ3JlYXRlIGFuc3dlcgogICAgICAgIGdyb3VwOiBhbnN3ZXJzCiAgICAgICAgcGF0aDogY3JlYXRlCiAgICAgICAgZXhhbXBsZXM6CiAgICAgICAgICBjdXJsOiB8CiAgICAgICAgICAgIGN1cmwgaHR0cHM6Ly9hcGkub3BlbmFpLmNvbS92MS9hbnN3ZXJzIFwKICAgICAgICAgICAgICAtWCBQT1NUIFwKICAgICAgICAgICAgICAtSCAiQXV0aG9yaXphdGlvbjogQmVhcmVyIFlPVVJfQVBJX0tFWSIgXAogICAgICAgICAgICAgIC1IICdDb250ZW50LVR5cGU6IGFwcGxpY2F0aW9uL2pzb24nIFwKICAgICAgICAgICAgICAtZCAnewogICAgICAgICAgICAgICAgImRvY3VtZW50cyI6IFsiUHVwcHkgQSBpcyBoYXBweS4iLCAiUHVwcHkgQiBpcyBzYWQuIl0sCiAgICAgICAgICAgICAgICAicXVlc3Rpb24iOiAid2hpY2ggcHVwcHkgaXMgaGFwcHk/IiwKICAgICAgICAgICAgICAgICJzZWFyY2hfbW9kZWwiOiAiYWRhIiwKICAgICAgICAgICAgICAgICJtb2RlbCI6ICJjdXJpZSIsCiAgICAgICAgICAgICAgICAiZXhhbXBsZXNfY29udGV4dCI6ICJJbiAyMDE3LCBVLlMuIGxpZmUgZXhwZWN0YW5jeSB3YXMgNzguNiB5ZWFycy4iLAogICAgICAgICAgICAgICAgImV4YW1wbGVzIjogW1siV2hhdCBpcyBodW1hbiBsaWZlIGV4cGVjdGFuY3kgaW4gdGhlIFVuaXRlZCBTdGF0ZXM/IiwiNzggeWVhcnMuIl1dLAogICAgICAgICAgICAgICAgIm1heF90b2tlbnMiOiA1LAogICAgICAgICAgICAgICAgInN0b3AiOiBbIlxuIiwgIjx8ZW5kb2Z0ZXh0fD4iXQogICAgICAgICAgICAgIH0nCgogICAgICAgICAgcHl0aG9uOiB8CiAgICAgICAgICAgIGltcG9ydCBvcwogICAgICAgICAgICBpbXBvcnQgb3BlbmFpCiAgICAgICAgICAgIG9wZW5haS5hcGlfa2V5ID0gb3MuZ2V0ZW52KCJPUEVOQUlfQVBJX0tFWSIpCiAgICAgICAgICAgIG9wZW5haS5BbnN3ZXIuY3JlYXRlKAogICAgICAgICAgICAgIHNlYXJjaF9tb2RlbD0iYWRhIiwKICAgICAgICAgICAgICBtb2RlbD0iY3VyaWUiLAogICAgICAgICAgICAgIHF1ZXN0aW9uPSJ3aGljaCBwdXBweSBpcyBoYXBweT8iLAogICAgICAgICAgICAgIGRvY3VtZW50cz1bIlB1cHB5IEEgaXMgaGFwcHkuIiwgIlB1cHB5IEIgaXMgc2FkLiJdLAogICAgICAgICAgICAgIGV4YW1wbGVzX2NvbnRleHQ9IkluIDIwMTcsIFUuUy4gbGlmZSBleHBlY3RhbmN5IHdhcyA3OC42IHllYXJzLiIsCiAgICAgICAgICAgICAgZXhhbXBsZXM9W1siV2hhdCBpcyBodW1hbiBsaWZlIGV4cGVjdGFuY3kgaW4gdGhlIFVuaXRlZCBTdGF0ZXM/IiwiNzggeWVhcnMuIl1dLAogICAgICAgICAgICAgIG1heF90b2tlbnM9NSwKICAgICAgICAgICAgICBzdG9wPVsiXG4iLCAiPHxlbmRvZnRleHR8PiJdLAogICAgICAgICAgICApCiAgICAgICAgICBub2RlLmpzOiB8CiAgICAgICAgICAgIGNvbnN0IHsgQ29uZmlndXJhdGlvbiwgT3BlbkFJQXBpIH0gPSByZXF1aXJlKCJvcGVuYWkiKTsKICAgICAgICAgICAgY29uc3QgY29uZmlndXJhdGlvbiA9IG5ldyBDb25maWd1cmF0aW9uKHsKICAgICAgICAgICAgICBhcGlLZXk6IHByb2Nlc3MuZW52Lk9QRU5BSV9BUElfS0VZLAogICAgICAgICAgICB9KTsKICAgICAgICAgICAgY29uc3Qgb3BlbmFpID0gbmV3IE9wZW5BSUFwaShjb25maWd1cmF0aW9uKTsKICAgICAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBvcGVuYWkuY3JlYXRlQW5zd2VyKHsKICAgICAgICAgICAgICBzZWFyY2hfbW9kZWw6ICJhZGEiLAogICAgICAgICAgICAgIG1vZGVsOiAiY3VyaWUiLAogICAgICAgICAgICAgIHF1ZXN0aW9uOiAid2hpY2ggcHVwcHkgaXMgaGFwcHk/IiwKICAgICAgICAgICAgICBkb2N1bWVudHM6IFsiUHVwcHkgQSBpcyBoYXBweS4iLCAiUHVwcHkgQiBpcyBzYWQuIl0sCiAgICAgICAgICAgICAgZXhhbXBsZXNfY29udGV4dDogIkluIDIwMTcsIFUuUy4gbGlmZSBleHBlY3RhbmN5IHdhcyA3OC42IHllYXJzLiIsCiAgICAgICAgICAgICAgZXhhbXBsZXM6IFtbIldoYXQgaXMgaHVtYW4gbGlmZSBleHBlY3RhbmN5IGluIHRoZSBVbml0ZWQgU3RhdGVzPyIsIjc4IHllYXJzLiJdXSwKICAgICAgICAgICAgICBtYXhfdG9rZW5zOiA1LAogICAgICAgICAgICAgIHN0b3A6IFsiXG4iLCAiPHxlbmRvZnRleHR8PiJdLAogICAgICAgICAgICB9KTsKICAgICAgICBwYXJhbWV0ZXJzOiB8CiAgICAgICAgICB7CiAgICAgICAgICAgICJkb2N1bWVudHMiOiBbIlB1cHB5IEEgaXMgaGFwcHkuIiwgIlB1cHB5IEIgaXMgc2FkLiJdLAogICAgICAgICAgICAicXVlc3Rpb24iOiAid2hpY2ggcHVwcHkgaXMgaGFwcHk/IiwKICAgICAgICAgICAgInNlYXJjaF9tb2RlbCI6ICJhZGEiLAogICAgICAgICAgICAibW9kZWwiOiAiY3VyaWUiLAogICAgICAgICAgICAiZXhhbXBsZXNfY29udGV4dCI6ICJJbiAyMDE3LCBVLlMuIGxpZmUgZXhwZWN0YW5jeSB3YXMgNzguNiB5ZWFycy4iLAogICAgICAgICAgICAiZXhhbXBsZXMiOiBbWyJXaGF0IGlzIGh1bWFuIGxpZmUgZXhwZWN0YW5jeSBpbiB0aGUgVW5pdGVkIFN0YXRlcz8iLCI3OCB5ZWFycy4iXV0sCiAgICAgICAgICAgICJtYXhfdG9rZW5zIjogNSwKICAgICAgICAgICAgInN0b3AiOiBbIlxuIiwgIjx8ZW5kb2Z0ZXh0fD4iXQogICAgICAgICAgfQogICAgICAgIHJlc3BvbnNlOiB8CiAgICAgICAgICB7CiAgICAgICAgICAgICJhbnN3ZXJzIjogWwogICAgICAgICAgICAgICJwdXBweSBBLiIKICAgICAgICAgICAgXSwKICAgICAgICAgICAgImNvbXBsZXRpb24iOiAiY21wbC0yZXVWYTFrbUtVdUxwU1g2MDBNNDExMjVNbzlOSSIsCiAgICAgICAgICAgICJtb2RlbCI6ICJjdXJpZToyMDIwLTA1LTAzIiwKICAgICAgICAgICAgIm9iamVjdCI6ICJhbnN3ZXIiLAogICAgICAgICAgICAic2VhcmNoX21vZGVsIjogImFkYSIsCiAgICAgICAgICAgICJzZWxlY3RlZF9kb2N1bWVudHMiOiBbCiAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgImRvY3VtZW50IjogMCwKICAgICAgICAgICAgICAgICJ0ZXh0IjogIlB1cHB5IEEgaXMgaGFwcHkuICIKICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJkb2N1bWVudCI6IDEsCiAgICAgICAgICAgICAgICAidGV4dCI6ICJQdXBweSBCIGlzIHNhZC4gIgogICAgICAgICAgICAgIH0KICAgICAgICAgICAgXQogICAgICAgICAgfQoKICAvY2xhc3NpZmljYXRpb25zOgogICAgcG9zdDoKICAgICAgb3BlcmF0aW9uSWQ6IGNyZWF0ZUNsYXNzaWZpY2F0aW9uCiAgICAgIGRlcHJlY2F0ZWQ6IHRydWUKICAgICAgdGFnczoKICAgICAgLSBPcGVuQUkKICAgICAgc3VtbWFyeTogfAogICAgICAgIENsYXNzaWZpZXMgdGhlIHNwZWNpZmllZCBgcXVlcnlgIHVzaW5nIHByb3ZpZGVkIGV4YW1wbGVzLgoKICAgICAgICBUaGUgZW5kcG9pbnQgZmlyc3QgW3NlYXJjaGVzXSgvZG9jcy9hcGktcmVmZXJlbmNlL3NlYXJjaGVzKSBvdmVyIHRoZSBsYWJlbGVkIGV4YW1wbGVzCiAgICAgICAgdG8gc2VsZWN0IHRoZSBvbmVzIG1vc3QgcmVsZXZhbnQgZm9yIHRoZSBwYXJ0aWN1bGFyIHF1ZXJ5LiBUaGVuLCB0aGUgcmVsZXZhbnQgZXhhbXBsZXMKICAgICAgICBhcmUgY29tYmluZWQgd2l0aCB0aGUgcXVlcnkgdG8gY29uc3RydWN0IGEgcHJvbXB0IHRvIHByb2R1Y2UgdGhlIGZpbmFsIGxhYmVsIHZpYSB0aGUKICAgICAgICBbY29tcGxldGlvbnNdKC9kb2NzL2FwaS1yZWZlcmVuY2UvY29tcGxldGlvbnMpIGVuZHBvaW50LgoKICAgICAgICBMYWJlbGVkIGV4YW1wbGVzIGNhbiBiZSBwcm92aWRlZCB2aWEgYW4gdXBsb2FkZWQgYGZpbGVgLCBvciBleHBsaWNpdGx5IGxpc3RlZCBpbiB0aGUKICAgICAgICByZXF1ZXN0IHVzaW5nIHRoZSBgZXhhbXBsZXNgIHBhcmFtZXRlciBmb3IgcXVpY2sgdGVzdHMgYW5kIHNtYWxsIHNjYWxlIHVzZSBjYXNlcy4KICAgICAgcmVxdWVzdEJvZHk6CiAgICAgICAgcmVxdWlyZWQ6IHRydWUKICAgICAgICBjb250ZW50OgogICAgICAgICAgYXBwbGljYXRpb24vanNvbjoKICAgICAgICAgICAgc2NoZW1hOgogICAgICAgICAgICAgICRyZWY6ICcjL2NvbXBvbmVudHMvc2NoZW1hcy9DcmVhdGVDbGFzc2lmaWNhdGlvblJlcXVlc3QnCiAgICAgIHJlc3BvbnNlczoKICAgICAgICAiMjAwIjoKICAgICAgICAgIGRlc2NyaXB0aW9uOiBPSwogICAgICAgICAgY29udGVudDoKICAgICAgICAgICAgYXBwbGljYXRpb24vanNvbjoKICAgICAgICAgICAgICBzY2hlbWE6CiAgICAgICAgICAgICAgICAkcmVmOiAnIy9jb21wb25lbnRzL3NjaGVtYXMvQ3JlYXRlQ2xhc3NpZmljYXRpb25SZXNwb25zZScKICAgICAgeC1vYWlNZXRhOgogICAgICAgIG5hbWU6IENyZWF0ZSBjbGFzc2lmaWNhdGlvbgogICAgICAgIGdyb3VwOiBjbGFzc2lmaWNhdGlvbnMKICAgICAgICBwYXRoOiBjcmVhdGUKICAgICAgICBleGFtcGxlczoKICAgICAgICAgIGN1cmw6IHwKICAgICAgICAgICAgY3VybCBodHRwczovL2FwaS5vcGVuYWkuY29tL3YxL2NsYXNzaWZpY2F0aW9ucyBcCiAgICAgICAgICAgICAgLVggUE9TVCBcCiAgICAgICAgICAgICAgLUggIkF1dGhvcml6YXRpb246IEJlYXJlciBZT1VSX0FQSV9LRVkiIFwKICAgICAgICAgICAgICAtSCAnQ29udGVudC1UeXBlOiBhcHBsaWNhdGlvbi9qc29uJyBcCiAgICAgICAgICAgICAgLWQgJ3sKICAgICAgICAgICAgICAgICJleGFtcGxlcyI6IFsKICAgICAgICAgICAgICAgICAgWyJBIGhhcHB5IG1vbWVudCIsICJQb3NpdGl2ZSJdLAogICAgICAgICAgICAgICAgICBbIkkgYW0gc2FkLiIsICJOZWdhdGl2ZSJdLAogICAgICAgICAgICAgICAgICBbIkkgYW0gZmVlbGluZyBhd2Vzb21lIiwgIlBvc2l0aXZlIl1dLAogICAgICAgICAgICAgICAgInF1ZXJ5IjogIkl0IGlzIGEgcmFpbmluZyBkYXkgOigiLAogICAgICAgICAgICAgICAgInNlYXJjaF9tb2RlbCI6ICJhZGEiLAogICAgICAgICAgICAgICAgIm1vZGVsIjogImN1cmllIiwKICAgICAgICAgICAgICAgICJsYWJlbHMiOlsiUG9zaXRpdmUiLCAiTmVnYXRpdmUiLCAiTmV1dHJhbCJdCiAgICAgICAgICAgICAgfScKICAgICAgICAgIHB5dGhvbjogfAogICAgICAgICAgICBpbXBvcnQgb3MKICAgICAgICAgICAgaW1wb3J0IG9wZW5haQogICAgICAgICAgICBvcGVuYWkuYXBpX2tleSA9IG9zLmdldGVudigiT1BFTkFJX0FQSV9LRVkiKQogICAgICAgICAgICBvcGVuYWkuQ2xhc3NpZmljYXRpb24uY3JlYXRlKAogICAgICAgICAgICAgIHNlYXJjaF9tb2RlbD0iYWRhIiwKICAgICAgICAgICAgICBtb2RlbD0iY3VyaWUiLAogICAgICAgICAgICAgIGV4YW1wbGVzPVsKICAgICAgICAgICAgICAgIFsiQSBoYXBweSBtb21lbnQiLCAiUG9zaXRpdmUiXSwKICAgICAgICAgICAgICAgIFsiSSBhbSBzYWQuIiwgIk5lZ2F0aXZlIl0sCiAgICAgICAgICAgICAgICBbIkkgYW0gZmVlbGluZyBhd2Vzb21lIiwgIlBvc2l0aXZlIl0KICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgIHF1ZXJ5PSJJdCBpcyBhIHJhaW5pbmcgZGF5IDooIiwKICAgICAgICAgICAgICBsYWJlbHM9WyJQb3NpdGl2ZSIsICJOZWdhdGl2ZSIsICJOZXV0cmFsIl0sCiAgICAgICAgICAgICkKICAgICAgICAgIG5vZGUuanM6IHwKICAgICAgICAgICAgY29uc3QgeyBDb25maWd1cmF0aW9uLCBPcGVuQUlBcGkgfSA9IHJlcXVpcmUoIm9wZW5haSIpOwogICAgICAgICAgICBjb25zdCBjb25maWd1cmF0aW9uID0gbmV3IENvbmZpZ3VyYXRpb24oewogICAgICAgICAgICAgIGFwaUtleTogcHJvY2Vzcy5lbnYuT1BFTkFJX0FQSV9LRVksCiAgICAgICAgICAgIH0pOwogICAgICAgICAgICBjb25zdCBvcGVuYWkgPSBuZXcgT3BlbkFJQXBpKGNvbmZpZ3VyYXRpb24pOwogICAgICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IG9wZW5haS5jcmVhdGVDbGFzc2lmaWNhdGlvbih7CiAgICAgICAgICAgICAgc2VhcmNoX21vZGVsOiAiYWRhIiwKICAgICAgICAgICAgICBtb2RlbDogImN1cmllIiwKICAgICAgICAgICAgICBleGFtcGxlczogWwogICAgICAgICAgICAgICAgWyJBIGhhcHB5IG1vbWVudCIsICJQb3NpdGl2ZSJdLAogICAgICAgICAgICAgICAgWyJJIGFtIHNhZC4iLCAiTmVnYXRpdmUiXSwKICAgICAgICAgICAgICAgIFsiSSBhbSBmZWVsaW5nIGF3ZXNvbWUiLCAiUG9zaXRpdmUiXQogICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgcXVlcnk6Ikl0IGlzIGEgcmFpbmluZyBkYXkgOigiLAogICAgICAgICAgICAgIGxhYmVsczogWyJQb3NpdGl2ZSIsICJOZWdhdGl2ZSIsICJOZXV0cmFsIl0sCiAgICAgICAgICAgIH0pOwogICAgICAgIHBhcmFtZXRlcnM6IHwKICAgICAgICAgIHsKICAgICAgICAgICAgImV4YW1wbGVzIjogWwogICAgICAgICAgICAgIFsiQSBoYXBweSBtb21lbnQiLCAiUG9zaXRpdmUiXSwKICAgICAgICAgICAgICBbIkkgYW0gc2FkLiIsICJOZWdhdGl2ZSJdLAogICAgICAgICAgICAgIFsiSSBhbSBmZWVsaW5nIGF3ZXNvbWUiLCAiUG9zaXRpdmUiXQogICAgICAgICAgICBdLAogICAgICAgICAgICAibGFiZWxzIjogWyJQb3NpdGl2ZSIsICJOZWdhdGl2ZSIsICJOZXV0cmFsIl0sCiAgICAgICAgICAgICJxdWVyeSI6ICJJdCBpcyBhIHJhaW5pbmcgZGF5IDooIiwKICAgICAgICAgICAgInNlYXJjaF9tb2RlbCI6ICJhZGEiLAogICAgICAgICAgICAibW9kZWwiOiAiY3VyaWUiCiAgICAgICAgICB9CiAgICAgICAgcmVzcG9uc2U6IHwKICAgICAgICAgIHsKICAgICAgICAgICAgImNvbXBsZXRpb24iOiAiY21wbC0yZXVON2xVVlowZDRSS2JRcVJWNzlJaWlFNk0xZiIsCiAgICAgICAgICAgICJsYWJlbCI6ICJOZWdhdGl2ZSIsCiAgICAgICAgICAgICJtb2RlbCI6ICJjdXJpZToyMDIwLTA1LTAzIiwKICAgICAgICAgICAgIm9iamVjdCI6ICJjbGFzc2lmaWNhdGlvbiIsCiAgICAgICAgICAgICJzZWFyY2hfbW9kZWwiOiAiYWRhIiwKICAgICAgICAgICAgInNlbGVjdGVkX2V4YW1wbGVzIjogWwogICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJkb2N1bWVudCI6IDEsCiAgICAgICAgICAgICAgICAibGFiZWwiOiAiTmVnYXRpdmUiLAogICAgICAgICAgICAgICAgInRleHQiOiAiSSBhbSBzYWQuIgogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgImRvY3VtZW50IjogMCwKICAgICAgICAgICAgICAgICJsYWJlbCI6ICJQb3NpdGl2ZSIsCiAgICAgICAgICAgICAgICAidGV4dCI6ICJBIGhhcHB5IG1vbWVudCIKICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJkb2N1bWVudCI6IDIsCiAgICAgICAgICAgICAgICAibGFiZWwiOiAiUG9zaXRpdmUiLAogICAgICAgICAgICAgICAgInRleHQiOiAiSSBhbSBmZWVsaW5nIGF3ZXNvbWUiCiAgICAgICAgICAgICAgfQogICAgICAgICAgICBdCiAgICAgICAgICB9CgogIC9maW5lLXR1bmVzOgogICAgcG9zdDoKICAgICAgb3BlcmF0aW9uSWQ6IGNyZWF0ZUZpbmVUdW5lCiAgICAgIHRhZ3M6CiAgICAgIC0gT3BlbkFJCiAgICAgIHN1bW1hcnk6IHwKICAgICAgICBDcmVhdGVzIGEgam9iIHRoYXQgZmluZS10dW5lcyBhIHNwZWNpZmllZCBtb2RlbCBmcm9tIGEgZ2l2ZW4gZGF0YXNldC4KCiAgICAgICAgUmVzcG9uc2UgaW5jbHVkZXMgZGV0YWlscyBvZiB0aGUgZW5xdWV1ZWQgam9iIGluY2x1ZGluZyBqb2Igc3RhdHVzIGFuZCB0aGUgbmFtZSBvZiB0aGUgZmluZS10dW5lZCBtb2RlbHMgb25jZSBjb21wbGV0ZS4KCiAgICAgICAgW0xlYXJuIG1vcmUgYWJvdXQgRmluZS10dW5pbmddKC9kb2NzL2d1aWRlcy9maW5lLXR1bmluZykKICAgICAgcmVxdWVzdEJvZHk6CiAgICAgICAgcmVxdWlyZWQ6IHRydWUKICAgICAgICBjb250ZW50OgogICAgICAgICAgYXBwbGljYXRpb24vanNvbjoKICAgICAgICAgICAgc2NoZW1hOgogICAgICAgICAgICAgICRyZWY6ICcjL2NvbXBvbmVudHMvc2NoZW1hcy9DcmVhdGVGaW5lVHVuZVJlcXVlc3QnCiAgICAgIHJlc3BvbnNlczoKICAgICAgICAiMjAwIjoKICAgICAgICAgIGRlc2NyaXB0aW9uOiBPSwogICAgICAgICAgY29udGVudDoKICAgICAgICAgICAgYXBwbGljYXRpb24vanNvbjoKICAgICAgICAgICAgICBzY2hlbWE6CiAgICAgICAgICAgICAgICAkcmVmOiAnIy9jb21wb25lbnRzL3NjaGVtYXMvRmluZVR1bmUnCiAgICAgIHgtb2FpTWV0YToKICAgICAgICBuYW1lOiBDcmVhdGUgZmluZS10dW5lCiAgICAgICAgZ3JvdXA6IGZpbmUtdHVuZXMKICAgICAgICBwYXRoOiBjcmVhdGUKICAgICAgICBleGFtcGxlczoKICAgICAgICAgIGN1cmw6IHwKICAgICAgICAgICAgY3VybCBodHRwczovL2FwaS5vcGVuYWkuY29tL3YxL2ZpbmUtdHVuZXMgXAogICAgICAgICAgICAgIC1YIFBPU1QgXAogICAgICAgICAgICAgIC1IICJDb250ZW50LVR5cGU6IGFwcGxpY2F0aW9uL2pzb24iIFwKICAgICAgICAgICAgICAtSCAiQXV0aG9yaXphdGlvbjogQmVhcmVyIFlPVVJfQVBJX0tFWSIgXAogICAgICAgICAgICAgIC1kICd7CiAgICAgICAgICAgICAgInRyYWluaW5nX2ZpbGUiOiAiZmlsZS1YR2ludWpibEhQd0dMU3p0ejhjUFM4WFkiCiAgICAgICAgICAgIH0nCiAgICAgICAgICBweXRob246IHwKICAgICAgICAgICAgaW1wb3J0IG9zCiAgICAgICAgICAgIGltcG9ydCBvcGVuYWkKICAgICAgICAgICAgb3BlbmFpLmFwaV9rZXkgPSBvcy5nZXRlbnYoIk9QRU5BSV9BUElfS0VZIikKICAgICAgICAgICAgb3BlbmFpLkZpbmVUdW5lLmNyZWF0ZSh0cmFpbmluZ19maWxlPSJmaWxlLVhHaW51amJsSFB3R0xTenR6OGNQUzhYWSIpCiAgICAgICAgICBub2RlLmpzOiB8CiAgICAgICAgICAgIGNvbnN0IHsgQ29uZmlndXJhdGlvbiwgT3BlbkFJQXBpIH0gPSByZXF1aXJlKCJvcGVuYWkiKTsKICAgICAgICAgICAgY29uc3QgY29uZmlndXJhdGlvbiA9IG5ldyBDb25maWd1cmF0aW9uKHsKICAgICAgICAgICAgICBhcGlLZXk6IHByb2Nlc3MuZW52Lk9QRU5BSV9BUElfS0VZLAogICAgICAgICAgICB9KTsKICAgICAgICAgICAgY29uc3Qgb3BlbmFpID0gbmV3IE9wZW5BSUFwaShjb25maWd1cmF0aW9uKTsKICAgICAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBvcGVuYWkuY3JlYXRlRmluZVR1bmUoewogICAgICAgICAgICAgIHRyYWluaW5nX2ZpbGU6ICJmaWxlLVhHaW51amJsSFB3R0xTenR6OGNQUzhYWSIsCiAgICAgICAgICAgIH0pOwogICAgICAgIHJlc3BvbnNlOiB8CiAgICAgICAgICB7CiAgICAgICAgICAgICJpZCI6ICJmdC1BRjFXb1JxZDNhSkFIc3FjOU5ZN2lMOEYiLAogICAgICAgICAgICAib2JqZWN0IjogImZpbmUtdHVuZSIsCiAgICAgICAgICAgICJtb2RlbCI6ICJjdXJpZSIsCiAgICAgICAgICAgICJjcmVhdGVkX2F0IjogMTYxNDgwNzM1MiwKICAgICAgICAgICAgImV2ZW50cyI6IFsKICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAib2JqZWN0IjogImZpbmUtdHVuZS1ldmVudCIsCiAgICAgICAgICAgICAgICAiY3JlYXRlZF9hdCI6IDE2MTQ4MDczNTIsCiAgICAgICAgICAgICAgICAibGV2ZWwiOiAiaW5mbyIsCiAgICAgICAgICAgICAgICAibWVzc2FnZSI6ICJKb2IgZW5xdWV1ZWQuIFdhaXRpbmcgZm9yIGpvYnMgYWhlYWQgdG8gY29tcGxldGUuIFF1ZXVlIG51bWJlcjogMC4iCiAgICAgICAgICAgICAgfQogICAgICAgICAgICBdLAogICAgICAgICAgICAiZmluZV90dW5lZF9tb2RlbCI6IG51bGwsCiAgICAgICAgICAgICJoeXBlcnBhcmFtcyI6IHsKICAgICAgICAgICAgICAiYmF0Y2hfc2l6ZSI6IDQsCiAgICAgICAgICAgICAgImxlYXJuaW5nX3JhdGVfbXVsdGlwbGllciI6IDAuMSwKICAgICAgICAgICAgICAibl9lcG9jaHMiOiA0LAogICAgICAgICAgICAgICJwcm9tcHRfbG9zc193ZWlnaHQiOiAwLjEsCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgICJvcmdhbml6YXRpb25faWQiOiAib3JnLS4uLiIsCiAgICAgICAgICAgICJyZXN1bHRfZmlsZXMiOiBbXSwKICAgICAgICAgICAgInN0YXR1cyI6ICJwZW5kaW5nIiwKICAgICAgICAgICAgInZhbGlkYXRpb25fZmlsZXMiOiBbXSwKICAgICAgICAgICAgInRyYWluaW5nX2ZpbGVzIjogWwogICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJpZCI6ICJmaWxlLVhHaW51amJsSFB3R0xTenR6OGNQUzhYWSIsCiAgICAgICAgICAgICAgICAib2JqZWN0IjogImZpbGUiLAogICAgICAgICAgICAgICAgImJ5dGVzIjogMTU0NzI3NiwKICAgICAgICAgICAgICAgICJjcmVhdGVkX2F0IjogMTYxMDA2MjI4MSwKICAgICAgICAgICAgICAgICJmaWxlbmFtZSI6ICJteS1kYXRhLXRyYWluLmpzb25sIiwKICAgICAgICAgICAgICAgICJwdXJwb3NlIjogImZpbmUtdHVuZS10cmFpbiIKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIF0sCiAgICAgICAgICAgICJ1cGRhdGVkX2F0IjogMTYxNDgwNzM1MiwKICAgICAgICAgIH0KICAgIGdldDoKICAgICAgb3BlcmF0aW9uSWQ6IGxpc3RGaW5lVHVuZXMKICAgICAgdGFnczoKICAgICAgLSBPcGVuQUkKICAgICAgc3VtbWFyeTogfAogICAgICAgIExpc3QgeW91ciBvcmdhbml6YXRpb24ncyBmaW5lLXR1bmluZyBqb2JzCiAgICAgIHJlc3BvbnNlczoKICAgICAgICAiMjAwIjoKICAgICAgICAgIGRlc2NyaXB0aW9uOiBPSwogICAgICAgICAgY29udGVudDoKICAgICAgICAgICAgYXBwbGljYXRpb24vanNvbjoKICAgICAgICAgICAgICBzY2hlbWE6CiAgICAgICAgICAgICAgICAkcmVmOiAnIy9jb21wb25lbnRzL3NjaGVtYXMvTGlzdEZpbmVUdW5lc1Jlc3BvbnNlJwogICAgICB4LW9haU1ldGE6CiAgICAgICAgbmFtZTogTGlzdCBmaW5lLXR1bmVzCiAgICAgICAgZ3JvdXA6IGZpbmUtdHVuZXMKICAgICAgICBwYXRoOiBsaXN0CiAgICAgICAgZXhhbXBsZXM6CiAgICAgICAgICBjdXJsOiB8CiAgICAgICAgICAgIGN1cmwgaHR0cHM6Ly9hcGkub3BlbmFpLmNvbS92MS9maW5lLXR1bmVzIFwKICAgICAgICAgICAgICAtSCAnQXV0aG9yaXphdGlvbjogQmVhcmVyIFlPVVJfQVBJX0tFWScKICAgICAgICAgIHB5dGhvbjogfAogICAgICAgICAgICBpbXBvcnQgb3MKICAgICAgICAgICAgaW1wb3J0IG9wZW5haQogICAgICAgICAgICBvcGVuYWkuYXBpX2tleSA9IG9zLmdldGVudigiT1BFTkFJX0FQSV9LRVkiKQogICAgICAgICAgICBvcGVuYWkuRmluZVR1bmUubGlzdCgpCiAgICAgICAgICBub2RlLmpzOiB8CiAgICAgICAgICAgIGNvbnN0IHsgQ29uZmlndXJhdGlvbiwgT3BlbkFJQXBpIH0gPSByZXF1aXJlKCJvcGVuYWkiKTsKICAgICAgICAgICAgY29uc3QgY29uZmlndXJhdGlvbiA9IG5ldyBDb25maWd1cmF0aW9uKHsKICAgICAgICAgICAgICBhcGlLZXk6IHByb2Nlc3MuZW52Lk9QRU5BSV9BUElfS0VZLAogICAgICAgICAgICB9KTsKICAgICAgICAgICAgY29uc3Qgb3BlbmFpID0gbmV3IE9wZW5BSUFwaShjb25maWd1cmF0aW9uKTsKICAgICAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBvcGVuYWkubGlzdEZpbmVUdW5lcygpOwogICAgICAgIHJlc3BvbnNlOiB8CiAgICAgICAgICB7CiAgICAgICAgICAgICJvYmplY3QiOiAibGlzdCIsCiAgICAgICAgICAgICJkYXRhIjogWwogICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJpZCI6ICJmdC1BRjFXb1JxZDNhSkFIc3FjOU5ZN2lMOEYiLAogICAgICAgICAgICAgICAgIm9iamVjdCI6ICJmaW5lLXR1bmUiLAogICAgICAgICAgICAgICAgIm1vZGVsIjogImN1cmllIiwKICAgICAgICAgICAgICAgICJjcmVhdGVkX2F0IjogMTYxNDgwNzM1MiwKICAgICAgICAgICAgICAgICJmaW5lX3R1bmVkX21vZGVsIjogbnVsbCwKICAgICAgICAgICAgICAgICJoeXBlcnBhcmFtcyI6IHsgLi4uIH0sCiAgICAgICAgICAgICAgICAib3JnYW5pemF0aW9uX2lkIjogIm9yZy0uLi4iLAogICAgICAgICAgICAgICAgInJlc3VsdF9maWxlcyI6IFtdLAogICAgICAgICAgICAgICAgInN0YXR1cyI6ICJwZW5kaW5nIiwKICAgICAgICAgICAgICAgICJ2YWxpZGF0aW9uX2ZpbGVzIjogW10sCiAgICAgICAgICAgICAgICAidHJhaW5pbmdfZmlsZXMiOiBbIHsgLi4uIH0gXSwKICAgICAgICAgICAgICAgICJ1cGRhdGVkX2F0IjogMTYxNDgwNzM1MiwKICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgIHsgLi4uIH0sCiAgICAgICAgICAgICAgeyAuLi4gfQogICAgICAgICAgICBdCiAgICAgICAgICB9CgogIC9maW5lLXR1bmVzL3tmaW5lX3R1bmVfaWR9OgogICAgZ2V0OgogICAgICBvcGVyYXRpb25JZDogcmV0cmlldmVGaW5lVHVuZQogICAgICB0YWdzOgogICAgICAtIE9wZW5BSQogICAgICBzdW1tYXJ5OiB8CiAgICAgICAgR2V0cyBpbmZvIGFib3V0IHRoZSBmaW5lLXR1bmUgam9iLgoKICAgICAgICBbTGVhcm4gbW9yZSBhYm91dCBGaW5lLXR1bmluZ10oL2RvY3MvZ3VpZGVzL2ZpbmUtdHVuaW5nKQogICAgICBwYXJhbWV0ZXJzOgogICAgICAgIC0gaW46IHBhdGgKICAgICAgICAgIG5hbWU6IGZpbmVfdHVuZV9pZAogICAgICAgICAgcmVxdWlyZWQ6IHRydWUKICAgICAgICAgIHNjaGVtYToKICAgICAgICAgICAgdHlwZTogc3RyaW5nCiAgICAgICAgICAgIGV4YW1wbGU6CiAgICAgICAgICAgICAgZnQtQUYxV29ScWQzYUpBSHNxYzlOWTdpTDhGCiAgICAgICAgICBkZXNjcmlwdGlvbjogfAogICAgICAgICAgICBUaGUgSUQgb2YgdGhlIGZpbmUtdHVuZSBqb2IKICAgICAgcmVzcG9uc2VzOgogICAgICAgICIyMDAiOgogICAgICAgICAgZGVzY3JpcHRpb246IE9LCiAgICAgICAgICBjb250ZW50OgogICAgICAgICAgICBhcHBsaWNhdGlvbi9qc29uOgogICAgICAgICAgICAgIHNjaGVtYToKICAgICAgICAgICAgICAgICRyZWY6ICcjL2NvbXBvbmVudHMvc2NoZW1hcy9GaW5lVHVuZScKICAgICAgeC1vYWlNZXRhOgogICAgICAgIG5hbWU6IFJldHJpZXZlIGZpbmUtdHVuZQogICAgICAgIGdyb3VwOiBmaW5lLXR1bmVzCiAgICAgICAgcGF0aDogcmV0cmlldmUKICAgICAgICBleGFtcGxlczoKICAgICAgICAgIGN1cmw6IHwKICAgICAgICAgICAgY3VybCBodHRwczovL2FwaS5vcGVuYWkuY29tL3YxL2ZpbmUtdHVuZXMvZnQtQUYxV29ScWQzYUpBSHNxYzlOWTdpTDhGIFwKICAgICAgICAgICAgICAtSCAiQXV0aG9yaXphdGlvbjogQmVhcmVyIFlPVVJfQVBJX0tFWSIKICAgICAgICAgIHB5dGhvbjogfAogICAgICAgICAgICBpbXBvcnQgb3MKICAgICAgICAgICAgaW1wb3J0IG9wZW5haQogICAgICAgICAgICBvcGVuYWkuYXBpX2tleSA9IG9zLmdldGVudigiT1BFTkFJX0FQSV9LRVkiKQogICAgICAgICAgICBvcGVuYWkuRmluZVR1bmUucmV0cmlldmUoaWQ9ImZ0LUFGMVdvUnFkM2FKQUhzcWM5Tlk3aUw4RiIpCiAgICAgICAgICBub2RlLmpzOiB8CiAgICAgICAgICAgIGNvbnN0IHsgQ29uZmlndXJhdGlvbiwgT3BlbkFJQXBpIH0gPSByZXF1aXJlKCJvcGVuYWkiKTsKICAgICAgICAgICAgY29uc3QgY29uZmlndXJhdGlvbiA9IG5ldyBDb25maWd1cmF0aW9uKHsKICAgICAgICAgICAgICBhcGlLZXk6IHByb2Nlc3MuZW52Lk9QRU5BSV9BUElfS0VZLAogICAgICAgICAgICB9KTsKICAgICAgICAgICAgY29uc3Qgb3BlbmFpID0gbmV3IE9wZW5BSUFwaShjb25maWd1cmF0aW9uKTsKICAgICAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBvcGVuYWkucmV0cmlldmVGaW5lVHVuZSgiZnQtQUYxV29ScWQzYUpBSHNxYzlOWTdpTDhGIik7CiAgICAgICAgcmVzcG9uc2U6IHwKICAgICAgICAgIHsKICAgICAgICAgICAgImlkIjogImZ0LUFGMVdvUnFkM2FKQUhzcWM5Tlk3aUw4RiIsCiAgICAgICAgICAgICJvYmplY3QiOiAiZmluZS10dW5lIiwKICAgICAgICAgICAgIm1vZGVsIjogImN1cmllIiwKICAgICAgICAgICAgImNyZWF0ZWRfYXQiOiAxNjE0ODA3MzUyLAogICAgICAgICAgICAiZXZlbnRzIjogWwogICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJvYmplY3QiOiAiZmluZS10dW5lLWV2ZW50IiwKICAgICAgICAgICAgICAgICJjcmVhdGVkX2F0IjogMTYxNDgwNzM1MiwKICAgICAgICAgICAgICAgICJsZXZlbCI6ICJpbmZvIiwKICAgICAgICAgICAgICAgICJtZXNzYWdlIjogIkpvYiBlbnF1ZXVlZC4gV2FpdGluZyBmb3Igam9icyBhaGVhZCB0byBjb21wbGV0ZS4gUXVldWUgbnVtYmVyOiAwLiIKICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJvYmplY3QiOiAiZmluZS10dW5lLWV2ZW50IiwKICAgICAgICAgICAgICAgICJjcmVhdGVkX2F0IjogMTYxNDgwNzM1NiwKICAgICAgICAgICAgICAgICJsZXZlbCI6ICJpbmZvIiwKICAgICAgICAgICAgICAgICJtZXNzYWdlIjogIkpvYiBzdGFydGVkLiIKICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJvYmplY3QiOiAiZmluZS10dW5lLWV2ZW50IiwKICAgICAgICAgICAgICAgICJjcmVhdGVkX2F0IjogMTYxNDgwNzg2MSwKICAgICAgICAgICAgICAgICJsZXZlbCI6ICJpbmZvIiwKICAgICAgICAgICAgICAgICJtZXNzYWdlIjogIlVwbG9hZGVkIHNuYXBzaG90OiBjdXJpZTpmdC1hY21lY28tMjAyMS0wMy0wMy0yMS00NC0yMC4iCiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAib2JqZWN0IjogImZpbmUtdHVuZS1ldmVudCIsCiAgICAgICAgICAgICAgICAiY3JlYXRlZF9hdCI6IDE2MTQ4MDc4NjQsCiAgICAgICAgICAgICAgICAibGV2ZWwiOiAiaW5mbyIsCiAgICAgICAgICAgICAgICAibWVzc2FnZSI6ICJVcGxvYWRlZCByZXN1bHQgZmlsZXM6IGZpbGUtUVFtNlpwcWROd0FhVkMzYVN6NXNXd0xULiIKICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJvYmplY3QiOiAiZmluZS10dW5lLWV2ZW50IiwKICAgICAgICAgICAgICAgICJjcmVhdGVkX2F0IjogMTYxNDgwNzg2NCwKICAgICAgICAgICAgICAgICJsZXZlbCI6ICJpbmZvIiwKICAgICAgICAgICAgICAgICJtZXNzYWdlIjogIkpvYiBzdWNjZWVkZWQuIgogICAgICAgICAgICAgIH0KICAgICAgICAgICAgXSwKICAgICAgICAgICAgImZpbmVfdHVuZWRfbW9kZWwiOiAiY3VyaWU6ZnQtYWNtZWNvLTIwMjEtMDMtMDMtMjEtNDQtMjAiLAogICAgICAgICAgICAiaHlwZXJwYXJhbXMiOiB7CiAgICAgICAgICAgICAgImJhdGNoX3NpemUiOiA0LAogICAgICAgICAgICAgICJsZWFybmluZ19yYXRlX211bHRpcGxpZXIiOiAwLjEsCiAgICAgICAgICAgICAgIm5fZXBvY2hzIjogNCwKICAgICAgICAgICAgICAicHJvbXB0X2xvc3Nfd2VpZ2h0IjogMC4xLAogICAgICAgICAgICB9LAogICAgICAgICAgICAib3JnYW5pemF0aW9uX2lkIjogIm9yZy0uLi4iLAogICAgICAgICAgICAicmVzdWx0X2ZpbGVzIjogWwogICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJpZCI6ICJmaWxlLVFRbTZacHFkTndBYVZDM2FTejVzV3dMVCIsCiAgICAgICAgICAgICAgICAib2JqZWN0IjogImZpbGUiLAogICAgICAgICAgICAgICAgImJ5dGVzIjogODE1MDksCiAgICAgICAgICAgICAgICAiY3JlYXRlZF9hdCI6IDE2MTQ4MDc4NjMsCiAgICAgICAgICAgICAgICAiZmlsZW5hbWUiOiAiY29tcGlsZWRfcmVzdWx0cy5jc3YiLAogICAgICAgICAgICAgICAgInB1cnBvc2UiOiAiZmluZS10dW5lLXJlc3VsdHMiCiAgICAgICAgICAgICAgfQogICAgICAgICAgICBdLAogICAgICAgICAgICAic3RhdHVzIjogInN1Y2NlZWRlZCIsCiAgICAgICAgICAgICJ2YWxpZGF0aW9uX2ZpbGVzIjogW10sCiAgICAgICAgICAgICJ0cmFpbmluZ19maWxlcyI6IFsKICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAiaWQiOiAiZmlsZS1YR2ludWpibEhQd0dMU3p0ejhjUFM4WFkiLAogICAgICAgICAgICAgICAgIm9iamVjdCI6ICJmaWxlIiwKICAgICAgICAgICAgICAgICJieXRlcyI6IDE1NDcyNzYsCiAgICAgICAgICAgICAgICAiY3JlYXRlZF9hdCI6IDE2MTAwNjIyODEsCiAgICAgICAgICAgICAgICAiZmlsZW5hbWUiOiAibXktZGF0YS10cmFpbi5qc29ubCIsCiAgICAgICAgICAgICAgICAicHVycG9zZSI6ICJmaW5lLXR1bmUtdHJhaW4iCiAgICAgICAgICAgICAgfQogICAgICAgICAgICBdLAogICAgICAgICAgICAidXBkYXRlZF9hdCI6IDE2MTQ4MDc4NjUsCiAgICAgICAgICB9CgogIC9maW5lLXR1bmVzL3tmaW5lX3R1bmVfaWR9L2NhbmNlbDoKICAgIHBvc3Q6CiAgICAgIG9wZXJhdGlvbklkOiBjYW5jZWxGaW5lVHVuZQogICAgICB0YWdzOgogICAgICAtIE9wZW5BSQogICAgICBzdW1tYXJ5OiB8CiAgICAgICAgSW1tZWRpYXRlbHkgY2FuY2VsIGEgZmluZS10dW5lIGpvYi4KICAgICAgcGFyYW1ldGVyczoKICAgICAgICAtIGluOiBwYXRoCiAgICAgICAgICBuYW1lOiBmaW5lX3R1bmVfaWQKICAgICAgICAgIHJlcXVpcmVkOiB0cnVlCiAgICAgICAgICBzY2hlbWE6CiAgICAgICAgICAgIHR5cGU6IHN0cmluZwogICAgICAgICAgICBleGFtcGxlOgogICAgICAgICAgICAgIGZ0LUFGMVdvUnFkM2FKQUhzcWM5Tlk3aUw4RgogICAgICAgICAgZGVzY3JpcHRpb246IHwKICAgICAgICAgICAgVGhlIElEIG9mIHRoZSBmaW5lLXR1bmUgam9iIHRvIGNhbmNlbAogICAgICByZXNwb25zZXM6CiAgICAgICAgIjIwMCI6CiAgICAgICAgICBkZXNjcmlwdGlvbjogT0sKICAgICAgICAgIGNvbnRlbnQ6CiAgICAgICAgICAgIGFwcGxpY2F0aW9uL2pzb246CiAgICAgICAgICAgICAgc2NoZW1hOgogICAgICAgICAgICAgICAgJHJlZjogJyMvY29tcG9uZW50cy9zY2hlbWFzL0ZpbmVUdW5lJwogICAgICB4LW9haU1ldGE6CiAgICAgICAgbmFtZTogQ2FuY2VsIGZpbmUtdHVuZQogICAgICAgIGdyb3VwOiBmaW5lLXR1bmVzCiAgICAgICAgcGF0aDogY2FuY2VsCiAgICAgICAgZXhhbXBsZXM6CiAgICAgICAgICBjdXJsOiB8CiAgICAgICAgICAgIGN1cmwgaHR0cHM6Ly9hcGkub3BlbmFpLmNvbS92MS9maW5lLXR1bmVzL2Z0LUFGMVdvUnFkM2FKQUhzcWM5Tlk3aUw4Ri9jYW5jZWwgXAogICAgICAgICAgICAgIC1YIFBPU1QgXAogICAgICAgICAgICAgIC1IICJBdXRob3JpemF0aW9uOiBCZWFyZXIgWU9VUl9BUElfS0VZIgogICAgICAgICAgcHl0aG9uOiB8CiAgICAgICAgICAgIGltcG9ydCBvcwogICAgICAgICAgICBpbXBvcnQgb3BlbmFpCiAgICAgICAgICAgIG9wZW5haS5hcGlfa2V5ID0gb3MuZ2V0ZW52KCJPUEVOQUlfQVBJX0tFWSIpCiAgICAgICAgICAgIG9wZW5haS5GaW5lVHVuZS5jYW5jZWwoaWQ9ImZ0LUFGMVdvUnFkM2FKQUhzcWM5Tlk3aUw4RiIpCiAgICAgICAgICBub2RlLmpzOiB8CiAgICAgICAgICAgIGNvbnN0IHsgQ29uZmlndXJhdGlvbiwgT3BlbkFJQXBpIH0gPSByZXF1aXJlKCJvcGVuYWkiKTsKICAgICAgICAgICAgY29uc3QgY29uZmlndXJhdGlvbiA9IG5ldyBDb25maWd1cmF0aW9uKHsKICAgICAgICAgICAgICBhcGlLZXk6IHByb2Nlc3MuZW52Lk9QRU5BSV9BUElfS0VZLAogICAgICAgICAgICB9KTsKICAgICAgICAgICAgY29uc3Qgb3BlbmFpID0gbmV3IE9wZW5BSUFwaShjb25maWd1cmF0aW9uKTsKICAgICAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBvcGVuYWkuY2FuY2VsRmluZVR1bmUoImZ0LUFGMVdvUnFkM2FKQUhzcWM5Tlk3aUw4RiIpOwogICAgICAgIHJlc3BvbnNlOiB8CiAgICAgICAgICB7CiAgICAgICAgICAgICJpZCI6ICJmdC14aHJwQmJ2VlV6WUdvOG9VTzFGWTRuSTciLAogICAgICAgICAgICAib2JqZWN0IjogImZpbmUtdHVuZSIsCiAgICAgICAgICAgICJtb2RlbCI6ICJjdXJpZSIsCiAgICAgICAgICAgICJjcmVhdGVkX2F0IjogMTYxNDgwNzc3MCwKICAgICAgICAgICAgImV2ZW50cyI6IFsgeyAuLi4gfSBdLAogICAgICAgICAgICAiZmluZV90dW5lZF9tb2RlbCI6IG51bGwsCiAgICAgICAgICAgICJoeXBlcnBhcmFtcyI6IHsgLi4uIH0sCiAgICAgICAgICAgICJvcmdhbml6YXRpb25faWQiOiAib3JnLS4uLiIsCiAgICAgICAgICAgICJyZXN1bHRfZmlsZXMiOiBbXSwKICAgICAgICAgICAgInN0YXR1cyI6ICJjYW5jZWxsZWQiLAogICAgICAgICAgICAidmFsaWRhdGlvbl9maWxlcyI6IFtdLAogICAgICAgICAgICAidHJhaW5pbmdfZmlsZXMiOiBbCiAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgImlkIjogImZpbGUtWEdpbnVqYmxIUHdHTFN6dHo4Y1BTOFhZIiwKICAgICAgICAgICAgICAgICJvYmplY3QiOiAiZmlsZSIsCiAgICAgICAgICAgICAgICAiYnl0ZXMiOiAxNTQ3Mjc2LAogICAgICAgICAgICAgICAgImNyZWF0ZWRfYXQiOiAxNjEwMDYyMjgxLAogICAgICAgICAgICAgICAgImZpbGVuYW1lIjogIm15LWRhdGEtdHJhaW4uanNvbmwiLAogICAgICAgICAgICAgICAgInB1cnBvc2UiOiAiZmluZS10dW5lLXRyYWluIgogICAgICAgICAgICAgIH0KICAgICAgICAgICAgXSwKICAgICAgICAgICAgInVwZGF0ZWRfYXQiOiAxNjE0ODA3Nzg5LAogICAgICAgICAgfQoKICAvZmluZS10dW5lcy97ZmluZV90dW5lX2lkfS9ldmVudHM6CiAgICBnZXQ6CiAgICAgIG9wZXJhdGlvbklkOiBsaXN0RmluZVR1bmVFdmVudHMKICAgICAgdGFnczoKICAgICAgLSBPcGVuQUkKICAgICAgc3VtbWFyeTogfAogICAgICAgIEdldCBmaW5lLWdyYWluZWQgc3RhdHVzIHVwZGF0ZXMgZm9yIGEgZmluZS10dW5lIGpvYi4KICAgICAgcGFyYW1ldGVyczoKICAgICAgICAtIGluOiBwYXRoCiAgICAgICAgICBuYW1lOiBmaW5lX3R1bmVfaWQKICAgICAgICAgIHJlcXVpcmVkOiB0cnVlCiAgICAgICAgICBzY2hlbWE6CiAgICAgICAgICAgIHR5cGU6IHN0cmluZwogICAgICAgICAgICBleGFtcGxlOgogICAgICAgICAgICAgIGZ0LUFGMVdvUnFkM2FKQUhzcWM5Tlk3aUw4RgogICAgICAgICAgZGVzY3JpcHRpb246IHwKICAgICAgICAgICAgVGhlIElEIG9mIHRoZSBmaW5lLXR1bmUgam9iIHRvIGdldCBldmVudHMgZm9yLgogICAgICAgIC0gaW46IHF1ZXJ5CiAgICAgICAgICBuYW1lOiBzdHJlYW0KICAgICAgICAgIHJlcXVpcmVkOiBmYWxzZQogICAgICAgICAgc2NoZW1hOgogICAgICAgICAgICB0eXBlOiBib29sZWFuCiAgICAgICAgICAgIGRlZmF1bHQ6IGZhbHNlCiAgICAgICAgICBkZXNjcmlwdGlvbjogfAogICAgICAgICAgICBXaGV0aGVyIHRvIHN0cmVhbSBldmVudHMgZm9yIHRoZSBmaW5lLXR1bmUgam9iLiBJZiBzZXQgdG8gdHJ1ZSwKICAgICAgICAgICAgZXZlbnRzIHdpbGwgYmUgc2VudCBhcyBkYXRhLW9ubHkKICAgICAgICAgICAgW3NlcnZlci1zZW50IGV2ZW50c10oaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvQVBJL1NlcnZlci1zZW50X2V2ZW50cy9Vc2luZ19zZXJ2ZXItc2VudF9ldmVudHMjRXZlbnRfc3RyZWFtX2Zvcm1hdCkKICAgICAgICAgICAgYXMgdGhleSBiZWNvbWUgYXZhaWxhYmxlLiBUaGUgc3RyZWFtIHdpbGwgdGVybWluYXRlIHdpdGggYQogICAgICAgICAgICBgZGF0YTogW0RPTkVdYCBtZXNzYWdlIHdoZW4gdGhlIGpvYiBpcyBmaW5pc2hlZCAoc3VjY2VlZGVkLCBjYW5jZWxsZWQsCiAgICAgICAgICAgIG9yIGZhaWxlZCkuCgogICAgICAgICAgICBJZiBzZXQgdG8gZmFsc2UsIG9ubHkgZXZlbnRzIGdlbmVyYXRlZCBzbyBmYXIgd2lsbCBiZSByZXR1cm5lZC4KICAgICAgcmVzcG9uc2VzOgogICAgICAgICIyMDAiOgogICAgICAgICAgZGVzY3JpcHRpb246IE9LCiAgICAgICAgICBjb250ZW50OgogICAgICAgICAgICBhcHBsaWNhdGlvbi9qc29uOgogICAgICAgICAgICAgIHNjaGVtYToKICAgICAgICAgICAgICAgICRyZWY6ICcjL2NvbXBvbmVudHMvc2NoZW1hcy9MaXN0RmluZVR1bmVFdmVudHNSZXNwb25zZScKICAgICAgeC1vYWlNZXRhOgogICAgICAgIG5hbWU6IExpc3QgZmluZS10dW5lIGV2ZW50cwogICAgICAgIGdyb3VwOiBmaW5lLXR1bmVzCiAgICAgICAgcGF0aDogZXZlbnRzCiAgICAgICAgZXhhbXBsZXM6CiAgICAgICAgICBjdXJsOiB8CiAgICAgICAgICAgIGN1cmwgaHR0cHM6Ly9hcGkub3BlbmFpLmNvbS92MS9maW5lLXR1bmVzL2Z0LUFGMVdvUnFkM2FKQUhzcWM5Tlk3aUw4Ri9ldmVudHMgXAogICAgICAgICAgICAgIC1IICJBdXRob3JpemF0aW9uOiBCZWFyZXIgWU9VUl9BUElfS0VZIgogICAgICAgICAgcHl0aG9uOiB8CiAgICAgICAgICAgIGltcG9ydCBvcwogICAgICAgICAgICBpbXBvcnQgb3BlbmFpCiAgICAgICAgICAgIG9wZW5haS5hcGlfa2V5ID0gb3MuZ2V0ZW52KCJPUEVOQUlfQVBJX0tFWSIpCiAgICAgICAgICAgIG9wZW5haS5GaW5lVHVuZS5saXN0X2V2ZW50cyhpZD0iZnQtQUYxV29ScWQzYUpBSHNxYzlOWTdpTDhGIikKICAgICAgICAgIG5vZGUuanM6IHwKICAgICAgICAgICAgY29uc3QgeyBDb25maWd1cmF0aW9uLCBPcGVuQUlBcGkgfSA9IHJlcXVpcmUoIm9wZW5haSIpOwogICAgICAgICAgICBjb25zdCBjb25maWd1cmF0aW9uID0gbmV3IENvbmZpZ3VyYXRpb24oewogICAgICAgICAgICAgIGFwaUtleTogcHJvY2Vzcy5lbnYuT1BFTkFJX0FQSV9LRVksCiAgICAgICAgICAgIH0pOwogICAgICAgICAgICBjb25zdCBvcGVuYWkgPSBuZXcgT3BlbkFJQXBpKGNvbmZpZ3VyYXRpb24pOwogICAgICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IG9wZW5haS5saXN0RmluZVR1bmVFdmVudHMoImZ0LUFGMVdvUnFkM2FKQUhzcWM5Tlk3aUw4RiIpOwogICAgICAgIHJlc3BvbnNlOiB8CiAgICAgICAgICB7CiAgICAgICAgICAgICJvYmplY3QiOiAibGlzdCIsCiAgICAgICAgICAgICJkYXRhIjogWwogICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJvYmplY3QiOiAiZmluZS10dW5lLWV2ZW50IiwKICAgICAgICAgICAgICAgICJjcmVhdGVkX2F0IjogMTYxNDgwNzM1MiwKICAgICAgICAgICAgICAgICJsZXZlbCI6ICJpbmZvIiwKICAgICAgICAgICAgICAgICJtZXNzYWdlIjogIkpvYiBlbnF1ZXVlZC4gV2FpdGluZyBmb3Igam9icyBhaGVhZCB0byBjb21wbGV0ZS4gUXVldWUgbnVtYmVyOiAwLiIKICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJvYmplY3QiOiAiZmluZS10dW5lLWV2ZW50IiwKICAgICAgICAgICAgICAgICJjcmVhdGVkX2F0IjogMTYxNDgwNzM1NiwKICAgICAgICAgICAgICAgICJsZXZlbCI6ICJpbmZvIiwKICAgICAgICAgICAgICAgICJtZXNzYWdlIjogIkpvYiBzdGFydGVkLiIKICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJvYmplY3QiOiAiZmluZS10dW5lLWV2ZW50IiwKICAgICAgICAgICAgICAgICJjcmVhdGVkX2F0IjogMTYxNDgwNzg2MSwKICAgICAgICAgICAgICAgICJsZXZlbCI6ICJpbmZvIiwKICAgICAgICAgICAgICAgICJtZXNzYWdlIjogIlVwbG9hZGVkIHNuYXBzaG90OiBjdXJpZTpmdC1hY21lY28tMjAyMS0wMy0wMy0yMS00NC0yMC4iCiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAib2JqZWN0IjogImZpbmUtdHVuZS1ldmVudCIsCiAgICAgICAgICAgICAgICAiY3JlYXRlZF9hdCI6IDE2MTQ4MDc4NjQsCiAgICAgICAgICAgICAgICAibGV2ZWwiOiAiaW5mbyIsCiAgICAgICAgICAgICAgICAibWVzc2FnZSI6ICJVcGxvYWRlZCByZXN1bHQgZmlsZXM6IGZpbGUtUVFtNlpwcWROd0FhVkMzYVN6NXNXd0xULiIKICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJvYmplY3QiOiAiZmluZS10dW5lLWV2ZW50IiwKICAgICAgICAgICAgICAgICJjcmVhdGVkX2F0IjogMTYxNDgwNzg2NCwKICAgICAgICAgICAgICAgICJsZXZlbCI6ICJpbmZvIiwKICAgICAgICAgICAgICAgICJtZXNzYWdlIjogIkpvYiBzdWNjZWVkZWQuIgogICAgICAgICAgICAgIH0KICAgICAgICAgICAgXQogICAgICAgICAgfQoKICAvbW9kZWxzOgogICAgZ2V0OgogICAgICBvcGVyYXRpb25JZDogbGlzdE1vZGVscwogICAgICB0YWdzOgogICAgICAgIC0gT3BlbkFJCiAgICAgIHN1bW1hcnk6IExpc3RzIHRoZSBjdXJyZW50bHkgYXZhaWxhYmxlIG1vZGVscywgYW5kIHByb3ZpZGVzIGJhc2ljIGluZm9ybWF0aW9uIGFib3V0IGVhY2ggb25lIHN1Y2ggYXMgdGhlIG93bmVyIGFuZCBhdmFpbGFiaWxpdHkuCiAgICAgIHJlc3BvbnNlczoKICAgICAgICAiMjAwIjoKICAgICAgICAgIGRlc2NyaXB0aW9uOiBPSwogICAgICAgICAgY29udGVudDoKICAgICAgICAgICAgYXBwbGljYXRpb24vanNvbjoKICAgICAgICAgICAgICBzY2hlbWE6CiAgICAgICAgICAgICAgICAkcmVmOiAnIy9jb21wb25lbnRzL3NjaGVtYXMvTGlzdE1vZGVsc1Jlc3BvbnNlJwogICAgICB4LW9haU1ldGE6CiAgICAgICAgbmFtZTogTGlzdCBtb2RlbHMKICAgICAgICBncm91cDogbW9kZWxzCiAgICAgICAgcGF0aDogbGlzdAogICAgICAgIGV4YW1wbGVzOgogICAgICAgICAgY3VybDogfAogICAgICAgICAgICBjdXJsIGh0dHBzOi8vYXBpLm9wZW5haS5jb20vdjEvbW9kZWxzIFwKICAgICAgICAgICAgICAtSCAnQXV0aG9yaXphdGlvbjogQmVhcmVyIFlPVVJfQVBJX0tFWScKICAgICAgICAgIHB5dGhvbjogfAogICAgICAgICAgICBpbXBvcnQgb3MKICAgICAgICAgICAgaW1wb3J0IG9wZW5haQogICAgICAgICAgICBvcGVuYWkuYXBpX2tleSA9IG9zLmdldGVudigiT1BFTkFJX0FQSV9LRVkiKQogICAgICAgICAgICBvcGVuYWkuTW9kZWwubGlzdCgpCiAgICAgICAgICBub2RlLmpzOiB8CiAgICAgICAgICAgIGNvbnN0IHsgQ29uZmlndXJhdGlvbiwgT3BlbkFJQXBpIH0gPSByZXF1aXJlKCJvcGVuYWkiKTsKICAgICAgICAgICAgY29uc3QgY29uZmlndXJhdGlvbiA9IG5ldyBDb25maWd1cmF0aW9uKHsKICAgICAgICAgICAgICBhcGlLZXk6IHByb2Nlc3MuZW52Lk9QRU5BSV9BUElfS0VZLAogICAgICAgICAgICB9KTsKICAgICAgICAgICAgY29uc3Qgb3BlbmFpID0gbmV3IE9wZW5BSUFwaShjb25maWd1cmF0aW9uKTsKICAgICAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBvcGVuYWkubGlzdE1vZGVscygpOwogICAgICAgIHJlc3BvbnNlOiB8CiAgICAgICAgICB7CiAgICAgICAgICAgICJkYXRhIjogWwogICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICJpZCI6ICJtb2RlbC1pZC0wIiwKICAgICAgICAgICAgICAgICJvYmplY3QiOiAibW9kZWwiLAogICAgICAgICAgICAgICAgIm93bmVkX2J5IjogIm9yZ2FuaXphdGlvbi1vd25lciIsCiAgICAgICAgICAgICAgICAicGVybWlzc2lvbiI6IFsuLi5dCiAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAiaWQiOiAibW9kZWwtaWQtMSIsCiAgICAgICAgICAgICAgICAib2JqZWN0IjogIm1vZGVsIiwKICAgICAgICAgICAgICAgICJvd25lZF9ieSI6ICJvcmdhbml6YXRpb24tb3duZXIiLAogICAgICAgICAgICAgICAgInBlcm1pc3Npb24iOiBbLi4uXQogICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgImlkIjogIm1vZGVsLWlkLTIiLAogICAgICAgICAgICAgICAgIm9iamVjdCI6ICJtb2RlbCIsCiAgICAgICAgICAgICAgICAib3duZWRfYnkiOiAib3BlbmFpIiwKICAgICAgICAgICAgICAgICJwZXJtaXNzaW9uIjogWy4uLl0KICAgICAgICAgICAgICB9LAogICAgICAgICAgICBdLAogICAgICAgICAgICAib2JqZWN0IjogImxpc3QiCiAgICAgICAgICB9CgogIC9tb2RlbHMve21vZGVsfToKICAgIGdldDoKICAgICAgb3BlcmF0aW9uSWQ6IHJldHJpZXZlTW9kZWwKICAgICAgdGFnczoKICAgICAgICAtIE9wZW5BSQogICAgICBzdW1tYXJ5OiBSZXRyaWV2ZXMgYSBtb2RlbCBpbnN0YW5jZSwgcHJvdmlkaW5nIGJhc2ljIGluZm9ybWF0aW9uIGFib3V0IHRoZSBtb2RlbCBzdWNoIGFzIHRoZSBvd25lciBhbmQgcGVybWlzc2lvbmluZy4KICAgICAgcGFyYW1ldGVyczoKICAgICAgICAtIGluOiBwYXRoCiAgICAgICAgICBuYW1lOiBtb2RlbAogICAgICAgICAgcmVxdWlyZWQ6IHRydWUKICAgICAgICAgIHNjaGVtYToKICAgICAgICAgICAgdHlwZTogc3RyaW5nCiAgICAgICAgICAgICMgaWRlYWxseSB0aGlzIHdpbGwgYmUgYW4gYWN0dWFsIElELCBzbyB0aGlzIHdpbGwgYWx3YXlzIHdvcmsgZnJvbSBicm93c2VyCiAgICAgICAgICAgIGV4YW1wbGU6CiAgICAgICAgICAgICAgdGV4dC1kYXZpbmNpLTAwMQogICAgICAgICAgZGVzY3JpcHRpb246CiAgICAgICAgICAgIFRoZSBJRCBvZiB0aGUgbW9kZWwgdG8gdXNlIGZvciB0aGlzIHJlcXVlc3QKICAgICAgcmVzcG9uc2VzOgogICAgICAgICIyMDAiOgogICAgICAgICAgZGVzY3JpcHRpb246IE9LCiAgICAgICAgICBjb250ZW50OgogICAgICAgICAgICBhcHBsaWNhdGlvbi9qc29uOgogICAgICAgICAgICAgIHNjaGVtYToKICAgICAgICAgICAgICAgICRyZWY6ICcjL2NvbXBvbmVudHMvc2NoZW1hcy9Nb2RlbCcKICAgICAgeC1vYWlNZXRhOgogICAgICAgIG5hbWU6IFJldHJpZXZlIG1vZGVsCiAgICAgICAgZ3JvdXA6IG1vZGVscwogICAgICAgIHBhdGg6IHJldHJpZXZlCiAgICAgICAgZXhhbXBsZXM6CiAgICAgICAgICBjdXJsOiB8CiAgICAgICAgICAgIGN1cmwgaHR0cHM6Ly9hcGkub3BlbmFpLmNvbS92MS9tb2RlbHMvVkFSX21vZGVsX2lkIFwKICAgICAgICAgICAgICAtSCAnQXV0aG9yaXphdGlvbjogQmVhcmVyIFlPVVJfQVBJX0tFWScKICAgICAgICAgIHB5dGhvbjogfAogICAgICAgICAgICBpbXBvcnQgb3MKICAgICAgICAgICAgaW1wb3J0IG9wZW5haQogICAgICAgICAgICBvcGVuYWkuYXBpX2tleSA9IG9zLmdldGVudigiT1BFTkFJX0FQSV9LRVkiKQogICAgICAgICAgICBvcGVuYWkuTW9kZWwucmV0cmlldmUoIlZBUl9tb2RlbF9pZCIpCiAgICAgICAgICBub2RlLmpzOiB8CiAgICAgICAgICAgIGNvbnN0IHsgQ29uZmlndXJhdGlvbiwgT3BlbkFJQXBpIH0gPSByZXF1aXJlKCJvcGVuYWkiKTsKICAgICAgICAgICAgY29uc3QgY29uZmlndXJhdGlvbiA9IG5ldyBDb25maWd1cmF0aW9uKHsKICAgICAgICAgICAgICBhcGlLZXk6IHByb2Nlc3MuZW52Lk9QRU5BSV9BUElfS0VZLAogICAgICAgICAgICB9KTsKICAgICAgICAgICAgY29uc3Qgb3BlbmFpID0gbmV3IE9wZW5BSUFwaShjb25maWd1cmF0aW9uKTsKICAgICAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBvcGVuYWkucmV0cmlldmVNb2RlbCgiVkFSX21vZGVsX2lkIik7CiAgICAgICAgcmVzcG9uc2U6IHwKICAgICAgICAgIHsKICAgICAgICAgICAgImlkIjogIlZBUl9tb2RlbF9pZCIsCiAgICAgICAgICAgICJvYmplY3QiOiAibW9kZWwiLAogICAgICAgICAgICAib3duZWRfYnkiOiAib3BlbmFpIiwKICAgICAgICAgICAgInBlcm1pc3Npb24iOiBbLi4uXQogICAgICAgICAgfQogICAgZGVsZXRlOgogICAgICBvcGVyYXRpb25JZDogZGVsZXRlTW9kZWwKICAgICAgdGFnczoKICAgICAgLSBPcGVuQUkKICAgICAgc3VtbWFyeTogRGVsZXRlIGEgZmluZS10dW5lZCBtb2RlbC4gWW91IG11c3QgaGF2ZSB0aGUgT3duZXIgcm9sZSBpbiB5b3VyIG9yZ2FuaXphdGlvbi4KICAgICAgcGFyYW1ldGVyczoKICAgICAgICAtIGluOiBwYXRoCiAgICAgICAgICBuYW1lOiBtb2RlbAogICAgICAgICAgcmVxdWlyZWQ6IHRydWUKICAgICAgICAgIHNjaGVtYToKICAgICAgICAgICAgdHlwZTogc3RyaW5nCiAgICAgICAgICAgIGV4YW1wbGU6IGN1cmllOmZ0LWFjbWVjby0yMDIxLTAzLTAzLTIxLTQ0LTIwCiAgICAgICAgICBkZXNjcmlwdGlvbjogVGhlIG1vZGVsIHRvIGRlbGV0ZQogICAgICByZXNwb25zZXM6CiAgICAgICAgIjIwMCI6CiAgICAgICAgICBkZXNjcmlwdGlvbjogT0sKICAgICAgICAgIGNvbnRlbnQ6CiAgICAgICAgICAgIGFwcGxpY2F0aW9uL2pzb246CiAgICAgICAgICAgICAgc2NoZW1hOgogICAgICAgICAgICAgICAgJHJlZjogJyMvY29tcG9uZW50cy9zY2hlbWFzL0RlbGV0ZU1vZGVsUmVzcG9uc2UnCiAgICAgIHgtb2FpTWV0YToKICAgICAgICBuYW1lOiBEZWxldGUgZmluZS10dW5lIG1vZGVsCiAgICAgICAgZ3JvdXA6IGZpbmUtdHVuZXMKICAgICAgICBwYXRoOiBkZWxldGUtbW9kZWwKICAgICAgICBleGFtcGxlczoKICAgICAgICAgIGN1cmw6IHwKICAgICAgICAgICAgY3VybCBodHRwczovL2FwaS5vcGVuYWkuY29tL3YxL21vZGVscy9jdXJpZTpmdC1hY21lY28tMjAyMS0wMy0wMy0yMS00NC0yMCBcCiAgICAgICAgICAgICAgLVggREVMRVRFIFwKICAgICAgICAgICAgICAtSCAiQXV0aG9yaXphdGlvbjogQmVhcmVyIFlPVVJfQVBJX0tFWSIKICAgICAgICAgIHB5dGhvbjogfAogICAgICAgICAgICBpbXBvcnQgb3MKICAgICAgICAgICAgaW1wb3J0IG9wZW5haQogICAgICAgICAgICBvcGVuYWkuYXBpX2tleSA9IG9zLmdldGVudigiT1BFTkFJX0FQSV9LRVkiKQogICAgICAgICAgICBvcGVuYWkuTW9kZWwuZGVsZXRlKCJjdXJpZTpmdC1hY21lY28tMjAyMS0wMy0wMy0yMS00NC0yMCIpCiAgICAgICAgICBub2RlLmpzOiB8CiAgICAgICAgICAgIGNvbnN0IHsgQ29uZmlndXJhdGlvbiwgT3BlbkFJQXBpIH0gPSByZXF1aXJlKCJvcGVuYWkiKTsKICAgICAgICAgICAgY29uc3QgY29uZmlndXJhdGlvbiA9IG5ldyBDb25maWd1cmF0aW9uKHsKICAgICAgICAgICAgICBhcGlLZXk6IHByb2Nlc3MuZW52Lk9QRU5BSV9BUElfS0VZLAogICAgICAgICAgICB9KTsKICAgICAgICAgICAgY29uc3Qgb3BlbmFpID0gbmV3IE9wZW5BSUFwaShjb25maWd1cmF0aW9uKTsKICAgICAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBvcGVuYWkuZGVsZXRlTW9kZWwoJ2N1cmllOmZ0LWFjbWVjby0yMDIxLTAzLTAzLTIxLTQ0LTIwJyk7CiAgICAgICAgcmVzcG9uc2U6IHwKICAgICAgICAgIHsKICAgICAgICAgICAgImlkIjogImN1cmllOmZ0LWFjbWVjby0yMDIxLTAzLTAzLTIxLTQ0LTIwIiwKICAgICAgICAgICAgIm9iamVjdCI6ICJtb2RlbCIsCiAgICAgICAgICAgICJkZWxldGVkIjogdHJ1ZQogICAgICAgICAgfQoKICAvbW9kZXJhdGlvbnM6CiAgICBwb3N0OgogICAgICBvcGVyYXRpb25JZDogY3JlYXRlTW9kZXJhdGlvbgogICAgICB0YWdzOgogICAgICAgIC0gT3BlbkFJCiAgICAgIHN1bW1hcnk6IENsYXNzaWZpZXMgaWYgdGV4dCB2aW9sYXRlcyBPcGVuQUkncyBDb250ZW50IFBvbGljeQogICAgICByZXF1ZXN0Qm9keToKICAgICAgICByZXF1aXJlZDogdHJ1ZQogICAgICAgIGNvbnRlbnQ6CiAgICAgICAgICBhcHBsaWNhdGlvbi9qc29uOgogICAgICAgICAgICBzY2hlbWE6CiAgICAgICAgICAgICAgJHJlZjogJyMvY29tcG9uZW50cy9zY2hlbWFzL0NyZWF0ZU1vZGVyYXRpb25SZXF1ZXN0JwogICAgICByZXNwb25zZXM6CiAgICAgICAgIjIwMCI6CiAgICAgICAgICBkZXNjcmlwdGlvbjogT0sKICAgICAgICAgIGNvbnRlbnQ6CiAgICAgICAgICAgIGFwcGxpY2F0aW9uL2pzb246CiAgICAgICAgICAgICAgc2NoZW1hOgogICAgICAgICAgICAgICAgJHJlZjogJyMvY29tcG9uZW50cy9zY2hlbWFzL0NyZWF0ZU1vZGVyYXRpb25SZXNwb25zZScKICAgICAgeC1vYWlNZXRhOgogICAgICAgIG5hbWU6IENyZWF0ZSBtb2RlcmF0aW9uCiAgICAgICAgZ3JvdXA6IG1vZGVyYXRpb25zCiAgICAgICAgcGF0aDogY3JlYXRlCiAgICAgICAgZXhhbXBsZXM6CiAgICAgICAgICBjdXJsOiB8CiAgICAgICAgICAgIGN1cmwgaHR0cHM6Ly9hcGkub3BlbmFpLmNvbS92MS9tb2RlcmF0aW9ucyBcCiAgICAgICAgICAgICAgLUggJ0NvbnRlbnQtVHlwZTogYXBwbGljYXRpb24vanNvbicgXAogICAgICAgICAgICAgIC1IICdBdXRob3JpemF0aW9uOiBCZWFyZXIgWU9VUl9BUElfS0VZJyBcCiAgICAgICAgICAgICAgLWQgJ3sKICAgICAgICAgICAgICAiaW5wdXQiOiAiSSB3YW50IHRvIGtpbGwgdGhlbS4iCiAgICAgICAgICAgIH0nCiAgICAgICAgICBweXRob246IHwKICAgICAgICAgICAgaW1wb3J0IG9zCiAgICAgICAgICAgIGltcG9ydCBvcGVuYWkKICAgICAgICAgICAgb3BlbmFpLmFwaV9rZXkgPSBvcy5nZXRlbnYoIk9QRU5BSV9BUElfS0VZIikKICAgICAgICAgICAgb3BlbmFpLk1vZGVyYXRpb24uY3JlYXRlKAogICAgICAgICAgICAgIGlucHV0PSJJIHdhbnQgdG8ga2lsbCB0aGVtLiIsCiAgICAgICAgICAgICkKICAgICAgICAgIG5vZGUuanM6IHwKICAgICAgICAgICAgY29uc3QgeyBDb25maWd1cmF0aW9uLCBPcGVuQUlBcGkgfSA9IHJlcXVpcmUoIm9wZW5haSIpOwogICAgICAgICAgICBjb25zdCBjb25maWd1cmF0aW9uID0gbmV3IENvbmZpZ3VyYXRpb24oewogICAgICAgICAgICAgIGFwaUtleTogcHJvY2Vzcy5lbnYuT1BFTkFJX0FQSV9LRVksCiAgICAgICAgICAgIH0pOwogICAgICAgICAgICBjb25zdCBvcGVuYWkgPSBuZXcgT3BlbkFJQXBpKGNvbmZpZ3VyYXRpb24pOwogICAgICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IG9wZW5haS5jcmVhdGVNb2RlcmF0aW9uKHsKICAgICAgICAgICAgICBpbnB1dDogIkkgd2FudCB0byBraWxsIHRoZW0uIiwKICAgICAgICAgICAgfSk7CiAgICAgICAgcGFyYW1ldGVyczogfAogICAgICAgICAgewogICAgICAgICAgICAiaW5wdXQiOiAiSSB3YW50IHRvIGtpbGwgdGhlbS4iCiAgICAgICAgICB9CiAgICAgICAgcmVzcG9uc2U6IHwKICAgICAgICAgIHsKICAgICAgICAgICAgImlkIjogIm1vZHItNU1Xb0xPIiwKICAgICAgICAgICAgIm1vZGVsIjogInRleHQtbW9kZXJhdGlvbi0wMDEiLAogICAgICAgICAgICAicmVzdWx0cyI6IFsKICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAiY2F0ZWdvcmllcyI6IHsKICAgICAgICAgICAgICAgICAgImhhdGUiOiBmYWxzZSwKICAgICAgICAgICAgICAgICAgImhhdGUvdGhyZWF0ZW5pbmciOiB0cnVlLAogICAgICAgICAgICAgICAgICAic2VsZi1oYXJtIjogZmFsc2UsCiAgICAgICAgICAgICAgICAgICJzZXh1YWwiOiBmYWxzZSwKICAgICAgICAgICAgICAgICAgInNleHVhbC9taW5vcnMiOiBmYWxzZSwKICAgICAgICAgICAgICAgICAgInZpb2xlbmNlIjogdHJ1ZSwKICAgICAgICAgICAgICAgICAgInZpb2xlbmNlL2dyYXBoaWMiOiBmYWxzZQogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICJjYXRlZ29yeV9zY29yZXMiOiB7CiAgICAgICAgICAgICAgICAgICJoYXRlIjogMC4yMjcxNDEwNTI0ODQ1MTIzMywKICAgICAgICAgICAgICAgICAgImhhdGUvdGhyZWF0ZW5pbmciOiAwLjQxMzI0NDc4Mzg3ODMyNjQsCiAgICAgICAgICAgICAgICAgICJzZWxmLWhhcm0iOiAwLjAwNTIzMjM5MTg3ODk2MjUxNywKICAgICAgICAgICAgICAgICAgInNleHVhbCI6IDAuMDE0MDczNDEwMDcxNDMyNTksCiAgICAgICAgICAgICAgICAgICJzZXh1YWwvbWlub3JzIjogMC4wMDM4NTIyMjU4NDAwOTE3MDUzLAogICAgICAgICAgICAgICAgICAidmlvbGVuY2UiOiAwLjkyMjMxNzc0MzMwMTM5MTYsCiAgICAgICAgICAgICAgICAgICJ2aW9sZW5jZS9ncmFwaGljIjogMC4wMzY4NjUxOTcxMjIwOTcwMTUKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAiZmxhZ2dlZCI6IHRydWUKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIF0KICAgICAgICAgIH0KCmNvbXBvbmVudHM6CiAgc2NoZW1hczoKICAgIExpc3RFbmdpbmVzUmVzcG9uc2U6CiAgICAgIHR5cGU6IG9iamVjdAogICAgICBwcm9wZXJ0aWVzOgogICAgICAgIG9iamVjdDoKICAgICAgICAgIHR5cGU6IHN0cmluZwogICAgICAgIGRhdGE6CiAgICAgICAgICB0eXBlOiBhcnJheQogICAgICAgICAgaXRlbXM6CiAgICAgICAgICAgICRyZWY6ICcjL2NvbXBvbmVudHMvc2NoZW1hcy9FbmdpbmUnCiAgICAgIHJlcXVpcmVkOgogICAgICAgIC0gb2JqZWN0CiAgICAgICAgLSBkYXRhCgogICAgTGlzdE1vZGVsc1Jlc3BvbnNlOgogICAgICB0eXBlOiBvYmplY3QKICAgICAgcHJvcGVydGllczoKICAgICAgICBvYmplY3Q6CiAgICAgICAgICB0eXBlOiBzdHJpbmcKICAgICAgICBkYXRhOgogICAgICAgICAgdHlwZTogYXJyYXkKICAgICAgICAgIGl0ZW1zOgogICAgICAgICAgICAkcmVmOiAnIy9jb21wb25lbnRzL3NjaGVtYXMvTW9kZWwnCiAgICAgIHJlcXVpcmVkOgogICAgICAgIC0gb2JqZWN0CiAgICAgICAgLSBkYXRhCgogICAgRGVsZXRlTW9kZWxSZXNwb25zZToKICAgICAgdHlwZTogb2JqZWN0CiAgICAgIHByb3BlcnRpZXM6CiAgICAgICAgaWQ6CiAgICAgICAgICB0eXBlOiBzdHJpbmcKICAgICAgICBvYmplY3Q6CiAgICAgICAgICB0eXBlOiBzdHJpbmcKICAgICAgICBkZWxldGVkOgogICAgICAgICAgdHlwZTogYm9vbGVhbgogICAgICByZXF1aXJlZDoKICAgICAgICAtIGlkCiAgICAgICAgLSBvYmplY3QKICAgICAgICAtIGRlbGV0ZWQKCiAgICBDcmVhdGVDb21wbGV0aW9uUmVxdWVzdDoKICAgICAgdHlwZTogb2JqZWN0CiAgICAgIHByb3BlcnRpZXM6CiAgICAgICAgbW9kZWw6ICZtb2RlbF9jb25maWd1cmF0aW9uCiAgICAgICAgICBkZXNjcmlwdGlvbjogSUQgb2YgdGhlIG1vZGVsIHRvIHVzZS4gWW91IGNhbiB1c2UgdGhlIFtMaXN0IG1vZGVsc10oL2RvY3MvYXBpLXJlZmVyZW5jZS9tb2RlbHMvbGlzdCkgQVBJIHRvIHNlZSBhbGwgb2YgeW91ciBhdmFpbGFibGUgbW9kZWxzLCBvciBzZWUgb3VyIFtNb2RlbCBvdmVydmlld10oL2RvY3MvbW9kZWxzL292ZXJ2aWV3KSBmb3IgZGVzY3JpcHRpb25zIG9mIHRoZW0uCiAgICAgICAgICB0eXBlOiBzdHJpbmcKICAgICAgICBwcm9tcHQ6CiAgICAgICAgICBkZXNjcmlwdGlvbjogJmNvbXBsZXRpb25zX3Byb21wdF9kZXNjcmlwdGlvbiB8CiAgICAgICAgICAgIFRoZSBwcm9tcHQocykgdG8gZ2VuZXJhdGUgY29tcGxldGlvbnMgZm9yLCBlbmNvZGVkIGFzIGEgc3RyaW5nLCBhcnJheSBvZiBzdHJpbmdzLCBhcnJheSBvZiB0b2tlbnMsIG9yIGFycmF5IG9mIHRva2VuIGFycmF5cy4KCiAgICAgICAgICAgIE5vdGUgdGhhdCA8fGVuZG9mdGV4dHw+IGlzIHRoZSBkb2N1bWVudCBzZXBhcmF0b3IgdGhhdCB0aGUgbW9kZWwgc2VlcyBkdXJpbmcgdHJhaW5pbmcsIHNvIGlmIGEgcHJvbXB0IGlzIG5vdCBzcGVjaWZpZWQgdGhlIG1vZGVsIHdpbGwgZ2VuZXJhdGUgYXMgaWYgZnJvbSB0aGUgYmVnaW5uaW5nIG9mIGEgbmV3IGRvY3VtZW50LgogICAgICAgICAgZGVmYXVsdDogJzx8ZW5kb2Z0ZXh0fD4nCiAgICAgICAgICBudWxsYWJsZTogdHJ1ZQogICAgICAgICAgb25lT2Y6CiAgICAgICAgICAgIC0gdHlwZTogc3RyaW5nCiAgICAgICAgICAgICAgZGVmYXVsdDogJycKICAgICAgICAgICAgICBleGFtcGxlOiAiVGhpcyBpcyBhIHRlc3QuIgogICAgICAgICAgICAtIHR5cGU6IGFycmF5CiAgICAgICAgICAgICAgaXRlbXM6CiAgICAgICAgICAgICAgICB0eXBlOiBzdHJpbmcKICAgICAgICAgICAgICAgIGRlZmF1bHQ6ICcnCiAgICAgICAgICAgICAgICBleGFtcGxlOiAiVGhpcyBpcyBhIHRlc3QuIgogICAgICAgICAgICAtIHR5cGU6IGFycmF5CiAgICAgICAgICAgICAgbWluSXRlbXM6IDEKICAgICAgICAgICAgICBpdGVtczoKICAgICAgICAgICAgICAgIHR5cGU6IGludGVnZXIKICAgICAgICAgICAgICBleGFtcGxlOiAiWzEyMTIsIDMxOCwgMjU3LCAxMzMyLCAxM10iCiAgICAgICAgICAgIC0gdHlwZTogYXJyYXkKICAgICAgICAgICAgICBtaW5JdGVtczogMQogICAgICAgICAgICAgIGl0ZW1zOgogICAgICAgICAgICAgICAgdHlwZTogYXJyYXkKICAgICAgICAgICAgICAgIG1pbkl0ZW1zOiAxCiAgICAgICAgICAgICAgICBpdGVtczoKICAgICAgICAgICAgICAgICAgdHlwZTogaW50ZWdlcgogICAgICAgICAgICAgIGV4YW1wbGU6ICJbWzEyMTIsIDMxOCwgMjU3LCAxMzMyLCAxM11dIgogICAgICAgIHN1ZmZpeDoKICAgICAgICAgIGRlc2NyaXB0aW9uOgogICAgICAgICAgICBUaGUgc3VmZml4IHRoYXQgY29tZXMgYWZ0ZXIgYSBjb21wbGV0aW9uIG9mIGluc2VydGVkIHRleHQuCiAgICAgICAgICBkZWZhdWx0OiBudWxsCiAgICAgICAgICBudWxsYWJsZTogdHJ1ZQogICAgICAgICAgdHlwZTogc3RyaW5nCiAgICAgICAgICBleGFtcGxlOiAidGVzdC4iCiAgICAgICAgbWF4X3Rva2VuczoKICAgICAgICAgIHR5cGU6IGludGVnZXIKICAgICAgICAgIG1pbmltdW06IDAKICAgICAgICAgIGRlZmF1bHQ6IDE2CiAgICAgICAgICBleGFtcGxlOiAxNgogICAgICAgICAgbnVsbGFibGU6IHRydWUKICAgICAgICAgIGRlc2NyaXB0aW9uOiAmY29tcGxldGlvbnNfbWF4X3Rva2Vuc19kZXNjcmlwdGlvbiB8CiAgICAgICAgICAgIFRoZSBtYXhpbXVtIG51bWJlciBvZiBbdG9rZW5zXSgvdG9rZW5pemVyKSB0byBnZW5lcmF0ZSBpbiB0aGUgY29tcGxldGlvbi4KCiAgICAgICAgICAgIFRoZSB0b2tlbiBjb3VudCBvZiB5b3VyIHByb21wdCBwbHVzIGBtYXhfdG9rZW5zYCBjYW5ub3QgZXhjZWVkIHRoZSBtb2RlbCdzIGNvbnRleHQgbGVuZ3RoLiBNb3N0IG1vZGVscyBoYXZlIGEgY29udGV4dCBsZW5ndGggb2YgMjA0OCB0b2tlbnMgKGV4Y2VwdCBmb3IgdGhlIG5ld2VzdCBtb2RlbHMsIHdoaWNoIHN1cHBvcnQgNDA5NikuCiAgICAgICAgdGVtcGVyYXR1cmU6CiAgICAgICAgICB0eXBlOiBudW1iZXIKICAgICAgICAgIG1pbmltdW06IDAKICAgICAgICAgIG1heGltdW06IDIKICAgICAgICAgIGRlZmF1bHQ6IDEKICAgICAgICAgIGV4YW1wbGU6IDEKICAgICAgICAgIG51bGxhYmxlOiB0cnVlCiAgICAgICAgICBkZXNjcmlwdGlvbjogJmNvbXBsZXRpb25zX3RlbXBlcmF0dXJlX2Rlc2NyaXB0aW9uIHwKICAgICAgICAgICAgV2hhdCBzYW1wbGluZyB0ZW1wZXJhdHVyZSB0byB1c2UsIGJldHdlZW4gMCBhbmQgMi4gSGlnaGVyIHZhbHVlcyBsaWtlIDAuOCB3aWxsIG1ha2UgdGhlIG91dHB1dCBtb3JlIHJhbmRvbSwgd2hpbGUgbG93ZXIgdmFsdWVzIGxpa2UgMC4yIHdpbGwgbWFrZSBpdCBtb3JlIGZvY3VzZWQgYW5kIGRldGVybWluaXN0aWMuCgogICAgICAgICAgICBXZSBnZW5lcmFsbHkgcmVjb21tZW5kIGFsdGVyaW5nIHRoaXMgb3IgYHRvcF9wYCBidXQgbm90IGJvdGguCiAgICAgICAgdG9wX3A6CiAgICAgICAgICB0eXBlOiBudW1iZXIKICAgICAgICAgIG1pbmltdW06IDAKICAgICAgICAgIG1heGltdW06IDEKICAgICAgICAgIGRlZmF1bHQ6IDEKICAgICAgICAgIGV4YW1wbGU6IDEKICAgICAgICAgIG51bGxhYmxlOiB0cnVlCiAgICAgICAgICBkZXNjcmlwdGlvbjogJmNvbXBsZXRpb25zX3RvcF9wX2Rlc2NyaXB0aW9uIHwKICAgICAgICAgICAgQW4gYWx0ZXJuYXRpdmUgdG8gc2FtcGxpbmcgd2l0aCB0ZW1wZXJhdHVyZSwgY2FsbGVkIG51Y2xldXMgc2FtcGxpbmcsIHdoZXJlIHRoZSBtb2RlbCBjb25zaWRlcnMgdGhlIHJlc3VsdHMgb2YgdGhlIHRva2VucyB3aXRoIHRvcF9wIHByb2JhYmlsaXR5IG1hc3MuIFNvIDAuMSBtZWFucyBvbmx5IHRoZSB0b2tlbnMgY29tcHJpc2luZyB0aGUgdG9wIDEwJSBwcm9iYWJpbGl0eSBtYXNzIGFyZSBjb25zaWRlcmVkLgoKICAgICAgICAgICAgV2UgZ2VuZXJhbGx5IHJlY29tbWVuZCBhbHRlcmluZyB0aGlzIG9yIGB0ZW1wZXJhdHVyZWAgYnV0IG5vdCBib3RoLgogICAgICAgIG46CiAgICAgICAgICB0eXBlOiBpbnRlZ2VyCiAgICAgICAgICBtaW5pbXVtOiAxCiAgICAgICAgICBtYXhpbXVtOiAxMjgKICAgICAgICAgIGRlZmF1bHQ6IDEKICAgICAgICAgIGV4YW1wbGU6IDEKICAgICAgICAgIG51bGxhYmxlOiB0cnVlCiAgICAgICAgICBkZXNjcmlwdGlvbjogJmNvbXBsZXRpb25zX2NvbXBsZXRpb25zX2Rlc2NyaXB0aW9uIHwKICAgICAgICAgICAgSG93IG1hbnkgY29tcGxldGlvbnMgdG8gZ2VuZXJhdGUgZm9yIGVhY2ggcHJvbXB0LgoKICAgICAgICAgICAgKipOb3RlOioqIEJlY2F1c2UgdGhpcyBwYXJhbWV0ZXIgZ2VuZXJhdGVzIG1hbnkgY29tcGxldGlvbnMsIGl0IGNhbiBxdWlja2x5IGNvbnN1bWUgeW91ciB0b2tlbiBxdW90YS4gVXNlIGNhcmVmdWxseSBhbmQgZW5zdXJlIHRoYXQgeW91IGhhdmUgcmVhc29uYWJsZSBzZXR0aW5ncyBmb3IgYG1heF90b2tlbnNgIGFuZCBgc3RvcGAuCiAgICAgICAgc3RyZWFtOgogICAgICAgICAgZGVzY3JpcHRpb246ID4KICAgICAgICAgICAgV2hldGhlciB0byBzdHJlYW0gYmFjayBwYXJ0aWFsIHByb2dyZXNzLiBJZiBzZXQsIHRva2VucyB3aWxsIGJlIHNlbnQgYXMgZGF0YS1vbmx5IFtzZXJ2ZXItc2VudCBldmVudHNdKGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0FQSS9TZXJ2ZXItc2VudF9ldmVudHMvVXNpbmdfc2VydmVyLXNlbnRfZXZlbnRzI0V2ZW50X3N0cmVhbV9mb3JtYXQpCiAgICAgICAgICAgIGFzIHRoZXkgYmVjb21lIGF2YWlsYWJsZSwgd2l0aCB0aGUgc3RyZWFtIHRlcm1pbmF0ZWQgYnkgYSBgZGF0YTogW0RPTkVdYCBtZXNzYWdlLgogICAgICAgICAgdHlwZTogYm9vbGVhbgogICAgICAgICAgbnVsbGFibGU6IHRydWUKICAgICAgICAgIGRlZmF1bHQ6IGZhbHNlCiAgICAgICAgbG9ncHJvYnM6ICZjb21wbGV0aW9uc19sb2dwcm9ic19jb25maWd1cmF0aW9uCiAgICAgICAgICB0eXBlOiBpbnRlZ2VyCiAgICAgICAgICBtaW5pbXVtOiAwCiAgICAgICAgICBtYXhpbXVtOiA1CiAgICAgICAgICBkZWZhdWx0OiBudWxsCiAgICAgICAgICBudWxsYWJsZTogdHJ1ZQogICAgICAgICAgZGVzY3JpcHRpb246ICZjb21wbGV0aW9uc19sb2dwcm9ic19kZXNjcmlwdGlvbiB8CiAgICAgICAgICAgIEluY2x1ZGUgdGhlIGxvZyBwcm9iYWJpbGl0aWVzIG9uIHRoZSBgbG9ncHJvYnNgIG1vc3QgbGlrZWx5IHRva2VucywgYXMgd2VsbCB0aGUgY2hvc2VuIHRva2Vucy4gRm9yIGV4YW1wbGUsIGlmIGBsb2dwcm9ic2AgaXMgNSwgdGhlIEFQSSB3aWxsIHJldHVybiBhIGxpc3Qgb2YgdGhlIDUgbW9zdCBsaWtlbHkgdG9rZW5zLiBUaGUgQVBJIHdpbGwgYWx3YXlzIHJldHVybiB0aGUgYGxvZ3Byb2JgIG9mIHRoZSBzYW1wbGVkIHRva2VuLCBzbyB0aGVyZSBtYXkgYmUgdXAgdG8gYGxvZ3Byb2JzKzFgIGVsZW1lbnRzIGluIHRoZSByZXNwb25zZS4KCiAgICAgICAgICAgIFRoZSBtYXhpbXVtIHZhbHVlIGZvciBgbG9ncHJvYnNgIGlzIDUuIElmIHlvdSBuZWVkIG1vcmUgdGhhbiB0aGlzLCBwbGVhc2UgY29udGFjdCB1cyB0aHJvdWdoIG91ciBbSGVscCBjZW50ZXJdKGh0dHBzOi8vaGVscC5vcGVuYWkuY29tKSBhbmQgZGVzY3JpYmUgeW91ciB1c2UgY2FzZS4KICAgICAgICBlY2hvOgogICAgICAgICAgdHlwZTogYm9vbGVhbgogICAgICAgICAgZGVmYXVsdDogZmFsc2UKICAgICAgICAgIG51bGxhYmxlOiB0cnVlCiAgICAgICAgICBkZXNjcmlwdGlvbjogJmNvbXBsZXRpb25zX2VjaG9fZGVzY3JpcHRpb24gPgogICAgICAgICAgICBFY2hvIGJhY2sgdGhlIHByb21wdCBpbiBhZGRpdGlvbiB0byB0aGUgY29tcGxldGlvbgogICAgICAgIHN0b3A6CiAgICAgICAgICBkZXNjcmlwdGlvbjogJmNvbXBsZXRpb25zX3N0b3BfZGVzY3JpcHRpb24gPgogICAgICAgICAgICBVcCB0byA0IHNlcXVlbmNlcyB3aGVyZSB0aGUgQVBJIHdpbGwgc3RvcCBnZW5lcmF0aW5nIGZ1cnRoZXIgdG9rZW5zLiBUaGUgcmV0dXJuZWQgdGV4dCB3aWxsIG5vdCBjb250YWluIHRoZSBzdG9wIHNlcXVlbmNlLgogICAgICAgICAgZGVmYXVsdDogbnVsbAogICAgICAgICAgbnVsbGFibGU6IHRydWUKICAgICAgICAgIG9uZU9mOgogICAgICAgICAgICAtIHR5cGU6IHN0cmluZwogICAgICAgICAgICAgIGRlZmF1bHQ6IDx8ZW5kb2Z0ZXh0fD4KICAgICAgICAgICAgICBleGFtcGxlOiAiXG4iCiAgICAgICAgICAgICAgbnVsbGFibGU6IHRydWUKICAgICAgICAgICAgLSB0eXBlOiBhcnJheQogICAgICAgICAgICAgIG1pbkl0ZW1zOiAxCiAgICAgICAgICAgICAgbWF4SXRlbXM6IDQKICAgICAgICAgICAgICBpdGVtczoKICAgICAgICAgICAgICAgIHR5cGU6IHN0cmluZwogICAgICAgICAgICAgICAgZXhhbXBsZTogJ1siXG4iXScKICAgICAgICBwcmVzZW5jZV9wZW5hbHR5OgogICAgICAgICAgdHlwZTogbnVtYmVyCiAgICAgICAgICBkZWZhdWx0OiAwCiAgICAgICAgICBtaW5pbXVtOiAtMgogICAgICAgICAgbWF4aW11bTogMgogICAgICAgICAgbnVsbGFibGU6IHRydWUKICAgICAgICAgIGRlc2NyaXB0aW9uOiAmY29tcGxldGlvbnNfcHJlc2VuY2VfcGVuYWx0eV9kZXNjcmlwdGlvbiB8CiAgICAgICAgICAgIE51bWJlciBiZXR3ZWVuIC0yLjAgYW5kIDIuMC4gUG9zaXRpdmUgdmFsdWVzIHBlbmFsaXplIG5ldyB0b2tlbnMgYmFzZWQgb24gd2hldGhlciB0aGV5IGFwcGVhciBpbiB0aGUgdGV4dCBzbyBmYXIsIGluY3JlYXNpbmcgdGhlIG1vZGVsJ3MgbGlrZWxpaG9vZCB0byB0YWxrIGFib3V0IG5ldyB0b3BpY3MuCgogICAgICAgICAgICBbU2VlIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgZnJlcXVlbmN5IGFuZCBwcmVzZW5jZSBwZW5hbHRpZXMuXSgvZG9jcy9hcGktcmVmZXJlbmNlL3BhcmFtZXRlci1kZXRhaWxzKQogICAgICAgIGZyZXF1ZW5jeV9wZW5hbHR5OgogICAgICAgICAgdHlwZTogbnVtYmVyCiAgICAgICAgICBkZWZhdWx0OiAwCiAgICAgICAgICBtaW5pbXVtOiAtMgogICAgICAgICAgbWF4aW11bTogMgogICAgICAgICAgbnVsbGFibGU6IHRydWUKICAgICAgICAgIGRlc2NyaXB0aW9uOiAmY29tcGxldGlvbnNfZnJlcXVlbmN5X3BlbmFsdHlfZGVzY3JpcHRpb24gfAogICAgICAgICAgICBOdW1iZXIgYmV0d2VlbiAtMi4wIGFuZCAyLjAuIFBvc2l0aXZlIHZhbHVlcyBwZW5hbGl6ZSBuZXcgdG9rZW5zIGJhc2VkIG9uIHRoZWlyIGV4aXN0aW5nIGZyZXF1ZW5jeSBpbiB0aGUgdGV4dCBzbyBmYXIsIGRlY3JlYXNpbmcgdGhlIG1vZGVsJ3MgbGlrZWxpaG9vZCB0byByZXBlYXQgdGhlIHNhbWUgbGluZSB2ZXJiYXRpbS4KCiAgICAgICAgICAgIFtTZWUgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCBmcmVxdWVuY3kgYW5kIHByZXNlbmNlIHBlbmFsdGllcy5dKC9kb2NzL2FwaS1yZWZlcmVuY2UvcGFyYW1ldGVyLWRldGFpbHMpCiAgICAgICAgYmVzdF9vZjoKICAgICAgICAgIHR5cGU6IGludGVnZXIKICAgICAgICAgIGRlZmF1bHQ6IDEKICAgICAgICAgIG1pbmltdW06IDAKICAgICAgICAgIG1heGltdW06IDIwCiAgICAgICAgICBudWxsYWJsZTogdHJ1ZQogICAgICAgICAgZGVzY3JpcHRpb246ICZjb21wbGV0aW9uc19iZXN0X29mX2Rlc2NyaXB0aW9uIHwKICAgICAgICAgICAgR2VuZXJhdGVzIGBiZXN0X29mYCBjb21wbGV0aW9ucyBzZXJ2ZXItc2lkZSBhbmQgcmV0dXJucyB0aGUgImJlc3QiICh0aGUgb25lIHdpdGggdGhlIGhpZ2hlc3QgbG9nIHByb2JhYmlsaXR5IHBlciB0b2tlbikuIFJlc3VsdHMgY2Fubm90IGJlIHN0cmVhbWVkLgoKICAgICAgICAgICAgV2hlbiB1c2VkIHdpdGggYG5gLCBgYmVzdF9vZmAgY29udHJvbHMgdGhlIG51bWJlciBvZiBjYW5kaWRhdGUgY29tcGxldGlvbnMgYW5kIGBuYCBzcGVjaWZpZXMgaG93IG1hbnkgdG8gcmV0dXJuIOKAkyBgYmVzdF9vZmAgbXVzdCBiZSBncmVhdGVyIHRoYW4gYG5gLgoKICAgICAgICAgICAgKipOb3RlOioqIEJlY2F1c2UgdGhpcyBwYXJhbWV0ZXIgZ2VuZXJhdGVzIG1hbnkgY29tcGxldGlvbnMsIGl0IGNhbiBxdWlja2x5IGNvbnN1bWUgeW91ciB0b2tlbiBxdW90YS4gVXNlIGNhcmVmdWxseSBhbmQgZW5zdXJlIHRoYXQgeW91IGhhdmUgcmVhc29uYWJsZSBzZXR0aW5ncyBmb3IgYG1heF90b2tlbnNgIGFuZCBgc3RvcGAuCiAgICAgICAgbG9naXRfYmlhczogJmNvbXBsZXRpb25zX2xvZ2l0X2JpYXMKICAgICAgICAgIHR5cGU6IG9iamVjdAogICAgICAgICAgeC1vYWlUeXBlTGFiZWw6IG1hcAogICAgICAgICAgZGVmYXVsdDogbnVsbAogICAgICAgICAgbnVsbGFibGU6IHRydWUKICAgICAgICAgIGRlc2NyaXB0aW9uOiAmY29tcGxldGlvbnNfbG9naXRfYmlhc19kZXNjcmlwdGlvbiB8CiAgICAgICAgICAgIE1vZGlmeSB0aGUgbGlrZWxpaG9vZCBvZiBzcGVjaWZpZWQgdG9rZW5zIGFwcGVhcmluZyBpbiB0aGUgY29tcGxldGlvbi4KCiAgICAgICAgICAgIEFjY2VwdHMgYSBqc29uIG9iamVjdCB0aGF0IG1hcHMgdG9rZW5zIChzcGVjaWZpZWQgYnkgdGhlaXIgdG9rZW4gSUQgaW4gdGhlIEdQVCB0b2tlbml6ZXIpIHRvIGFuIGFzc29jaWF0ZWQgYmlhcyB2YWx1ZSBmcm9tIC0xMDAgdG8gMTAwLiBZb3UgY2FuIHVzZSB0aGlzIFt0b2tlbml6ZXIgdG9vbF0oL3Rva2VuaXplcj92aWV3PWJwZSkgKHdoaWNoIHdvcmtzIGZvciBib3RoIEdQVC0yIGFuZCBHUFQtMykgdG8gY29udmVydCB0ZXh0IHRvIHRva2VuIElEcy4gTWF0aGVtYXRpY2FsbHksIHRoZSBiaWFzIGlzIGFkZGVkIHRvIHRoZSBsb2dpdHMgZ2VuZXJhdGVkIGJ5IHRoZSBtb2RlbCBwcmlvciB0byBzYW1wbGluZy4gVGhlIGV4YWN0IGVmZmVjdCB3aWxsIHZhcnkgcGVyIG1vZGVsLCBidXQgdmFsdWVzIGJldHdlZW4gLTEgYW5kIDEgc2hvdWxkIGRlY3JlYXNlIG9yIGluY3JlYXNlIGxpa2VsaWhvb2Qgb2Ygc2VsZWN0aW9uOyB2YWx1ZXMgbGlrZSAtMTAwIG9yIDEwMCBzaG91bGQgcmVzdWx0IGluIGEgYmFuIG9yIGV4Y2x1c2l2ZSBzZWxlY3Rpb24gb2YgdGhlIHJlbGV2YW50IHRva2VuLgoKICAgICAgICAgICAgQXMgYW4gZXhhbXBsZSwgeW91IGNhbiBwYXNzIGB7IjUwMjU2IjogLTEwMH1gIHRvIHByZXZlbnQgdGhlIDx8ZW5kb2Z0ZXh0fD4gdG9rZW4gZnJvbSBiZWluZyBnZW5lcmF0ZWQuCiAgICAgICAgdXNlcjogJmVuZF91c2VyX3BhcmFtX2NvbmZpZ3VyYXRpb24KICAgICAgICAgIHR5cGU6IHN0cmluZwogICAgICAgICAgZXhhbXBsZTogdXNlci0xMjM0CiAgICAgICAgICBkZXNjcmlwdGlvbjogfAogICAgICAgICAgICBBIHVuaXF1ZSBpZGVudGlmaWVyIHJlcHJlc2VudGluZyB5b3VyIGVuZC11c2VyLCB3aGljaCBjYW4gaGVscCBPcGVuQUkgdG8gbW9uaXRvciBhbmQgZGV0ZWN0IGFidXNlLiBbTGVhcm4gbW9yZV0oL2RvY3MvZ3VpZGVzL3NhZmV0eS1iZXN0LXByYWN0aWNlcy9lbmQtdXNlci1pZHMpLgogICAgICByZXF1aXJlZDoKICAgICAgICAtIG1vZGVsCiAgICAKICAgIENyZWF0ZUNvbXBsZXRpb25SZXNwb25zZToKICAgICAgdHlwZTogb2JqZWN0CiAgICAgIHByb3BlcnRpZXM6CiAgICAgICAgaWQ6CiAgICAgICAgICB0eXBlOiBzdHJpbmcKICAgICAgICBvYmplY3Q6CiAgICAgICAgICB0eXBlOiBzdHJpbmcKICAgICAgICBjcmVhdGVkOgogICAgICAgICAgdHlwZTogaW50ZWdlcgogICAgICAgIG1vZGVsOgogICAgICAgICAgdHlwZTogc3RyaW5nCiAgICAgICAgY2hvaWNlczoKICAgICAgICAgIHR5cGU6IGFycmF5CiAgICAgICAgICBpdGVtczoKICAgICAgICAgICAgdHlwZTogb2JqZWN0CiAgICAgICAgICAgIHByb3BlcnRpZXM6CiAgICAgICAgICAgICAgdGV4dDoKICAgICAgICAgICAgICAgIHR5cGU6IHN0cmluZwogICAgICAgICAgICAgIGluZGV4OgogICAgICAgICAgICAgICAgdHlwZTogaW50ZWdlcgogICAgICAgICAgICAgIGxvZ3Byb2JzOgogICAgICAgICAgICAgICAgdHlwZTogb2JqZWN0CiAgICAgICAgICAgICAgICBudWxsYWJsZTogdHJ1ZQogICAgICAgICAgICAgICAgcHJvcGVydGllczoKICAgICAgICAgICAgICAgICAgdG9rZW5zOgogICAgICAgICAgICAgICAgICAgIHR5cGU6IGFycmF5CiAgICAgICAgICAgICAgICAgICAgaXRlbXM6CiAgICAgICAgICAgICAgICAgICAgICB0eXBlOiBzdHJpbmcKICAgICAgICAgICAgICAgICAgdG9rZW5fbG9ncHJvYnM6CiAgICAgICAgICAgICAgICAgICAgdHlwZTogYXJyYXkKICAgICAgICAgICAgICAgICAgICBpdGVtczoKICAgICAgICAgICAgICAgICAgICAgIHR5cGU6IG51bWJlcgogICAgICAgICAgICAgICAgICB0b3BfbG9ncHJvYnM6CiAgICAgICAgICAgICAgICAgICAgdHlwZTogYXJyYXkKICAgICAgICAgICAgICAgICAgICBpdGVtczoKICAgICAgICAgICAgICAgICAgICAgIHR5cGU6IG9iamVjdAogICAgICAgICAgICAgICAgICB0ZXh0X29mZnNldDoKICAgICAgICAgICAgICAgICAgICB0eXBlOiBhcnJheQogICAgICAgICAgICAgICAgICAgIGl0ZW1zOgogICAgICAgICAgICAgICAgICAgICAgdHlwZTogaW50ZWdlcgogICAgICAgICAgICAgIGZpbmlzaF9yZWFzb246CiAgICAgICAgICAgICAgICB0eXBlOiBzdHJpbmcKICAgICAgICB1c2FnZToKICAgICAgICAgIHR5cGU6IG9iamVjdAogICAgICAgICAgcHJvcGVydGllczoKICAgICAgICAgICAgcHJvbXB0X3Rva2VuczoKICAgICAgICAgICAgICB0eXBlOiBpbnRlZ2VyCiAgICAgICAgICAgIGNvbXBsZXRpb25fdG9rZW5zOgogICAgICAgICAgICAgIHR5cGU6IGludGVnZXIKICAgICAgICAgICAgdG90YWxfdG9rZW5zOgogICAgICAgICAgICAgIHR5cGU6IGludGVnZXIKICAgICAgICAgIHJlcXVpcmVkOiAKICAgICAgICAgICAgLSBwcm9tcHRfdG9rZW5zCiAgICAgICAgICAgIC0gY29tcGxldGlvbl90b2tlbnMKICAgICAgICAgICAgLSB0b3RhbF90b2tlbnMKICAgICAgcmVxdWlyZWQ6IAogICAgICAgIC0gaWQKICAgICAgICAtIG9iamVjdAogICAgICAgIC0gY3JlYXRlZAogICAgICAgIC0gbW9kZWwKICAgICAgICAtIGNob2ljZXMKCiAgICBDaGF0Q29tcGxldGlvblJlcXVlc3RNZXNzYWdlOgogICAgICB0eXBlOiBvYmplY3QKICAgICAgcHJvcGVydGllczoKICAgICAgICByb2xlOgogICAgICAgICAgdHlwZTogc3RyaW5nCiAgICAgICAgICBlbnVtOiBbInN5c3RlbSIsICJ1c2VyIiwgImFzc2lzdGFudCJdCiAgICAgICAgICBkZXNjcmlwdGlvbjogVGhlIHJvbGUgb2YgdGhlIGF1dGhvciBvZiB0aGlzIG1lc3NhZ2UuCiAgICAgICAgY29udGVudDoKICAgICAgICAgIHR5cGU6IHN0cmluZwogICAgICAgICAgZGVzY3JpcHRpb246IFRoZSBjb250ZW50cyBvZiB0aGUgbWVzc2FnZQogICAgICAgIG5hbWU6CiAgICAgICAgICB0eXBlOiBzdHJpbmcKICAgICAgICAgIGRlc2NyaXB0aW9uOiBUaGUgbmFtZSBvZiB0aGUgdXNlciBpbiBhIG11bHRpLXVzZXIgY2hhdAogICAgICByZXF1aXJlZDogCiAgICAgICAgLSByb2xlCiAgICAgICAgLSBjb250ZW50CgogICAgQ2hhdENvbXBsZXRpb25SZXNwb25zZU1lc3NhZ2U6CiAgICAgIHR5cGU6IG9iamVjdAogICAgICBwcm9wZXJ0aWVzOgogICAgICAgIHJvbGU6CiAgICAgICAgICB0eXBlOiBzdHJpbmcKICAgICAgICAgIGVudW06IFsic3lzdGVtIiwgInVzZXIiLCAiYXNzaXN0YW50Il0KICAgICAgICAgIGRlc2NyaXB0aW9uOiBUaGUgcm9sZSBvZiB0aGUgYXV0aG9yIG9mIHRoaXMgbWVzc2FnZS4KICAgICAgICBjb250ZW50OgogICAgICAgICAgdHlwZTogc3RyaW5nCiAgICAgICAgICBkZXNjcmlwdGlvbjogVGhlIGNvbnRlbnRzIG9mIHRoZSBtZXNzYWdlCiAgICAgIHJlcXVpcmVkOiAKICAgICAgICAtIHJvbGUKICAgICAgICAtIGNvbnRlbnQKCiAgICBDcmVhdGVDaGF0Q29tcGxldGlvblJlcXVlc3Q6CiAgICAgIHR5cGU6IG9iamVjdAogICAgICBwcm9wZXJ0aWVzOgogICAgICAgIG1vZGVsOgogICAgICAgICAgZGVzY3JpcHRpb246IElEIG9mIHRoZSBtb2RlbCB0byB1c2UuIEN1cnJlbnRseSwgb25seSBgZ3B0LTMuNS10dXJib2AgYW5kIGBncHQtMy41LXR1cmJvLTAzMDFgIGFyZSBzdXBwb3J0ZWQuCiAgICAgICAgICB0eXBlOiBzdHJpbmcKICAgICAgICBtZXNzYWdlczoKICAgICAgICAgIGRlc2NyaXB0aW9uOiBUaGUgbWVzc2FnZXMgdG8gZ2VuZXJhdGUgY2hhdCBjb21wbGV0aW9ucyBmb3IsIGluIHRoZSBbY2hhdCBmb3JtYXRdKC9kb2NzL2d1aWRlcy9jaGF0L2ludHJvZHVjdGlvbikuCiAgICAgICAgICB0eXBlOiBhcnJheQogICAgICAgICAgbWluSXRlbXM6IDEKICAgICAgICAgIGl0ZW1zOgogICAgICAgICAgICAkcmVmOiAnIy9jb21wb25lbnRzL3NjaGVtYXMvQ2hhdENvbXBsZXRpb25SZXF1ZXN0TWVzc2FnZScKICAgICAgICB0ZW1wZXJhdHVyZToKICAgICAgICAgIHR5cGU6IG51bWJlcgogICAgICAgICAgbWluaW11bTogMAogICAgICAgICAgbWF4aW11bTogMgogICAgICAgICAgZGVmYXVsdDogMQogICAgICAgICAgZXhhbXBsZTogMQogICAgICAgICAgbnVsbGFibGU6IHRydWUKICAgICAgICAgIGRlc2NyaXB0aW9uOiAqY29tcGxldGlvbnNfdGVtcGVyYXR1cmVfZGVzY3JpcHRpb24KICAgICAgICB0b3BfcDoKICAgICAgICAgIHR5cGU6IG51bWJlcgogICAgICAgICAgbWluaW11bTogMAogICAgICAgICAgbWF4aW11bTogMQogICAgICAgICAgZGVmYXVsdDogMQogICAgICAgICAgZXhhbXBsZTogMQogICAgICAgICAgbnVsbGFibGU6IHRydWUKICAgICAgICAgIGRlc2NyaXB0aW9uOiAqY29tcGxldGlvbnNfdG9wX3BfZGVzY3JpcHRpb24KICAgICAgICBuOgogICAgICAgICAgdHlwZTogaW50ZWdlcgogICAgICAgICAgbWluaW11bTogMQogICAgICAgICAgbWF4aW11bTogMTI4CiAgICAgICAgICBkZWZhdWx0OiAxCiAgICAgICAgICBleGFtcGxlOiAxCiAgICAgICAgICBudWxsYWJsZTogdHJ1ZQogICAgICAgICAgZGVzY3JpcHRpb246IEhvdyBtYW55IGNoYXQgY29tcGxldGlvbiBjaG9pY2VzIHRvIGdlbmVyYXRlIGZvciBlYWNoIGlucHV0IG1lc3NhZ2UuCiAgICAgICAgc3RyZWFtOgogICAgICAgICAgZGVzY3JpcHRpb246ID4KICAgICAgICAgICAgSWYgc2V0LCBwYXJ0aWFsIG1lc3NhZ2UgZGVsdGFzIHdpbGwgYmUgc2VudCwgbGlrZSBpbiBDaGF0R1BULiBUb2tlbnMgd2lsbCBiZSBzZW50IGFzIGRhdGEtb25seSBbc2VydmVyLXNlbnQgZXZlbnRzXShodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9BUEkvU2VydmVyLXNlbnRfZXZlbnRzL1VzaW5nX3NlcnZlci1zZW50X2V2ZW50cyNFdmVudF9zdHJlYW1fZm9ybWF0KQogICAgICAgICAgICBhcyB0aGV5IGJlY29tZSBhdmFpbGFibGUsIHdpdGggdGhlIHN0cmVhbSB0ZXJtaW5hdGVkIGJ5IGEgYGRhdGE6IFtET05FXWAgbWVzc2FnZS4KICAgICAgICAgIHR5cGU6IGJvb2xlYW4KICAgICAgICAgIG51bGxhYmxlOiB0cnVlCiAgICAgICAgICBkZWZhdWx0OiBmYWxzZQogICAgICAgIHN0b3A6CiAgICAgICAgICBkZXNjcmlwdGlvbjogfAogICAgICAgICAgICBVcCB0byA0IHNlcXVlbmNlcyB3aGVyZSB0aGUgQVBJIHdpbGwgc3RvcCBnZW5lcmF0aW5nIGZ1cnRoZXIgdG9rZW5zLgogICAgICAgICAgZGVmYXVsdDogbnVsbAogICAgICAgICAgb25lT2Y6CiAgICAgICAgICAgIC0gdHlwZTogc3RyaW5nCiAgICAgICAgICAgICAgbnVsbGFibGU6IHRydWUKICAgICAgICAgICAgLSB0eXBlOiBhcnJheQogICAgICAgICAgICAgIG1pbkl0ZW1zOiAxCiAgICAgICAgICAgICAgbWF4SXRlbXM6IDQKICAgICAgICAgICAgICBpdGVtczoKICAgICAgICAgICAgICAgIHR5cGU6IHN0cmluZwogICAgICAgIG1heF90b2tlbnM6CiAgICAgICAgICBkZXNjcmlwdGlvbjogfAogICAgICAgICAgICBUaGUgbWF4aW11bSBudW1iZXIgb2YgdG9rZW5zIGFsbG93ZWQgZm9yIHRoZSBnZW5lcmF0ZWQgYW5zd2VyLiBCeSBkZWZhdWx0LCB0aGUgbnVtYmVyIG9mIHRva2VucyB0aGUgbW9kZWwgY2FuIHJldHVybiB3aWxsIGJlICg0MDk2IC0gcHJvbXB0IHRva2VucykuCiAgICAgICAgICBkZWZhdWx0OiBpbmYKICAgICAgICAgIHR5cGU6IGludGVnZXIKICAgICAgICBwcmVzZW5jZV9wZW5hbHR5OgogICAgICAgICAgdHlwZTogbnVtYmVyCiAgICAgICAgICBkZWZhdWx0OiAwCiAgICAgICAgICBtaW5pbXVtOiAtMgogICAgICAgICAgbWF4aW11bTogMgogICAgICAgICAgbnVsbGFibGU6IHRydWUKICAgICAgICAgIGRlc2NyaXB0aW9uOiAqY29tcGxldGlvbnNfcHJlc2VuY2VfcGVuYWx0eV9kZXNjcmlwdGlvbgogICAgICAgIGZyZXF1ZW5jeV9wZW5hbHR5OgogICAgICAgICAgdHlwZTogbnVtYmVyCiAgICAgICAgICBkZWZhdWx0OiAwCiAgICAgICAgICBtaW5pbXVtOiAtMgogICAgICAgICAgbWF4aW11bTogMgogICAgICAgICAgbnVsbGFibGU6IHRydWUKICAgICAgICAgIGRlc2NyaXB0aW9uOiAqY29tcGxldGlvbnNfZnJlcXVlbmN5X3BlbmFsdHlfZGVzY3JpcHRpb24KICAgICAgICBsb2dpdF9iaWFzOgogICAgICAgICAgdHlwZTogb2JqZWN0CiAgICAgICAgICB4LW9haVR5cGVMYWJlbDogbWFwCiAgICAgICAgICBkZWZhdWx0OiBudWxsCiAgICAgICAgICBudWxsYWJsZTogdHJ1ZQogICAgICAgICAgZGVzY3JpcHRpb246IHwKICAgICAgICAgICAgTW9kaWZ5IHRoZSBsaWtlbGlob29kIG9mIHNwZWNpZmllZCB0b2tlbnMgYXBwZWFyaW5nIGluIHRoZSBjb21wbGV0aW9uLgoKICAgICAgICAgICAgQWNjZXB0cyBhIGpzb24gb2JqZWN0IHRoYXQgbWFwcyB0b2tlbnMgKHNwZWNpZmllZCBieSB0aGVpciB0b2tlbiBJRCBpbiB0aGUgdG9rZW5pemVyKSB0byBhbiBhc3NvY2lhdGVkIGJpYXMgdmFsdWUgZnJvbSAtMTAwIHRvIDEwMC4gTWF0aGVtYXRpY2FsbHksIHRoZSBiaWFzIGlzIGFkZGVkIHRvIHRoZSBsb2dpdHMgZ2VuZXJhdGVkIGJ5IHRoZSBtb2RlbCBwcmlvciB0byBzYW1wbGluZy4gVGhlIGV4YWN0IGVmZmVjdCB3aWxsIHZhcnkgcGVyIG1vZGVsLCBidXQgdmFsdWVzIGJldHdlZW4gLTEgYW5kIDEgc2hvdWxkIGRlY3JlYXNlIG9yIGluY3JlYXNlIGxpa2VsaWhvb2Qgb2Ygc2VsZWN0aW9uOyB2YWx1ZXMgbGlrZSAtMTAwIG9yIDEwMCBzaG91bGQgcmVzdWx0IGluIGEgYmFuIG9yIGV4Y2x1c2l2ZSBzZWxlY3Rpb24gb2YgdGhlIHJlbGV2YW50IHRva2VuLgogICAgICAgIHVzZXI6ICplbmRfdXNlcl9wYXJhbV9jb25maWd1cmF0aW9uCiAgICAgIHJlcXVpcmVkOgogICAgICAgIC0gbW9kZWwKICAgICAgICAtIG1lc3NhZ2VzCgogICAgQ3JlYXRlQ2hhdENvbXBsZXRpb25SZXNwb25zZToKICAgICAgdHlwZTogb2JqZWN0CiAgICAgIHByb3BlcnRpZXM6CiAgICAgICAgaWQ6CiAgICAgICAgICB0eXBlOiBzdHJpbmcKICAgICAgICBvYmplY3Q6CiAgICAgICAgICB0eXBlOiBzdHJpbmcKICAgICAgICBjcmVhdGVkOgogICAgICAgICAgdHlwZTogaW50ZWdlcgogICAgICAgIG1vZGVsOgogICAgICAgICAgdHlwZTogc3RyaW5nCiAgICAgICAgY2hvaWNlczoKICAgICAgICAgIHR5cGU6IGFycmF5CiAgICAgICAgICBpdGVtczoKICAgICAgICAgICAgdHlwZTogb2JqZWN0CiAgICAgICAgICAgIHByb3BlcnRpZXM6CiAgICAgICAgICAgICAgaW5kZXg6CiAgICAgICAgICAgICAgICB0eXBlOiBpbnRlZ2VyCiAgICAgICAgICAgICAgbWVzc2FnZToKICAgICAgICAgICAgICAgICRyZWY6ICcjL2NvbXBvbmVudHMvc2NoZW1hcy9DaGF0Q29tcGxldGlvblJlc3BvbnNlTWVzc2FnZScKICAgICAgICAgICAgICBmaW5pc2hfcmVhc29uOgogICAgICAgICAgICAgICAgdHlwZTogc3RyaW5nCiAgICAgICAgdXNhZ2U6CiAgICAgICAgICB0eXBlOiBvYmplY3QKICAgICAgICAgIHByb3BlcnRpZXM6CiAgICAgICAgICAgIHByb21wdF90b2tlbnM6CiAgICAgICAgICAgICAgdHlwZTogaW50ZWdlcgogICAgICAgICAgICBjb21wbGV0aW9uX3Rva2VuczoKICAgICAgICAgICAgICB0eXBlOiBpbnRlZ2VyCiAgICAgICAgICAgIHRvdGFsX3Rva2VuczoKICAgICAgICAgICAgICB0eXBlOiBpbnRlZ2VyCiAgICAgICAgICByZXF1aXJlZDogCiAgICAgICAgICAgIC0gcHJvbXB0X3Rva2VucwogICAgICAgICAgICAtIGNvbXBsZXRpb25fdG9rZW5zCiAgICAgICAgICAgIC0gdG90YWxfdG9rZW5zCiAgICAgIHJlcXVpcmVkOiAKICAgICAgICAtIGlkCiAgICAgICAgLSBvYmplY3QKICAgICAgICAtIGNyZWF0ZWQKICAgICAgICAtIG1vZGVsCiAgICAgICAgLSBjaG9pY2VzCgogICAgQ3JlYXRlRWRpdFJlcXVlc3Q6CiAgICAgIHR5cGU6IG9iamVjdAogICAgICBwcm9wZXJ0aWVzOgogICAgICAgIG1vZGVsOgogICAgICAgICAgZGVzY3JpcHRpb246IElEIG9mIHRoZSBtb2RlbCB0byB1c2UuIFlvdSBjYW4gdXNlIHRoZSBgdGV4dC1kYXZpbmNpLWVkaXQtMDAxYCBvciBgY29kZS1kYXZpbmNpLWVkaXQtMDAxYCBtb2RlbCB3aXRoIHRoaXMgZW5kcG9pbnQuCiAgICAgICAgICB0eXBlOiBzdHJpbmcKICAgICAgICBpbnB1dDoKICAgICAgICAgIGRlc2NyaXB0aW9uOgogICAgICAgICAgICBUaGUgaW5wdXQgdGV4dCB0byB1c2UgYXMgYSBzdGFydGluZyBwb2ludCBmb3IgdGhlIGVkaXQuCiAgICAgICAgICB0eXBlOiBzdHJpbmcKICAgICAgICAgIGRlZmF1bHQ6ICcnCiAgICAgICAgICBudWxsYWJsZTogdHJ1ZQogICAgICAgICAgZXhhbXBsZTogIldoYXQgZGF5IG9mIHRoZSB3ZWsgaXMgaXQ/IgogICAgICAgIGluc3RydWN0aW9uOgogICAgICAgICAgZGVzY3JpcHRpb246CiAgICAgICAgICAgIFRoZSBpbnN0cnVjdGlvbiB0aGF0IHRlbGxzIHRoZSBtb2RlbCBob3cgdG8gZWRpdCB0aGUgcHJvbXB0LgogICAgICAgICAgdHlwZTogc3RyaW5nCiAgICAgICAgICBleGFtcGxlOiAiRml4IHRoZSBzcGVsbGluZyBtaXN0YWtlcy4iCiAgICAgICAgbjoKICAgICAgICAgIHR5cGU6IGludGVnZXIKICAgICAgICAgIG1pbmltdW06IDEKICAgICAgICAgIG1heGltdW06IDIwCiAgICAgICAgICBkZWZhdWx0OiAxCiAgICAgICAgICBleGFtcGxlOiAxCiAgICAgICAgICBudWxsYWJsZTogdHJ1ZQogICAgICAgICAgZGVzY3JpcHRpb246CiAgICAgICAgICAgIEhvdyBtYW55IGVkaXRzIHRvIGdlbmVyYXRlIGZvciB0aGUgaW5wdXQgYW5kIGluc3RydWN0aW9uLgogICAgICAgIHRlbXBlcmF0dXJlOgogICAgICAgICAgdHlwZTogbnVtYmVyCiAgICAgICAgICBtaW5pbXVtOiAwCiAgICAgICAgICBtYXhpbXVtOiAyCiAgICAgICAgICBkZWZhdWx0OiAxCiAgICAgICAgICBleGFtcGxlOiAxCiAgICAgICAgICBudWxsYWJsZTogdHJ1ZQogICAgICAgICAgZGVzY3JpcHRpb246ICpjb21wbGV0aW9uc190ZW1wZXJhdHVyZV9kZXNjcmlwdGlvbgogICAgICAgIHRvcF9wOgogICAgICAgICAgdHlwZTogbnVtYmVyCiAgICAgICAgICBtaW5pbXVtOiAwCiAgICAgICAgICBtYXhpbXVtOiAxCiAgICAgICAgICBkZWZhdWx0OiAxCiAgICAgICAgICBleGFtcGxlOiAxCiAgICAgICAgICBudWxsYWJsZTogdHJ1ZQogICAgICAgICAgZGVzY3JpcHRpb246ICpjb21wbGV0aW9uc190b3BfcF9kZXNjcmlwdGlvbgogICAgICByZXF1aXJlZDoKICAgICAgICAtIG1vZGVsCiAgICAgICAgLSBpbnN0cnVjdGlvbgoKICAgIENyZWF0ZUVkaXRSZXNwb25zZToKICAgICAgdHlwZTogb2JqZWN0CiAgICAgIHByb3BlcnRpZXM6CiAgICAgICAgb2JqZWN0OgogICAgICAgICAgdHlwZTogc3RyaW5nCiAgICAgICAgY3JlYXRlZDoKICAgICAgICAgIHR5cGU6IGludGVnZXIKICAgICAgICBjaG9pY2VzOgogICAgICAgICAgdHlwZTogYXJyYXkKICAgICAgICAgIGl0ZW1zOgogICAgICAgICAgICB0eXBlOiBvYmplY3QKICAgICAgICAgICAgcHJvcGVydGllczoKICAgICAgICAgICAgICB0ZXh0OgogICAgICAgICAgICAgICAgdHlwZTogc3RyaW5nCiAgICAgICAgICAgICAgaW5kZXg6CiAgICAgICAgICAgICAgICB0eXBlOiBpbnRlZ2VyCiAgICAgICAgICAgICAgbG9ncHJvYnM6CiAgICAgICAgICAgICAgICB0eXBlOiBvYmplY3QKICAgICAgICAgICAgICAgIG51bGxhYmxlOiB0cnVlCiAgICAgICAgICAgICAgICBwcm9wZXJ0aWVzOgogICAgICAgICAgICAgICAgICB0b2tlbnM6CiAgICAgICAgICAgICAgICAgICAgdHlwZTogYXJyYXkKICAgICAgICAgICAgICAgICAgICBpdGVtczoKICAgICAgICAgICAgICAgICAgICAgIHR5cGU6IHN0cmluZwogICAgICAgICAgICAgICAgICB0b2tlbl9sb2dwcm9iczoKICAgICAgICAgICAgICAgICAgICB0eXBlOiBhcnJheQogICAgICAgICAgICAgICAgICAgIGl0ZW1zOgogICAgICAgICAgICAgICAgICAgICAgdHlwZTogbnVtYmVyCiAgICAgICAgICAgICAgICAgIHRvcF9sb2dwcm9iczoKICAgICAgICAgICAgICAgICAgICB0eXBlOiBhcnJheQogICAgICAgICAgICAgICAgICAgIGl0ZW1zOgogICAgICAgICAgICAgICAgICAgICAgdHlwZTogb2JqZWN0CiAgICAgICAgICAgICAgICAgIHRleHRfb2Zmc2V0OgogICAgICAgICAgICAgICAgICAgIHR5cGU6IGFycmF5CiAgICAgICAgICAgICAgICAgICAgaXRlbXM6CiAgICAgICAgICAgICAgICAgICAgICB0eXBlOiBpbnRlZ2VyCiAgICAgICAgICAgICAgZmluaXNoX3JlYXNvbjoKICAgICAgICAgICAgICAgIHR5cGU6IHN0cmluZwogICAgICAgIHVzYWdlOgogICAgICAgICAgdHlwZTogb2JqZWN0CiAgICAgICAgICBwcm9wZXJ0aWVzOgogICAgICAgICAgICBwcm9tcHRfdG9rZW5zOgogICAgICAgICAgICAgIHR5cGU6IGludGVnZXIKICAgICAgICAgICAgY29tcGxldGlvbl90b2tlbnM6CiAgICAgICAgICAgICAgdHlwZTogaW50ZWdlcgogICAgICAgICAgICB0b3RhbF90b2tlbnM6CiAgICAgICAgICAgICAgdHlwZTogaW50ZWdlcgogICAgICAgICAgcmVxdWlyZWQ6IAogICAgICAgICAgICAtIHByb21wdF90b2tlbnMKICAgICAgICAgICAgLSBjb21wbGV0aW9uX3Rva2VucwogICAgICAgICAgICAtIHRvdGFsX3Rva2VucwogICAgICByZXF1aXJlZDogCiAgICAgICAgLSBvYmplY3QKICAgICAgICAtIGNyZWF0ZWQKICAgICAgICAtIGNob2ljZXMKICAgICAgICAtIHVzYWdlCgogICAgQ3JlYXRlSW1hZ2VSZXF1ZXN0OgogICAgICB0eXBlOiBvYmplY3QKICAgICAgcHJvcGVydGllczoKICAgICAgICBwcm9tcHQ6CiAgICAgICAgICBkZXNjcmlwdGlvbjogQSB0ZXh0IGRlc2NyaXB0aW9uIG9mIHRoZSBkZXNpcmVkIGltYWdlKHMpLiBUaGUgbWF4aW11bSBsZW5ndGggaXMgMTAwMCBjaGFyYWN0ZXJzLgogICAgICAgICAgdHlwZTogc3RyaW5nCiAgICAgICAgICBleGFtcGxlOiAiQSBjdXRlIGJhYnkgc2VhIG90dGVyIgogICAgICAgIG46ICZpbWFnZXNfbgogICAgICAgICAgdHlwZTogaW50ZWdlcgogICAgICAgICAgbWluaW11bTogMQogICAgICAgICAgbWF4aW11bTogMTAKICAgICAgICAgIGRlZmF1bHQ6IDEKICAgICAgICAgIGV4YW1wbGU6IDEKICAgICAgICAgIG51bGxhYmxlOiB0cnVlCiAgICAgICAgICBkZXNjcmlwdGlvbjogVGhlIG51bWJlciBvZiBpbWFnZXMgdG8gZ2VuZXJhdGUuIE11c3QgYmUgYmV0d2VlbiAxIGFuZCAxMC4KICAgICAgICBzaXplOiAmaW1hZ2VzX3NpemUKICAgICAgICAgIHR5cGU6IHN0cmluZwogICAgICAgICAgZW51bTogWyIyNTZ4MjU2IiwgIjUxMng1MTIiLCAiMTAyNHgxMDI0Il0KICAgICAgICAgIGRlZmF1bHQ6ICIxMDI0eDEwMjQiCiAgICAgICAgICBleGFtcGxlOiAiMTAyNHgxMDI0IgogICAgICAgICAgbnVsbGFibGU6IHRydWUKICAgICAgICAgIGRlc2NyaXB0aW9uOiBUaGUgc2l6ZSBvZiB0aGUgZ2VuZXJhdGVkIGltYWdlcy4gTXVzdCBiZSBvbmUgb2YgYDI1NngyNTZgLCBgNTEyeDUxMmAsIG9yIGAxMDI0eDEwMjRgLgogICAgICAgIHJlc3BvbnNlX2Zvcm1hdDogJmltYWdlc19yZXNwb25zZV9mb3JtYXQKICAgICAgICAgIHR5cGU6IHN0cmluZwogICAgICAgICAgZW51bTogWyJ1cmwiLCAiYjY0X2pzb24iXQogICAgICAgICAgZGVmYXVsdDogInVybCIKICAgICAgICAgIGV4YW1wbGU6ICJ1cmwiCiAgICAgICAgICBudWxsYWJsZTogdHJ1ZQogICAgICAgICAgZGVzY3JpcHRpb246IFRoZSBmb3JtYXQgaW4gd2hpY2ggdGhlIGdlbmVyYXRlZCBpbWFnZXMgYXJlIHJldHVybmVkLiBNdXN0IGJlIG9uZSBvZiBgdXJsYCBvciBgYjY0X2pzb25gLgogICAgICAgIHVzZXI6ICplbmRfdXNlcl9wYXJhbV9jb25maWd1cmF0aW9uCiAgICAgIHJlcXVpcmVkOgogICAgICAgIC0gcHJvbXB0CgogICAgSW1hZ2VzUmVzcG9uc2U6CiAgICAgIHByb3BlcnRpZXM6CiAgICAgICAgY3JlYXRlZDoKICAgICAgICAgIHR5cGU6IGludGVnZXIKICAgICAgICBkYXRhOgogICAgICAgICAgdHlwZTogYXJyYXkKICAgICAgICAgIGl0ZW1zOgogICAgICAgICAgICB0eXBlOiBvYmplY3QKICAgICAgICAgICAgcHJvcGVydGllczoKICAgICAgICAgICAgICB1cmw6CiAgICAgICAgICAgICAgICB0eXBlOiBzdHJpbmcKICAgICAgICAgICAgICBiNjRfanNvbjoKICAgICAgICAgICAgICAgIHR5cGU6IHN0cmluZwogICAgICByZXF1aXJlZDoKICAgICAgICAtIGNyZWF0ZWQKICAgICAgICAtIGRhdGEKCiAgICBDcmVhdGVJbWFnZUVkaXRSZXF1ZXN0OgogICAgICB0eXBlOiBvYmplY3QKICAgICAgcHJvcGVydGllczoKICAgICAgICBpbWFnZToKICAgICAgICAgIGRlc2NyaXB0aW9uOiBUaGUgaW1hZ2UgdG8gZWRpdC4gTXVzdCBiZSBhIHZhbGlkIFBORyBmaWxlLCBsZXNzIHRoYW4gNE1CLCBhbmQgc3F1YXJlLiBJZiBtYXNrIGlzIG5vdCBwcm92aWRlZCwgaW1hZ2UgbXVzdCBoYXZlIHRyYW5zcGFyZW5jeSwgd2hpY2ggd2lsbCBiZSB1c2VkIGFzIHRoZSBtYXNrLgogICAgICAgICAgdHlwZTogc3RyaW5nCiAgICAgICAgICBmb3JtYXQ6IGJpbmFyeQogICAgICAgIG1hc2s6CiAgICAgICAgICBkZXNjcmlwdGlvbjogQW4gYWRkaXRpb25hbCBpbWFnZSB3aG9zZSBmdWxseSB0cmFuc3BhcmVudCBhcmVhcyAoZS5nLiB3aGVyZSBhbHBoYSBpcyB6ZXJvKSBpbmRpY2F0ZSB3aGVyZSBgaW1hZ2VgIHNob3VsZCBiZSBlZGl0ZWQuIE11c3QgYmUgYSB2YWxpZCBQTkcgZmlsZSwgbGVzcyB0aGFuIDRNQiwgYW5kIGhhdmUgdGhlIHNhbWUgZGltZW5zaW9ucyBhcyBgaW1hZ2VgLgogICAgICAgICAgdHlwZTogc3RyaW5nCiAgICAgICAgICBmb3JtYXQ6IGJpbmFyeQogICAgICAgIHByb21wdDoKICAgICAgICAgIGRlc2NyaXB0aW9uOiBBIHRleHQgZGVzY3JpcHRpb24gb2YgdGhlIGRlc2lyZWQgaW1hZ2UocykuIFRoZSBtYXhpbXVtIGxlbmd0aCBpcyAxMDAwIGNoYXJhY3RlcnMuCiAgICAgICAgICB0eXBlOiBzdHJpbmcKICAgICAgICAgIGV4YW1wbGU6ICJBIGN1dGUgYmFieSBzZWEgb3R0ZXIgd2VhcmluZyBhIGJlcmV0IgogICAgICAgIG46ICppbWFnZXNfbgogICAgICAgIHNpemU6ICppbWFnZXNfc2l6ZQogICAgICAgIHJlc3BvbnNlX2Zvcm1hdDogKmltYWdlc19yZXNwb25zZV9mb3JtYXQKICAgICAgICB1c2VyOiAqZW5kX3VzZXJfcGFyYW1fY29uZmlndXJhdGlvbgogICAgICByZXF1aXJlZDoKICAgICAgICAtIHByb21wdAogICAgICAgIC0gaW1hZ2UKCiAgICBDcmVhdGVJbWFnZVZhcmlhdGlvblJlcXVlc3Q6CiAgICAgIHR5cGU6IG9iamVjdAogICAgICBwcm9wZXJ0aWVzOgogICAgICAgIGltYWdlOgogICAgICAgICAgZGVzY3JpcHRpb246IFRoZSBpbWFnZSB0byB1c2UgYXMgdGhlIGJhc2lzIGZvciB0aGUgdmFyaWF0aW9uKHMpLiBNdXN0IGJlIGEgdmFsaWQgUE5HIGZpbGUsIGxlc3MgdGhhbiA0TUIsIGFuZCBzcXVhcmUuCiAgICAgICAgICB0eXBlOiBzdHJpbmcKICAgICAgICAgIGZvcm1hdDogYmluYXJ5CiAgICAgICAgbjogKmltYWdlc19uCiAgICAgICAgc2l6ZTogKmltYWdlc19zaXplCiAgICAgICAgcmVzcG9uc2VfZm9ybWF0OiAqaW1hZ2VzX3Jlc3BvbnNlX2Zvcm1hdAogICAgICAgIHVzZXI6ICplbmRfdXNlcl9wYXJhbV9jb25maWd1cmF0aW9uCiAgICAgIHJlcXVpcmVkOgogICAgICAgIC0gaW1hZ2UKCiAgICBDcmVhdGVNb2RlcmF0aW9uUmVxdWVzdDoKICAgICAgdHlwZTogb2JqZWN0CiAgICAgIHByb3BlcnRpZXM6CiAgICAgICAgaW5wdXQ6CiAgICAgICAgICBkZXNjcmlwdGlvbjogVGhlIGlucHV0IHRleHQgdG8gY2xhc3NpZnkKICAgICAgICAgIG9uZU9mOgogICAgICAgICAgICAtIHR5cGU6IHN0cmluZwogICAgICAgICAgICAgIGRlZmF1bHQ6ICcnCiAgICAgICAgICAgICAgZXhhbXBsZTogIkkgd2FudCB0byBraWxsIHRoZW0uIgogICAgICAgICAgICAtIHR5cGU6IGFycmF5CiAgICAgICAgICAgICAgaXRlbXM6CiAgICAgICAgICAgICAgICB0eXBlOiBzdHJpbmcKICAgICAgICAgICAgICAgIGRlZmF1bHQ6ICcnCiAgICAgICAgICAgICAgICBleGFtcGxlOiAiSSB3YW50IHRvIGtpbGwgdGhlbS4iCiAgICAgICAgbW9kZWw6CiAgICAgICAgICBkZXNjcmlwdGlvbjogfAogICAgICAgICAgICBUd28gY29udGVudCBtb2RlcmF0aW9ucyBtb2RlbHMgYXJlIGF2YWlsYWJsZTogYHRleHQtbW9kZXJhdGlvbi1zdGFibGVgIGFuZCBgdGV4dC1tb2RlcmF0aW9uLWxhdGVzdGAuCgogICAgICAgICAgICBUaGUgZGVmYXVsdCBpcyBgdGV4dC1tb2RlcmF0aW9uLWxhdGVzdGAgd2hpY2ggd2lsbCBiZSBhdXRvbWF0aWNhbGx5IHVwZ3JhZGVkIG92ZXIgdGltZS4gVGhpcyBlbnN1cmVzIHlvdSBhcmUgYWx3YXlzIHVzaW5nIG91ciBtb3N0IGFjY3VyYXRlIG1vZGVsLiBJZiB5b3UgdXNlIGB0ZXh0LW1vZGVyYXRpb24tc3RhYmxlYCwgd2Ugd2lsbCBwcm92aWRlIGFkdmFuY2VkIG5vdGljZSBiZWZvcmUgdXBkYXRpbmcgdGhlIG1vZGVsLiBBY2N1cmFjeSBvZiBgdGV4dC1tb2RlcmF0aW9uLXN0YWJsZWAgbWF5IGJlIHNsaWdodGx5IGxvd2VyIHRoYW4gZm9yIGB0ZXh0LW1vZGVyYXRpb24tbGF0ZXN0YC4KICAgICAgICAgIHR5cGU6IHN0cmluZwogICAgICAgICAgbnVsbGFibGU6IGZhbHNlCiAgICAgICAgICBkZWZhdWx0OiAidGV4dC1tb2RlcmF0aW9uLWxhdGVzdCIKICAgICAgICAgIGV4YW1wbGU6ICJ0ZXh0LW1vZGVyYXRpb24tc3RhYmxlIgogICAgICByZXF1aXJlZDoKICAgICAgICAtIGlucHV0CgogICAgQ3JlYXRlTW9kZXJhdGlvblJlc3BvbnNlOgogICAgICB0eXBlOiBvYmplY3QKICAgICAgcHJvcGVydGllczoKICAgICAgICBpZDoKICAgICAgICAgIHR5cGU6IHN0cmluZwogICAgICAgIG1vZGVsOgogICAgICAgICAgdHlwZTogc3RyaW5nCiAgICAgICAgcmVzdWx0czoKICAgICAgICAgIHR5cGU6IGFycmF5CiAgICAgICAgICBpdGVtczoKICAgICAgICAgICAgdHlwZTogb2JqZWN0CiAgICAgICAgICAgIHByb3BlcnRpZXM6CiAgICAgICAgICAgICAgZmxhZ2dlZDoKICAgICAgICAgICAgICAgIHR5cGU6IGJvb2xlYW4KICAgICAgICAgICAgICBjYXRlZ29yaWVzOgogICAgICAgICAgICAgICAgdHlwZTogb2JqZWN0CiAgICAgICAgICAgICAgICBwcm9wZXJ0aWVzOgogICAgICAgICAgICAgICAgICBoYXRlOgogICAgICAgICAgICAgICAgICAgIHR5cGU6IGJvb2xlYW4KICAgICAgICAgICAgICAgICAgaGF0ZS90aHJlYXRlbmluZzoKICAgICAgICAgICAgICAgICAgICB0eXBlOiBib29sZWFuCiAgICAgICAgICAgICAgICAgIHNlbGYtaGFybToKICAgICAgICAgICAgICAgICAgICB0eXBlOiBib29sZWFuCiAgICAgICAgICAgICAgICAgIHNleHVhbDoKICAgICAgICAgICAgICAgICAgICB0eXBlOiBib29sZWFuCiAgICAgICAgICAgICAgICAgIHNleHVhbC9taW5vcnM6CiAgICAgICAgICAgICAgICAgICAgdHlwZTogYm9vbGVhbgogICAgICAgICAgICAgICAgICB2aW9sZW5jZToKICAgICAgICAgICAgICAgICAgICB0eXBlOiBib29sZWFuCiAgICAgICAgICAgICAgICAgIHZpb2xlbmNlL2dyYXBoaWM6CiAgICAgICAgICAgICAgICAgICAgdHlwZTogYm9vbGVhbgogICAgICAgICAgICAgICAgcmVxdWlyZWQ6IAogICAgICAgICAgICAgICAgICAtIGhhdGUKICAgICAgICAgICAgICAgICAgLSBoYXRlL3RocmVhdGVuaW5nCiAgICAgICAgICAgICAgICAgIC0gc2VsZi1oYXJtCiAgICAgICAgICAgICAgICAgIC0gc2V4dWFsCiAgICAgICAgICAgICAgICAgIC0gc2V4dWFsL21pbm9ycwogICAgICAgICAgICAgICAgICAtIHZpb2xlbmNlCiAgICAgICAgICAgICAgICAgIC0gdmlvbGVuY2UvZ3JhcGhpYwogICAgICAgICAgICAgIGNhdGVnb3J5X3Njb3JlczoKICAgICAgICAgICAgICAgIHR5cGU6IG9iamVjdAogICAgICAgICAgICAgICAgcHJvcGVydGllczoKICAgICAgICAgICAgICAgICAgaGF0ZToKICAgICAgICAgICAgICAgICAgICB0eXBlOiBudW1iZXIKICAgICAgICAgICAgICAgICAgaGF0ZS90aHJlYXRlbmluZzoKICAgICAgICAgICAgICAgICAgICB0eXBlOiBudW1iZXIKICAgICAgICAgICAgICAgICAgc2VsZi1oYXJtOgogICAgICAgICAgICAgICAgICAgIHR5cGU6IG51bWJlcgogICAgICAgICAgICAgICAgICBzZXh1YWw6CiAgICAgICAgICAgICAgICAgICAgdHlwZTogbnVtYmVyCiAgICAgICAgICAgICAgICAgIHNleHVhbC9taW5vcnM6CiAgICAgICAgICAgICAgICAgICAgdHlwZTogbnVtYmVyCiAgICAgICAgICAgICAgICAgIHZpb2xlbmNlOgogICAgICAgICAgICAgICAgICAgIHR5cGU6IG51bWJlcgogICAgICAgICAgICAgICAgICB2aW9sZW5jZS9ncmFwaGljOgogICAgICAgICAgICAgICAgICAgIHR5cGU6IG51bWJlcgogICAgICAgICAgICAgICAgcmVxdWlyZWQ6IAogICAgICAgICAgICAgICAgICAtIGhhdGUKICAgICAgICAgICAgICAgICAgLSBoYXRlL3RocmVhdGVuaW5nCiAgICAgICAgICAgICAgICAgIC0gc2VsZi1oYXJtCiAgICAgICAgICAgICAgICAgIC0gc2V4dWFsCiAgICAgICAgICAgICAgICAgIC0gc2V4dWFsL21pbm9ycwogICAgICAgICAgICAgICAgICAtIHZpb2xlbmNlCiAgICAgICAgICAgICAgICAgIC0gdmlvbGVuY2UvZ3JhcGhpYwogICAgICAgICAgICByZXF1aXJlZDogCiAgICAgICAgICAgICAgLSBmbGFnZ2VkCiAgICAgICAgICAgICAgLSBjYXRlZ29yaWVzCiAgICAgICAgICAgICAgLSBjYXRlZ29yeV9zY29yZXMKICAgICAgcmVxdWlyZWQ6IAogICAgICAgIC0gaWQKICAgICAgICAtIG1vZGVsCiAgICAgICAgLSByZXN1bHRzCgogICAgQ3JlYXRlU2VhcmNoUmVxdWVzdDoKICAgICAgdHlwZTogb2JqZWN0CiAgICAgIHByb3BlcnRpZXM6CiAgICAgICAgcXVlcnk6CiAgICAgICAgICBkZXNjcmlwdGlvbjogUXVlcnkgdG8gc2VhcmNoIGFnYWluc3QgdGhlIGRvY3VtZW50cy4KICAgICAgICAgIHR5cGU6IHN0cmluZwogICAgICAgICAgZXhhbXBsZTogInRoZSBwcmVzaWRlbnQiCiAgICAgICAgICBtaW5MZW5ndGg6IDEKICAgICAgICBkb2N1bWVudHM6CiAgICAgICAgICBkZXNjcmlwdGlvbjogfAogICAgICAgICAgICBVcCB0byAyMDAgZG9jdW1lbnRzIHRvIHNlYXJjaCBvdmVyLCBwcm92aWRlZCBhcyBhIGxpc3Qgb2Ygc3RyaW5ncy4KCiAgICAgICAgICAgIFRoZSBtYXhpbXVtIGRvY3VtZW50IGxlbmd0aCAoaW4gdG9rZW5zKSBpcyAyMDM0IG1pbnVzIHRoZSBudW1iZXIgb2YgdG9rZW5zIGluIHRoZSBxdWVyeS4KCiAgICAgICAgICAgIFlvdSBzaG91bGQgc3BlY2lmeSBlaXRoZXIgYGRvY3VtZW50c2Agb3IgYSBgZmlsZWAsIGJ1dCBub3QgYm90aC4KICAgICAgICAgIHR5cGU6IGFycmF5CiAgICAgICAgICBtaW5JdGVtczogMQogICAgICAgICAgbWF4SXRlbXM6IDIwMAogICAgICAgICAgaXRlbXM6CiAgICAgICAgICAgIHR5cGU6IHN0cmluZwogICAgICAgICAgbnVsbGFibGU6IHRydWUKICAgICAgICAgIGV4YW1wbGU6ICJbJ1doaXRlIEhvdXNlJywgJ2hvc3BpdGFsJywgJ3NjaG9vbCddIgogICAgICAgIGZpbGU6CiAgICAgICAgICBkZXNjcmlwdGlvbjogfAogICAgICAgICAgICBUaGUgSUQgb2YgYW4gdXBsb2FkZWQgZmlsZSB0aGF0IGNvbnRhaW5zIGRvY3VtZW50cyB0byBzZWFyY2ggb3Zlci4KCiAgICAgICAgICAgIFlvdSBzaG91bGQgc3BlY2lmeSBlaXRoZXIgYGRvY3VtZW50c2Agb3IgYSBgZmlsZWAsIGJ1dCBub3QgYm90aC4KICAgICAgICAgIHR5cGU6IHN0cmluZwogICAgICAgICAgbnVsbGFibGU6IHRydWUKICAgICAgICBtYXhfcmVyYW5rOgogICAgICAgICAgZGVzY3JpcHRpb246IHwKICAgICAgICAgICAgVGhlIG1heGltdW0gbnVtYmVyIG9mIGRvY3VtZW50cyB0byBiZSByZS1yYW5rZWQgYW5kIHJldHVybmVkIGJ5IHNlYXJjaC4KCiAgICAgICAgICAgIFRoaXMgZmxhZyBvbmx5IHRha2VzIGVmZmVjdCB3aGVuIGBmaWxlYCBpcyBzZXQuCiAgICAgICAgICB0eXBlOiBpbnRlZ2VyCiAgICAgICAgICBtaW5pbXVtOiAxCiAgICAgICAgICBkZWZhdWx0OiAyMDAKICAgICAgICAgIG51bGxhYmxlOiB0cnVlCiAgICAgICAgcmV0dXJuX21ldGFkYXRhOiAmcmV0dXJuX21ldGFkYXRhX2NvbmZpZ3VyYXRpb24KICAgICAgICAgIGRlc2NyaXB0aW9uOiB8CiAgICAgICAgICAgIEEgc3BlY2lhbCBib29sZWFuIGZsYWcgZm9yIHNob3dpbmcgbWV0YWRhdGEuIElmIHNldCB0byBgdHJ1ZWAsIGVhY2ggZG9jdW1lbnQgZW50cnkgaW4gdGhlIHJldHVybmVkIEpTT04gd2lsbCBjb250YWluIGEgIm1ldGFkYXRhIiBmaWVsZC4KCiAgICAgICAgICAgIFRoaXMgZmxhZyBvbmx5IHRha2VzIGVmZmVjdCB3aGVuIGBmaWxlYCBpcyBzZXQuCiAgICAgICAgICB0eXBlOiBib29sZWFuCiAgICAgICAgICBkZWZhdWx0OiBmYWxzZQogICAgICAgICAgbnVsbGFibGU6IHRydWUKICAgICAgICB1c2VyOiAqZW5kX3VzZXJfcGFyYW1fY29uZmlndXJhdGlvbgogICAgICByZXF1aXJlZDoKICAgICAgICAtIHF1ZXJ5CgogICAgQ3JlYXRlU2VhcmNoUmVzcG9uc2U6CiAgICAgIHR5cGU6IG9iamVjdAogICAgICBwcm9wZXJ0aWVzOgogICAgICAgIG9iamVjdDoKICAgICAgICAgIHR5cGU6IHN0cmluZwogICAgICAgIG1vZGVsOgogICAgICAgICAgdHlwZTogc3RyaW5nCiAgICAgICAgZGF0YToKICAgICAgICAgIHR5cGU6IGFycmF5CiAgICAgICAgICBpdGVtczoKICAgICAgICAgICAgdHlwZTogb2JqZWN0CiAgICAgICAgICAgIHByb3BlcnRpZXM6CiAgICAgICAgICAgICAgb2JqZWN0OgogICAgICAgICAgICAgICAgdHlwZTogc3RyaW5nCiAgICAgICAgICAgICAgZG9jdW1lbnQ6CiAgICAgICAgICAgICAgICB0eXBlOiBpbnRlZ2VyCiAgICAgICAgICAgICAgc2NvcmU6CiAgICAgICAgICAgICAgICB0eXBlOiBudW1iZXIKCiAgICBMaXN0RmlsZXNSZXNwb25zZToKICAgICAgdHlwZTogb2JqZWN0CiAgICAgIHByb3BlcnRpZXM6CiAgICAgICAgb2JqZWN0OgogICAgICAgICAgdHlwZTogc3RyaW5nCiAgICAgICAgZGF0YToKICAgICAgICAgIHR5cGU6IGFycmF5CiAgICAgICAgICBpdGVtczoKICAgICAgICAgICAgJHJlZjogJyMvY29tcG9uZW50cy9zY2hlbWFzL09wZW5BSUZpbGUnCiAgICAgIHJlcXVpcmVkOiAKICAgICAgICAtIG9iamVjdAogICAgICAgIC0gZGF0YQoKICAgIENyZWF0ZUZpbGVSZXF1ZXN0OgogICAgICB0eXBlOiBvYmplY3QKICAgICAgYWRkaXRpb25hbFByb3BlcnRpZXM6IGZhbHNlCiAgICAgIHByb3BlcnRpZXM6CiAgICAgICAgZmlsZToKICAgICAgICAgIGRlc2NyaXB0aW9uOiB8CiAgICAgICAgICAgIE5hbWUgb2YgdGhlIFtKU09OIExpbmVzXShodHRwczovL2pzb25saW5lcy5yZWFkdGhlZG9jcy5pby9lbi9sYXRlc3QvKSBmaWxlIHRvIGJlIHVwbG9hZGVkLgoKICAgICAgICAgICAgSWYgdGhlIGBwdXJwb3NlYCBpcyBzZXQgdG8gImZpbmUtdHVuZSIsIGVhY2ggbGluZSBpcyBhIEpTT04gcmVjb3JkIHdpdGggInByb21wdCIgYW5kICJjb21wbGV0aW9uIiBmaWVsZHMgcmVwcmVzZW50aW5nIHlvdXIgW3RyYWluaW5nIGV4YW1wbGVzXSgvZG9jcy9ndWlkZXMvZmluZS10dW5pbmcvcHJlcGFyZS10cmFpbmluZy1kYXRhKS4KICAgICAgICAgIHR5cGU6IHN0cmluZwogICAgICAgICAgZm9ybWF0OiBiaW5hcnkKICAgICAgICBwdXJwb3NlOgogICAgICAgICAgZGVzY3JpcHRpb246IHwKICAgICAgICAgICAgVGhlIGludGVuZGVkIHB1cnBvc2Ugb2YgdGhlIHVwbG9hZGVkIGRvY3VtZW50cy4KCiAgICAgICAgICAgIFVzZSAiZmluZS10dW5lIiBmb3IgW0ZpbmUtdHVuaW5nXSgvZG9jcy9hcGktcmVmZXJlbmNlL2ZpbmUtdHVuZXMpLiBUaGlzIGFsbG93cyB1cyB0byB2YWxpZGF0ZSB0aGUgZm9ybWF0IG9mIHRoZSB1cGxvYWRlZCBmaWxlLgoKICAgICAgICAgIHR5cGU6IHN0cmluZwogICAgICByZXF1aXJlZDoKICAgICAgICAtIGZpbGUKICAgICAgICAtIHB1cnBvc2UKCiAgICBEZWxldGVGaWxlUmVzcG9uc2U6CiAgICAgIHR5cGU6IG9iamVjdAogICAgICBwcm9wZXJ0aWVzOgogICAgICAgIGlkOgogICAgICAgICAgdHlwZTogc3RyaW5nCiAgICAgICAgb2JqZWN0OgogICAgICAgICAgdHlwZTogc3RyaW5nCiAgICAgICAgZGVsZXRlZDoKICAgICAgICAgIHR5cGU6IGJvb2xlYW4KICAgICAgcmVxdWlyZWQ6IAogICAgICAgIC0gaWQKICAgICAgICAtIG9iamVjdAogICAgICAgIC0gZGVsZXRlZAoKICAgIENyZWF0ZUFuc3dlclJlcXVlc3Q6CiAgICAgIHR5cGU6IG9iamVjdAogICAgICBhZGRpdGlvbmFsUHJvcGVydGllczogZmFsc2UKICAgICAgcHJvcGVydGllczoKICAgICAgICBtb2RlbDoKICAgICAgICAgIGRlc2NyaXB0aW9uOiBJRCBvZiB0aGUgbW9kZWwgdG8gdXNlIGZvciBjb21wbGV0aW9uLiBZb3UgY2FuIHNlbGVjdCBvbmUgb2YgYGFkYWAsIGBiYWJiYWdlYCwgYGN1cmllYCwgb3IgYGRhdmluY2lgLgogICAgICAgICAgdHlwZTogc3RyaW5nCiAgICAgICAgcXVlc3Rpb246CiAgICAgICAgICBkZXNjcmlwdGlvbjogUXVlc3Rpb24gdG8gZ2V0IGFuc3dlcmVkLgogICAgICAgICAgdHlwZTogc3RyaW5nCiAgICAgICAgICBtaW5MZW5ndGg6IDEKICAgICAgICAgIGV4YW1wbGU6ICJXaGF0IGlzIHRoZSBjYXBpdGFsIG9mIEphcGFuPyIKICAgICAgICBleGFtcGxlczoKICAgICAgICAgIGRlc2NyaXB0aW9uOiBMaXN0IG9mIChxdWVzdGlvbiwgYW5zd2VyKSBwYWlycyB0aGF0IHdpbGwgaGVscCBzdGVlciB0aGUgbW9kZWwgdG93YXJkcyB0aGUgdG9uZSBhbmQgYW5zd2VyIGZvcm1hdCB5b3UnZCBsaWtlLiBXZSByZWNvbW1lbmQgYWRkaW5nIDIgdG8gMyBleGFtcGxlcy4KICAgICAgICAgIHR5cGU6IGFycmF5CiAgICAgICAgICBtaW5JdGVtczogMQogICAgICAgICAgbWF4SXRlbXM6IDIwMAogICAgICAgICAgaXRlbXM6CiAgICAgICAgICAgIHR5cGU6IGFycmF5CiAgICAgICAgICAgIG1pbkl0ZW1zOiAyCiAgICAgICAgICAgIG1heEl0ZW1zOiAyCiAgICAgICAgICAgIGl0ZW1zOgogICAgICAgICAgICAgIHR5cGU6IHN0cmluZwogICAgICAgICAgICAgIG1pbkxlbmd0aDogMQogICAgICAgICAgZXhhbXBsZTogIltbJ1doYXQgaXMgdGhlIGNhcGl0YWwgb2YgQ2FuYWRhPycsICdPdHRhd2EnXSwgWydXaGljaCBwcm92aW5jZSBpcyBPdHRhd2EgaW4/JywgJ09udGFyaW8nXV0iCiAgICAgICAgZXhhbXBsZXNfY29udGV4dDoKICAgICAgICAgIGRlc2NyaXB0aW9uOiBBIHRleHQgc25pcHBldCBjb250YWluaW5nIHRoZSBjb250ZXh0dWFsIGluZm9ybWF0aW9uIHVzZWQgdG8gZ2VuZXJhdGUgdGhlIGFuc3dlcnMgZm9yIHRoZSBgZXhhbXBsZXNgIHlvdSBwcm92aWRlLgogICAgICAgICAgdHlwZTogc3RyaW5nCiAgICAgICAgICBleGFtcGxlOiAiT3R0YXdhLCBDYW5hZGEncyBjYXBpdGFsLCBpcyBsb2NhdGVkIGluIHRoZSBlYXN0IG9mIHNvdXRoZXJuIE9udGFyaW8sIG5lYXIgdGhlIGNpdHkgb2YgTW9udHLDqWFsIGFuZCB0aGUgVS5TLiBib3JkZXIuIgogICAgICAgIGRvY3VtZW50czoKICAgICAgICAgIGRlc2NyaXB0aW9uOiB8CiAgICAgICAgICAgIExpc3Qgb2YgZG9jdW1lbnRzIGZyb20gd2hpY2ggdGhlIGFuc3dlciBmb3IgdGhlIGlucHV0IGBxdWVzdGlvbmAgc2hvdWxkIGJlIGRlcml2ZWQuIElmIHRoaXMgaXMgYW4gZW1wdHkgbGlzdCwgdGhlIHF1ZXN0aW9uIHdpbGwgYmUgYW5zd2VyZWQgYmFzZWQgb24gdGhlIHF1ZXN0aW9uLWFuc3dlciBleGFtcGxlcy4KCiAgICAgICAgICAgIFlvdSBzaG91bGQgc3BlY2lmeSBlaXRoZXIgYGRvY3VtZW50c2Agb3IgYSBgZmlsZWAsIGJ1dCBub3QgYm90aC4KICAgICAgICAgIHR5cGU6IGFycmF5CiAgICAgICAgICBtYXhJdGVtczogMjAwCiAgICAgICAgICBpdGVtczoKICAgICAgICAgICAgdHlwZTogc3RyaW5nCiAgICAgICAgICBleGFtcGxlOiAiWydKYXBhbiBpcyBhbiBpc2xhbmQgY291bnRyeSBpbiBFYXN0IEFzaWEsIGxvY2F0ZWQgaW4gdGhlIG5vcnRod2VzdCBQYWNpZmljIE9jZWFuLicsICdUb2t5byBpcyB0aGUgY2FwaXRhbCBhbmQgbW9zdCBwb3B1bG91cyBwcmVmZWN0dXJlIG9mIEphcGFuLiddIgogICAgICAgICAgbnVsbGFibGU6IHRydWUKICAgICAgICBmaWxlOgogICAgICAgICAgZGVzY3JpcHRpb246IHwKICAgICAgICAgICAgVGhlIElEIG9mIGFuIHVwbG9hZGVkIGZpbGUgdGhhdCBjb250YWlucyBkb2N1bWVudHMgdG8gc2VhcmNoIG92ZXIuIFNlZSBbdXBsb2FkIGZpbGVdKC9kb2NzL2FwaS1yZWZlcmVuY2UvZmlsZXMvdXBsb2FkKSBmb3IgaG93IHRvIHVwbG9hZCBhIGZpbGUgb2YgdGhlIGRlc2lyZWQgZm9ybWF0IGFuZCBwdXJwb3NlLgoKICAgICAgICAgICAgWW91IHNob3VsZCBzcGVjaWZ5IGVpdGhlciBgZG9jdW1lbnRzYCBvciBhIGBmaWxlYCwgYnV0IG5vdCBib3RoLgogICAgICAgICAgdHlwZTogc3RyaW5nCiAgICAgICAgICBudWxsYWJsZTogdHJ1ZQogICAgICAgIHNlYXJjaF9tb2RlbDogJnNlYXJjaF9tb2RlbF9jb25maWd1cmF0aW9uCiAgICAgICAgICBkZXNjcmlwdGlvbjogSUQgb2YgdGhlIG1vZGVsIHRvIHVzZSBmb3IgW1NlYXJjaF0oL2RvY3MvYXBpLXJlZmVyZW5jZS9zZWFyY2hlcy9jcmVhdGUpLiBZb3UgY2FuIHNlbGVjdCBvbmUgb2YgYGFkYWAsIGBiYWJiYWdlYCwgYGN1cmllYCwgb3IgYGRhdmluY2lgLgogICAgICAgICAgdHlwZTogc3RyaW5nCiAgICAgICAgICBkZWZhdWx0OiBhZGEKICAgICAgICAgIG51bGxhYmxlOiB0cnVlCiAgICAgICAgbWF4X3JlcmFuazoKICAgICAgICAgIGRlc2NyaXB0aW9uOiBUaGUgbWF4aW11bSBudW1iZXIgb2YgZG9jdW1lbnRzIHRvIGJlIHJhbmtlZCBieSBbU2VhcmNoXSgvZG9jcy9hcGktcmVmZXJlbmNlL3NlYXJjaGVzL2NyZWF0ZSkgd2hlbiB1c2luZyBgZmlsZWAuIFNldHRpbmcgaXQgdG8gYSBoaWdoZXIgdmFsdWUgbGVhZHMgdG8gaW1wcm92ZWQgYWNjdXJhY3kgYnV0IHdpdGggaW5jcmVhc2VkIGxhdGVuY3kgYW5kIGNvc3QuCiAgICAgICAgICB0eXBlOiBpbnRlZ2VyCiAgICAgICAgICBkZWZhdWx0OiAyMDAKICAgICAgICAgIG51bGxhYmxlOiB0cnVlCiAgICAgICAgdGVtcGVyYXR1cmU6CiAgICAgICAgICBkZXNjcmlwdGlvbjogV2hhdCBzYW1wbGluZyB0ZW1wZXJhdHVyZSB0byB1c2UsIGJldHdlZW4gMCBhbmQgMi4gSGlnaGVyIHZhbHVlcyBsaWtlIDAuOCB3aWxsIG1ha2UgdGhlIG91dHB1dCBtb3JlIHJhbmRvbSwgd2hpbGUgbG93ZXIgdmFsdWVzIGxpa2UgMC4yIHdpbGwgbWFrZSBpdCBtb3JlIGZvY3VzZWQgYW5kIGRldGVybWluaXN0aWMuCiAgICAgICAgICB0eXBlOiBudW1iZXIKICAgICAgICAgIGRlZmF1bHQ6IDAKICAgICAgICAgIG51bGxhYmxlOiB0cnVlCiAgICAgICAgbG9ncHJvYnM6ICZjb250ZXh0X2NvbXBsZXRpb25zX2xvZ3Byb2JzX2NvbmZpZ3VyYXRpb24KICAgICAgICAgIHR5cGU6IGludGVnZXIKICAgICAgICAgIG1pbmltdW06IDAKICAgICAgICAgIG1heGltdW06IDUKICAgICAgICAgIGRlZmF1bHQ6IG51bGwKICAgICAgICAgIG51bGxhYmxlOiB0cnVlCiAgICAgICAgICBkZXNjcmlwdGlvbjogfAogICAgICAgICAgICBJbmNsdWRlIHRoZSBsb2cgcHJvYmFiaWxpdGllcyBvbiB0aGUgYGxvZ3Byb2JzYCBtb3N0IGxpa2VseSB0b2tlbnMsIGFzIHdlbGwgdGhlIGNob3NlbiB0b2tlbnMuIEZvciBleGFtcGxlLCBpZiBgbG9ncHJvYnNgIGlzIDUsIHRoZSBBUEkgd2lsbCByZXR1cm4gYSBsaXN0IG9mIHRoZSA1IG1vc3QgbGlrZWx5IHRva2Vucy4gVGhlIEFQSSB3aWxsIGFsd2F5cyByZXR1cm4gdGhlIGBsb2dwcm9iYCBvZiB0aGUgc2FtcGxlZCB0b2tlbiwgc28gdGhlcmUgbWF5IGJlIHVwIHRvIGBsb2dwcm9icysxYCBlbGVtZW50cyBpbiB0aGUgcmVzcG9uc2UuCgogICAgICAgICAgICBUaGUgbWF4aW11bSB2YWx1ZSBmb3IgYGxvZ3Byb2JzYCBpcyA1LiBJZiB5b3UgbmVlZCBtb3JlIHRoYW4gdGhpcywgcGxlYXNlIGNvbnRhY3QgdXMgdGhyb3VnaCBvdXIgW0hlbHAgY2VudGVyXShodHRwczovL2hlbHAub3BlbmFpLmNvbSkgYW5kIGRlc2NyaWJlIHlvdXIgdXNlIGNhc2UuCgogICAgICAgICAgICBXaGVuIGBsb2dwcm9ic2AgaXMgc2V0LCBgY29tcGxldGlvbmAgd2lsbCBiZSBhdXRvbWF0aWNhbGx5IGFkZGVkIGludG8gYGV4cGFuZGAgdG8gZ2V0IHRoZSBsb2dwcm9icy4KICAgICAgICBtYXhfdG9rZW5zOgogICAgICAgICAgZGVzY3JpcHRpb246IFRoZSBtYXhpbXVtIG51bWJlciBvZiB0b2tlbnMgYWxsb3dlZCBmb3IgdGhlIGdlbmVyYXRlZCBhbnN3ZXIKICAgICAgICAgIHR5cGU6IGludGVnZXIKICAgICAgICAgIGRlZmF1bHQ6IDE2CiAgICAgICAgICBudWxsYWJsZTogdHJ1ZQogICAgICAgIHN0b3A6CiAgICAgICAgICBkZXNjcmlwdGlvbjogKmNvbXBsZXRpb25zX3N0b3BfZGVzY3JpcHRpb24KICAgICAgICAgIGRlZmF1bHQ6IG51bGwKICAgICAgICAgIG9uZU9mOgogICAgICAgICAgICAtIHR5cGU6IHN0cmluZwogICAgICAgICAgICAgIGRlZmF1bHQ6IDx8ZW5kb2Z0ZXh0fD4KICAgICAgICAgICAgICBleGFtcGxlOiAiXG4iCiAgICAgICAgICAgIC0gdHlwZTogYXJyYXkKICAgICAgICAgICAgICBtaW5JdGVtczogMQogICAgICAgICAgICAgIG1heEl0ZW1zOiA0CiAgICAgICAgICAgICAgaXRlbXM6CiAgICAgICAgICAgICAgICB0eXBlOiBzdHJpbmcKICAgICAgICAgICAgICAgIGV4YW1wbGU6ICdbIlxuIl0nCiAgICAgICAgICBudWxsYWJsZTogdHJ1ZQogICAgICAgIG46CiAgICAgICAgICBkZXNjcmlwdGlvbjogSG93IG1hbnkgYW5zd2VycyB0byBnZW5lcmF0ZSBmb3IgZWFjaCBxdWVzdGlvbi4KICAgICAgICAgIHR5cGU6IGludGVnZXIKICAgICAgICAgIG1pbmltdW06IDEKICAgICAgICAgIG1heGltdW06IDEwCiAgICAgICAgICBkZWZhdWx0OiAxCiAgICAgICAgICBudWxsYWJsZTogdHJ1ZQogICAgICAgIGxvZ2l0X2JpYXM6ICpjb21wbGV0aW9uc19sb2dpdF9iaWFzCiAgICAgICAgcmV0dXJuX21ldGFkYXRhOiAqcmV0dXJuX21ldGFkYXRhX2NvbmZpZ3VyYXRpb24KICAgICAgICByZXR1cm5fcHJvbXB0OiAmcmV0dXJuX3Byb21wdF9jb25maWd1cmF0aW9uCiAgICAgICAgICBkZXNjcmlwdGlvbjogSWYgc2V0IHRvIGB0cnVlYCwgdGhlIHJldHVybmVkIEpTT04gd2lsbCBpbmNsdWRlIGEgInByb21wdCIgZmllbGQgY29udGFpbmluZyB0aGUgZmluYWwgcHJvbXB0IHRoYXQgd2FzIHVzZWQgdG8gcmVxdWVzdCBhIGNvbXBsZXRpb24uIFRoaXMgaXMgbWFpbmx5IHVzZWZ1bCBmb3IgZGVidWdnaW5nIHB1cnBvc2VzLgogICAgICAgICAgdHlwZTogYm9vbGVhbgogICAgICAgICAgZGVmYXVsdDogZmFsc2UKICAgICAgICAgIG51bGxhYmxlOiB0cnVlCiAgICAgICAgZXhwYW5kOiAmZXhwYW5kX2NvbmZpZ3VyYXRpb24KICAgICAgICAgIGRlc2NyaXB0aW9uOiBJZiBhbiBvYmplY3QgbmFtZSBpcyBpbiB0aGUgbGlzdCwgd2UgcHJvdmlkZSB0aGUgZnVsbCBpbmZvcm1hdGlvbiBvZiB0aGUgb2JqZWN0OyBvdGhlcndpc2UsIHdlIG9ubHkgcHJvdmlkZSB0aGUgb2JqZWN0IElELiBDdXJyZW50bHkgd2Ugc3VwcG9ydCBgY29tcGxldGlvbmAgYW5kIGBmaWxlYCBvYmplY3RzIGZvciBleHBhbnNpb24uCiAgICAgICAgICB0eXBlOiBhcnJheQogICAgICAgICAgaXRlbXM6IHt9CiAgICAgICAgICBudWxsYWJsZTogdHJ1ZQogICAgICAgICAgZGVmYXVsdDogW10KICAgICAgICB1c2VyOiAqZW5kX3VzZXJfcGFyYW1fY29uZmlndXJhdGlvbgogICAgICByZXF1aXJlZDoKICAgICAgICAtIG1vZGVsCiAgICAgICAgLSBxdWVzdGlvbgogICAgICAgIC0gZXhhbXBsZXMKICAgICAgICAtIGV4YW1wbGVzX2NvbnRleHQKCiAgICBDcmVhdGVBbnN3ZXJSZXNwb25zZToKICAgICAgdHlwZTogb2JqZWN0CiAgICAgIHByb3BlcnRpZXM6CiAgICAgICAgb2JqZWN0OgogICAgICAgICAgdHlwZTogc3RyaW5nCiAgICAgICAgbW9kZWw6CiAgICAgICAgICB0eXBlOiBzdHJpbmcKICAgICAgICBzZWFyY2hfbW9kZWw6CiAgICAgICAgICB0eXBlOiBzdHJpbmcKICAgICAgICBjb21wbGV0aW9uOgogICAgICAgICAgdHlwZTogc3RyaW5nCiAgICAgICAgYW5zd2VyczoKICAgICAgICAgIHR5cGU6IGFycmF5CiAgICAgICAgICBpdGVtczoKICAgICAgICAgICAgdHlwZTogc3RyaW5nCiAgICAgICAgc2VsZWN0ZWRfZG9jdW1lbnRzOgogICAgICAgICAgdHlwZTogYXJyYXkKICAgICAgICAgIGl0ZW1zOgogICAgICAgICAgICB0eXBlOiBvYmplY3QKICAgICAgICAgICAgcHJvcGVydGllczoKICAgICAgICAgICAgICBkb2N1bWVudDoKICAgICAgICAgICAgICAgIHR5cGU6IGludGVnZXIKICAgICAgICAgICAgICB0ZXh0OgogICAgICAgICAgICAgICAgdHlwZTogc3RyaW5nCgogICAgQ3JlYXRlQ2xhc3NpZmljYXRpb25SZXF1ZXN0OgogICAgICB0eXBlOiBvYmplY3QKICAgICAgYWRkaXRpb25hbFByb3BlcnRpZXM6IGZhbHNlCiAgICAgIHByb3BlcnRpZXM6CiAgICAgICAgbW9kZWw6ICptb2RlbF9jb25maWd1cmF0aW9uCiAgICAgICAgcXVlcnk6CiAgICAgICAgICBkZXNjcmlwdGlvbjogUXVlcnkgdG8gYmUgY2xhc3NpZmllZC4KICAgICAgICAgIHR5cGU6IHN0cmluZwogICAgICAgICAgbWluTGVuZ3RoOiAxCiAgICAgICAgICBleGFtcGxlOiAiVGhlIHBsb3QgaXMgbm90IHZlcnkgYXR0cmFjdGl2ZS4iCiAgICAgICAgZXhhbXBsZXM6CiAgICAgICAgICBkZXNjcmlwdGlvbjogfAogICAgICAgICAgICBBIGxpc3Qgb2YgZXhhbXBsZXMgd2l0aCBsYWJlbHMsIGluIHRoZSBmb2xsb3dpbmcgZm9ybWF0OgoKICAgICAgICAgICAgYFtbIlRoZSBtb3ZpZSBpcyBzbyBpbnRlcmVzdGluZy4iLCAiUG9zaXRpdmUiXSwgWyJJdCBpcyBxdWl0ZSBib3JpbmcuIiwgIk5lZ2F0aXZlIl0sIC4uLl1gCgogICAgICAgICAgICBBbGwgdGhlIGxhYmVsIHN0cmluZ3Mgd2lsbCBiZSBub3JtYWxpemVkIHRvIGJlIGNhcGl0YWxpemVkLgoKICAgICAgICAgICAgWW91IHNob3VsZCBzcGVjaWZ5IGVpdGhlciBgZXhhbXBsZXNgIG9yIGBmaWxlYCwgYnV0IG5vdCBib3RoLgogICAgICAgICAgdHlwZTogYXJyYXkKICAgICAgICAgIG1pbkl0ZW1zOiAyCiAgICAgICAgICBtYXhJdGVtczogMjAwCiAgICAgICAgICBpdGVtczoKICAgICAgICAgICAgdHlwZTogYXJyYXkKICAgICAgICAgICAgbWluSXRlbXM6IDIKICAgICAgICAgICAgbWF4SXRlbXM6IDIKICAgICAgICAgICAgaXRlbXM6CiAgICAgICAgICAgICAgdHlwZTogc3RyaW5nCiAgICAgICAgICAgICAgbWluTGVuZ3RoOiAxCiAgICAgICAgICBleGFtcGxlOiAiW1snRG8gbm90IHNlZSB0aGlzIGZpbG0uJywgJ05lZ2F0aXZlJ10sIFsnU21hcnQsIHByb3ZvY2F0aXZlIGFuZCBibGlzdGVyaW5nbHkgZnVubnkuJywgJ1Bvc2l0aXZlJ11dIgogICAgICAgICAgbnVsbGFibGU6IHRydWUKICAgICAgICBmaWxlOgogICAgICAgICAgZGVzY3JpcHRpb246IHwKICAgICAgICAgICAgVGhlIElEIG9mIHRoZSB1cGxvYWRlZCBmaWxlIHRoYXQgY29udGFpbnMgdHJhaW5pbmcgZXhhbXBsZXMuIFNlZSBbdXBsb2FkIGZpbGVdKC9kb2NzL2FwaS1yZWZlcmVuY2UvZmlsZXMvdXBsb2FkKSBmb3IgaG93IHRvIHVwbG9hZCBhIGZpbGUgb2YgdGhlIGRlc2lyZWQgZm9ybWF0IGFuZCBwdXJwb3NlLgoKICAgICAgICAgICAgWW91IHNob3VsZCBzcGVjaWZ5IGVpdGhlciBgZXhhbXBsZXNgIG9yIGBmaWxlYCwgYnV0IG5vdCBib3RoLgogICAgICAgICAgdHlwZTogc3RyaW5nCiAgICAgICAgICBudWxsYWJsZTogdHJ1ZQogICAgICAgIGxhYmVsczoKICAgICAgICAgIGRlc2NyaXB0aW9uOiBUaGUgc2V0IG9mIGNhdGVnb3JpZXMgYmVpbmcgY2xhc3NpZmllZC4gSWYgbm90IHNwZWNpZmllZCwgY2FuZGlkYXRlIGxhYmVscyB3aWxsIGJlIGF1dG9tYXRpY2FsbHkgY29sbGVjdGVkIGZyb20gdGhlIGV4YW1wbGVzIHlvdSBwcm92aWRlLiBBbGwgdGhlIGxhYmVsIHN0cmluZ3Mgd2lsbCBiZSBub3JtYWxpemVkIHRvIGJlIGNhcGl0YWxpemVkLgogICAgICAgICAgdHlwZTogYXJyYXkKICAgICAgICAgIG1pbkl0ZW1zOiAyCiAgICAgICAgICBtYXhJdGVtczogMjAwCiAgICAgICAgICBkZWZhdWx0OiBudWxsCiAgICAgICAgICBpdGVtczoKICAgICAgICAgICAgdHlwZTogc3RyaW5nCiAgICAgICAgICBleGFtcGxlOiBbIlBvc2l0aXZlIiwgIk5lZ2F0aXZlIl0KICAgICAgICAgIG51bGxhYmxlOiB0cnVlCiAgICAgICAgc2VhcmNoX21vZGVsOiAqc2VhcmNoX21vZGVsX2NvbmZpZ3VyYXRpb24KICAgICAgICB0ZW1wZXJhdHVyZToKICAgICAgICAgIGRlc2NyaXB0aW9uOgogICAgICAgICAgICBXaGF0IHNhbXBsaW5nIHRlbXBlcmF0dXJlIHRvIHVzZSwgYmV0d2VlbiAwIGFuZCAyLiBIaWdoZXIgdmFsdWVzIGxpa2UgMC44IHdpbGwgbWFrZSB0aGUgb3V0cHV0IG1vcmUgcmFuZG9tLCB3aGlsZSBsb3dlciB2YWx1ZXMgbGlrZSAwLjIgd2lsbCBtYWtlIGl0IG1vcmUgZm9jdXNlZCBhbmQgZGV0ZXJtaW5pc3RpYy4KICAgICAgICAgIHR5cGU6IG51bWJlcgogICAgICAgICAgbWluaW11bTogMAogICAgICAgICAgbWF4aW11bTogMgogICAgICAgICAgZGVmYXVsdDogMAogICAgICAgICAgbnVsbGFibGU6IHRydWUKICAgICAgICAgIGV4YW1wbGU6IDAKICAgICAgICBsb2dwcm9iczogKmNvbnRleHRfY29tcGxldGlvbnNfbG9ncHJvYnNfY29uZmlndXJhdGlvbgogICAgICAgIG1heF9leGFtcGxlczoKICAgICAgICAgIGRlc2NyaXB0aW9uOiBUaGUgbWF4aW11bSBudW1iZXIgb2YgZXhhbXBsZXMgdG8gYmUgcmFua2VkIGJ5IFtTZWFyY2hdKC9kb2NzL2FwaS1yZWZlcmVuY2Uvc2VhcmNoZXMvY3JlYXRlKSB3aGVuIHVzaW5nIGBmaWxlYC4gU2V0dGluZyBpdCB0byBhIGhpZ2hlciB2YWx1ZSBsZWFkcyB0byBpbXByb3ZlZCBhY2N1cmFjeSBidXQgd2l0aCBpbmNyZWFzZWQgbGF0ZW5jeSBhbmQgY29zdC4KICAgICAgICAgIHR5cGU6IGludGVnZXIKICAgICAgICAgIGRlZmF1bHQ6IDIwMAogICAgICAgICAgbnVsbGFibGU6IHRydWUKICAgICAgICBsb2dpdF9iaWFzOiAqY29tcGxldGlvbnNfbG9naXRfYmlhcwogICAgICAgIHJldHVybl9wcm9tcHQ6ICpyZXR1cm5fcHJvbXB0X2NvbmZpZ3VyYXRpb24KICAgICAgICByZXR1cm5fbWV0YWRhdGE6ICpyZXR1cm5fbWV0YWRhdGFfY29uZmlndXJhdGlvbgogICAgICAgIGV4cGFuZDogKmV4cGFuZF9jb25maWd1cmF0aW9uCiAgICAgICAgdXNlcjogKmVuZF91c2VyX3BhcmFtX2NvbmZpZ3VyYXRpb24KICAgICAgcmVxdWlyZWQ6CiAgICAgICAgLSBtb2RlbAogICAgICAgIC0gcXVlcnkKCiAgICBDcmVhdGVDbGFzc2lmaWNhdGlvblJlc3BvbnNlOgogICAgICB0eXBlOiBvYmplY3QKICAgICAgcHJvcGVydGllczoKICAgICAgICBvYmplY3Q6CiAgICAgICAgICB0eXBlOiBzdHJpbmcKICAgICAgICBtb2RlbDoKICAgICAgICAgIHR5cGU6IHN0cmluZwogICAgICAgIHNlYXJjaF9tb2RlbDoKICAgICAgICAgIHR5cGU6IHN0cmluZwogICAgICAgIGNvbXBsZXRpb246CiAgICAgICAgICB0eXBlOiBzdHJpbmcKICAgICAgICBsYWJlbDoKICAgICAgICAgIHR5cGU6IHN0cmluZwogICAgICAgIHNlbGVjdGVkX2V4YW1wbGVzOgogICAgICAgICAgdHlwZTogYXJyYXkKICAgICAgICAgIGl0ZW1zOgogICAgICAgICAgICB0eXBlOiBvYmplY3QKICAgICAgICAgICAgcHJvcGVydGllczoKICAgICAgICAgICAgICBkb2N1bWVudDoKICAgICAgICAgICAgICAgIHR5cGU6IGludGVnZXIKICAgICAgICAgICAgICB0ZXh0OgogICAgICAgICAgICAgICAgdHlwZTogc3RyaW5nCiAgICAgICAgICAgICAgbGFiZWw6CiAgICAgICAgICAgICAgICB0eXBlOiBzdHJpbmcKCiAgICBDcmVhdGVGaW5lVHVuZVJlcXVlc3Q6CiAgICAgIHR5cGU6IG9iamVjdAogICAgICBwcm9wZXJ0aWVzOgogICAgICAgIHRyYWluaW5nX2ZpbGU6CiAgICAgICAgICBkZXNjcmlwdGlvbjogfAogICAgICAgICAgICBUaGUgSUQgb2YgYW4gdXBsb2FkZWQgZmlsZSB0aGF0IGNvbnRhaW5zIHRyYWluaW5nIGRhdGEuCgogICAgICAgICAgICBTZWUgW3VwbG9hZCBmaWxlXSgvZG9jcy9hcGktcmVmZXJlbmNlL2ZpbGVzL3VwbG9hZCkgZm9yIGhvdyB0byB1cGxvYWQgYSBmaWxlLgoKICAgICAgICAgICAgWW91ciBkYXRhc2V0IG11c3QgYmUgZm9ybWF0dGVkIGFzIGEgSlNPTkwgZmlsZSwgd2hlcmUgZWFjaCB0cmFpbmluZwogICAgICAgICAgICBleGFtcGxlIGlzIGEgSlNPTiBvYmplY3Qgd2l0aCB0aGUga2V5cyAicHJvbXB0IiBhbmQgImNvbXBsZXRpb24iLgogICAgICAgICAgICBBZGRpdGlvbmFsbHksIHlvdSBtdXN0IHVwbG9hZCB5b3VyIGZpbGUgd2l0aCB0aGUgcHVycG9zZSBgZmluZS10dW5lYC4KCiAgICAgICAgICAgIFNlZSB0aGUgW2ZpbmUtdHVuaW5nIGd1aWRlXSgvZG9jcy9ndWlkZXMvZmluZS10dW5pbmcvY3JlYXRpbmctdHJhaW5pbmctZGF0YSkgZm9yIG1vcmUgZGV0YWlscy4KICAgICAgICAgIHR5cGU6IHN0cmluZwogICAgICAgICAgZXhhbXBsZTogImZpbGUtYWpTUkVsczU5V0JidmdTekpTVld4TUNCIgogICAgICAgIHZhbGlkYXRpb25fZmlsZToKICAgICAgICAgIGRlc2NyaXB0aW9uOiB8CiAgICAgICAgICAgIFRoZSBJRCBvZiBhbiB1cGxvYWRlZCBmaWxlIHRoYXQgY29udGFpbnMgdmFsaWRhdGlvbiBkYXRhLgoKICAgICAgICAgICAgSWYgeW91IHByb3ZpZGUgdGhpcyBmaWxlLCB0aGUgZGF0YSBpcyB1c2VkIHRvIGdlbmVyYXRlIHZhbGlkYXRpb24KICAgICAgICAgICAgbWV0cmljcyBwZXJpb2RpY2FsbHkgZHVyaW5nIGZpbmUtdHVuaW5nLiBUaGVzZSBtZXRyaWNzIGNhbiBiZSB2aWV3ZWQgaW4KICAgICAgICAgICAgdGhlIFtmaW5lLXR1bmluZyByZXN1bHRzIGZpbGVdKC9kb2NzL2d1aWRlcy9maW5lLXR1bmluZy9hbmFseXppbmcteW91ci1maW5lLXR1bmVkLW1vZGVsKS4KICAgICAgICAgICAgWW91ciB0cmFpbiBhbmQgdmFsaWRhdGlvbiBkYXRhIHNob3VsZCBiZSBtdXR1YWxseSBleGNsdXNpdmUuCgogICAgICAgICAgICBZb3VyIGRhdGFzZXQgbXVzdCBiZSBmb3JtYXR0ZWQgYXMgYSBKU09OTCBmaWxlLCB3aGVyZSBlYWNoIHZhbGlkYXRpb24KICAgICAgICAgICAgZXhhbXBsZSBpcyBhIEpTT04gb2JqZWN0IHdpdGggdGhlIGtleXMgInByb21wdCIgYW5kICJjb21wbGV0aW9uIi4KICAgICAgICAgICAgQWRkaXRpb25hbGx5LCB5b3UgbXVzdCB1cGxvYWQgeW91ciBmaWxlIHdpdGggdGhlIHB1cnBvc2UgYGZpbmUtdHVuZWAuCgogICAgICAgICAgICBTZWUgdGhlIFtmaW5lLXR1bmluZyBndWlkZV0oL2RvY3MvZ3VpZGVzL2ZpbmUtdHVuaW5nL2NyZWF0aW5nLXRyYWluaW5nLWRhdGEpIGZvciBtb3JlIGRldGFpbHMuCiAgICAgICAgICB0eXBlOiBzdHJpbmcKICAgICAgICAgIG51bGxhYmxlOiB0cnVlCiAgICAgICAgICBleGFtcGxlOiAiZmlsZS1YalNSRWxzNTlXQmJ2Z1N6SlNWV3hNQ2EiCiAgICAgICAgbW9kZWw6CiAgICAgICAgICBkZXNjcmlwdGlvbjogfAogICAgICAgICAgICBUaGUgbmFtZSBvZiB0aGUgYmFzZSBtb2RlbCB0byBmaW5lLXR1bmUuIFlvdSBjYW4gc2VsZWN0IG9uZSBvZiAiYWRhIiwKICAgICAgICAgICAgImJhYmJhZ2UiLCAiY3VyaWUiLCAiZGF2aW5jaSIsIG9yIGEgZmluZS10dW5lZCBtb2RlbCBjcmVhdGVkIGFmdGVyIDIwMjItMDQtMjEuCiAgICAgICAgICAgIFRvIGxlYXJuIG1vcmUgYWJvdXQgdGhlc2UgbW9kZWxzLCBzZWUgdGhlCiAgICAgICAgICAgIFtNb2RlbHNdKGh0dHBzOi8vcGxhdGZvcm0ub3BlbmFpLmNvbS9kb2NzL21vZGVscykgZG9jdW1lbnRhdGlvbi4KICAgICAgICAgIGRlZmF1bHQ6ICJjdXJpZSIKICAgICAgICAgIHR5cGU6IHN0cmluZwogICAgICAgICAgbnVsbGFibGU6IHRydWUKICAgICAgICBuX2Vwb2NoczoKICAgICAgICAgIGRlc2NyaXB0aW9uOiB8CiAgICAgICAgICAgIFRoZSBudW1iZXIgb2YgZXBvY2hzIHRvIHRyYWluIHRoZSBtb2RlbCBmb3IuIEFuIGVwb2NoIHJlZmVycyB0byBvbmUKICAgICAgICAgICAgZnVsbCBjeWNsZSB0aHJvdWdoIHRoZSB0cmFpbmluZyBkYXRhc2V0LgogICAgICAgICAgZGVmYXVsdDogNAogICAgICAgICAgdHlwZTogaW50ZWdlcgogICAgICAgICAgbnVsbGFibGU6IHRydWUKICAgICAgICBiYXRjaF9zaXplOgogICAgICAgICAgZGVzY3JpcHRpb246IHwKICAgICAgICAgICAgVGhlIGJhdGNoIHNpemUgdG8gdXNlIGZvciB0cmFpbmluZy4gVGhlIGJhdGNoIHNpemUgaXMgdGhlIG51bWJlciBvZgogICAgICAgICAgICB0cmFpbmluZyBleGFtcGxlcyB1c2VkIHRvIHRyYWluIGEgc2luZ2xlIGZvcndhcmQgYW5kIGJhY2t3YXJkIHBhc3MuCgogICAgICAgICAgICBCeSBkZWZhdWx0LCB0aGUgYmF0Y2ggc2l6ZSB3aWxsIGJlIGR5bmFtaWNhbGx5IGNvbmZpZ3VyZWQgdG8gYmUKICAgICAgICAgICAgfjAuMiUgb2YgdGhlIG51bWJlciBvZiBleGFtcGxlcyBpbiB0aGUgdHJhaW5pbmcgc2V0LCBjYXBwZWQgYXQgMjU2IC0KICAgICAgICAgICAgaW4gZ2VuZXJhbCwgd2UndmUgZm91bmQgdGhhdCBsYXJnZXIgYmF0Y2ggc2l6ZXMgdGVuZCB0byB3b3JrIGJldHRlcgogICAgICAgICAgICBmb3IgbGFyZ2VyIGRhdGFzZXRzLgogICAgICAgICAgZGVmYXVsdDogbnVsbAogICAgICAgICAgdHlwZTogaW50ZWdlcgogICAgICAgICAgbnVsbGFibGU6IHRydWUKICAgICAgICBsZWFybmluZ19yYXRlX211bHRpcGxpZXI6CiAgICAgICAgICBkZXNjcmlwdGlvbjogfAogICAgICAgICAgICBUaGUgbGVhcm5pbmcgcmF0ZSBtdWx0aXBsaWVyIHRvIHVzZSBmb3IgdHJhaW5pbmcuCiAgICAgICAgICAgIFRoZSBmaW5lLXR1bmluZyBsZWFybmluZyByYXRlIGlzIHRoZSBvcmlnaW5hbCBsZWFybmluZyByYXRlIHVzZWQgZm9yCiAgICAgICAgICAgIHByZXRyYWluaW5nIG11bHRpcGxpZWQgYnkgdGhpcyB2YWx1ZS4KCiAgICAgICAgICAgIEJ5IGRlZmF1bHQsIHRoZSBsZWFybmluZyByYXRlIG11bHRpcGxpZXIgaXMgdGhlIDAuMDUsIDAuMSwgb3IgMC4yCiAgICAgICAgICAgIGRlcGVuZGluZyBvbiBmaW5hbCBgYmF0Y2hfc2l6ZWAgKGxhcmdlciBsZWFybmluZyByYXRlcyB0ZW5kIHRvCiAgICAgICAgICAgIHBlcmZvcm0gYmV0dGVyIHdpdGggbGFyZ2VyIGJhdGNoIHNpemVzKS4gV2UgcmVjb21tZW5kIGV4cGVyaW1lbnRpbmcKICAgICAgICAgICAgd2l0aCB2YWx1ZXMgaW4gdGhlIHJhbmdlIDAuMDIgdG8gMC4yIHRvIHNlZSB3aGF0IHByb2R1Y2VzIHRoZSBiZXN0CiAgICAgICAgICAgIHJlc3VsdHMuCiAgICAgICAgICBkZWZhdWx0OiBudWxsCiAgICAgICAgICB0eXBlOiBudW1iZXIKICAgICAgICAgIG51bGxhYmxlOiB0cnVlCiAgICAgICAgcHJvbXB0X2xvc3Nfd2VpZ2h0OgogICAgICAgICAgZGVzY3JpcHRpb246IHwKICAgICAgICAgICAgVGhlIHdlaWdodCB0byB1c2UgZm9yIGxvc3Mgb24gdGhlIHByb21wdCB0b2tlbnMuIFRoaXMgY29udHJvbHMgaG93CiAgICAgICAgICAgIG11Y2ggdGhlIG1vZGVsIHRyaWVzIHRvIGxlYXJuIHRvIGdlbmVyYXRlIHRoZSBwcm9tcHQgKGFzIGNvbXBhcmVkCiAgICAgICAgICAgIHRvIHRoZSBjb21wbGV0aW9uIHdoaWNoIGFsd2F5cyBoYXMgYSB3ZWlnaHQgb2YgMS4wKSwgYW5kIGNhbiBhZGQKICAgICAgICAgICAgYSBzdGFiaWxpemluZyBlZmZlY3QgdG8gdHJhaW5pbmcgd2hlbiBjb21wbGV0aW9ucyBhcmUgc2hvcnQuCgogICAgICAgICAgICBJZiBwcm9tcHRzIGFyZSBleHRyZW1lbHkgbG9uZyAocmVsYXRpdmUgdG8gY29tcGxldGlvbnMpLCBpdCBtYXkgbWFrZQogICAgICAgICAgICBzZW5zZSB0byByZWR1Y2UgdGhpcyB3ZWlnaHQgc28gYXMgdG8gYXZvaWQgb3Zlci1wcmlvcml0aXppbmcKICAgICAgICAgICAgbGVhcm5pbmcgdGhlIHByb21wdC4KICAgICAgICAgIGRlZmF1bHQ6IDAuMDEKICAgICAgICAgIHR5cGU6IG51bWJlcgogICAgICAgICAgbnVsbGFibGU6IHRydWUKICAgICAgICBjb21wdXRlX2NsYXNzaWZpY2F0aW9uX21ldHJpY3M6CiAgICAgICAgICBkZXNjcmlwdGlvbjogfAogICAgICAgICAgICBJZiBzZXQsIHdlIGNhbGN1bGF0ZSBjbGFzc2lmaWNhdGlvbi1zcGVjaWZpYyBtZXRyaWNzIHN1Y2ggYXMgYWNjdXJhY3kKICAgICAgICAgICAgYW5kIEYtMSBzY29yZSB1c2luZyB0aGUgdmFsaWRhdGlvbiBzZXQgYXQgdGhlIGVuZCBvZiBldmVyeSBlcG9jaC4KICAgICAgICAgICAgVGhlc2UgbWV0cmljcyBjYW4gYmUgdmlld2VkIGluIHRoZSBbcmVzdWx0cyBmaWxlXSgvZG9jcy9ndWlkZXMvZmluZS10dW5pbmcvYW5hbHl6aW5nLXlvdXItZmluZS10dW5lZC1tb2RlbCkuCgogICAgICAgICAgICBJbiBvcmRlciB0byBjb21wdXRlIGNsYXNzaWZpY2F0aW9uIG1ldHJpY3MsIHlvdSBtdXN0IHByb3ZpZGUgYQogICAgICAgICAgICBgdmFsaWRhdGlvbl9maWxlYC4gQWRkaXRpb25hbGx5LCB5b3UgbXVzdAogICAgICAgICAgICBzcGVjaWZ5IGBjbGFzc2lmaWNhdGlvbl9uX2NsYXNzZXNgIGZvciBtdWx0aWNsYXNzIGNsYXNzaWZpY2F0aW9uIG9yCiAgICAgICAgICAgIGBjbGFzc2lmaWNhdGlvbl9wb3NpdGl2ZV9jbGFzc2AgZm9yIGJpbmFyeSBjbGFzc2lmaWNhdGlvbi4KICAgICAgICAgIHR5cGU6IGJvb2xlYW4KICAgICAgICAgIGRlZmF1bHQ6IGZhbHNlCiAgICAgICAgICBudWxsYWJsZTogdHJ1ZQogICAgICAgIGNsYXNzaWZpY2F0aW9uX25fY2xhc3NlczoKICAgICAgICAgIGRlc2NyaXB0aW9uOiB8CiAgICAgICAgICAgIFRoZSBudW1iZXIgb2YgY2xhc3NlcyBpbiBhIGNsYXNzaWZpY2F0aW9uIHRhc2suCgogICAgICAgICAgICBUaGlzIHBhcmFtZXRlciBpcyByZXF1aXJlZCBmb3IgbXVsdGljbGFzcyBjbGFzc2lmaWNhdGlvbi4KICAgICAgICAgIHR5cGU6IGludGVnZXIKICAgICAgICAgIGRlZmF1bHQ6IG51bGwKICAgICAgICAgIG51bGxhYmxlOiB0cnVlCiAgICAgICAgY2xhc3NpZmljYXRpb25fcG9zaXRpdmVfY2xhc3M6CiAgICAgICAgICBkZXNjcmlwdGlvbjogfAogICAgICAgICAgICBUaGUgcG9zaXRpdmUgY2xhc3MgaW4gYmluYXJ5IGNsYXNzaWZpY2F0aW9uLgoKICAgICAgICAgICAgVGhpcyBwYXJhbWV0ZXIgaXMgbmVlZGVkIHRvIGdlbmVyYXRlIHByZWNpc2lvbiwgcmVjYWxsLCBhbmQgRjEKICAgICAgICAgICAgbWV0cmljcyB3aGVuIGRvaW5nIGJpbmFyeSBjbGFzc2lmaWNhdGlvbi4KICAgICAgICAgIHR5cGU6IHN0cmluZwogICAgICAgICAgZGVmYXVsdDogbnVsbAogICAgICAgICAgbnVsbGFibGU6IHRydWUKICAgICAgICBjbGFzc2lmaWNhdGlvbl9iZXRhczoKICAgICAgICAgIGRlc2NyaXB0aW9uOiB8CiAgICAgICAgICAgIElmIHRoaXMgaXMgcHJvdmlkZWQsIHdlIGNhbGN1bGF0ZSBGLWJldGEgc2NvcmVzIGF0IHRoZSBzcGVjaWZpZWQKICAgICAgICAgICAgYmV0YSB2YWx1ZXMuIFRoZSBGLWJldGEgc2NvcmUgaXMgYSBnZW5lcmFsaXphdGlvbiBvZiBGLTEgc2NvcmUuCiAgICAgICAgICAgIFRoaXMgaXMgb25seSB1c2VkIGZvciBiaW5hcnkgY2xhc3NpZmljYXRpb24uCgogICAgICAgICAgICBXaXRoIGEgYmV0YSBvZiAxIChpLmUuIHRoZSBGLTEgc2NvcmUpLCBwcmVjaXNpb24gYW5kIHJlY2FsbCBhcmUKICAgICAgICAgICAgZ2l2ZW4gdGhlIHNhbWUgd2VpZ2h0LiBBIGxhcmdlciBiZXRhIHNjb3JlIHB1dHMgbW9yZSB3ZWlnaHQgb24KICAgICAgICAgICAgcmVjYWxsIGFuZCBsZXNzIG9uIHByZWNpc2lvbi4gQSBzbWFsbGVyIGJldGEgc2NvcmUgcHV0cyBtb3JlIHdlaWdodAogICAgICAgICAgICBvbiBwcmVjaXNpb24gYW5kIGxlc3Mgb24gcmVjYWxsLgogICAgICAgICAgdHlwZTogYXJyYXkKICAgICAgICAgIGl0ZW1zOgogICAgICAgICAgICB0eXBlOiBudW1iZXIKICAgICAgICAgIGV4YW1wbGU6IFswLjYsIDEsIDEuNSwgMl0KICAgICAgICAgIGRlZmF1bHQ6IG51bGwKICAgICAgICAgIG51bGxhYmxlOiB0cnVlCiAgICAgICAgc3VmZml4OgogICAgICAgICAgZGVzY3JpcHRpb246IHwKICAgICAgICAgICAgQSBzdHJpbmcgb2YgdXAgdG8gNDAgY2hhcmFjdGVycyB0aGF0IHdpbGwgYmUgYWRkZWQgdG8geW91ciBmaW5lLXR1bmVkIG1vZGVsIG5hbWUuCgogICAgICAgICAgICBGb3IgZXhhbXBsZSwgYSBgc3VmZml4YCBvZiAiY3VzdG9tLW1vZGVsLW5hbWUiIHdvdWxkIHByb2R1Y2UgYSBtb2RlbCBuYW1lIGxpa2UgYGFkYTpmdC15b3VyLW9yZzpjdXN0b20tbW9kZWwtbmFtZS0yMDIyLTAyLTE1LTA0LTIxLTA0YC4KICAgICAgICAgIHR5cGU6IHN0cmluZwogICAgICAgICAgbWluTGVuZ3RoOiAxCiAgICAgICAgICBtYXhMZW5ndGg6IDQwCiAgICAgICAgICBkZWZhdWx0OiBudWxsCiAgICAgICAgICBudWxsYWJsZTogdHJ1ZQogICAgICByZXF1aXJlZDoKICAgICAgICAtIHRyYWluaW5nX2ZpbGUKCiAgICBMaXN0RmluZVR1bmVzUmVzcG9uc2U6CiAgICAgIHR5cGU6IG9iamVjdAogICAgICBwcm9wZXJ0aWVzOgogICAgICAgIG9iamVjdDoKICAgICAgICAgIHR5cGU6IHN0cmluZwogICAgICAgIGRhdGE6CiAgICAgICAgICB0eXBlOiBhcnJheQogICAgICAgICAgaXRlbXM6CiAgICAgICAgICAgICRyZWY6ICcjL2NvbXBvbmVudHMvc2NoZW1hcy9GaW5lVHVuZScKICAgICAgcmVxdWlyZWQ6IAogICAgICAgIC0gb2JqZWN0CiAgICAgICAgLSBkYXRhCgogICAgTGlzdEZpbmVUdW5lRXZlbnRzUmVzcG9uc2U6CiAgICAgIHR5cGU6IG9iamVjdAogICAgICBwcm9wZXJ0aWVzOgogICAgICAgIG9iamVjdDoKICAgICAgICAgIHR5cGU6IHN0cmluZwogICAgICAgIGRhdGE6CiAgICAgICAgICB0eXBlOiBhcnJheQogICAgICAgICAgaXRlbXM6CiAgICAgICAgICAgICRyZWY6ICcjL2NvbXBvbmVudHMvc2NoZW1hcy9GaW5lVHVuZUV2ZW50JwogICAgICByZXF1aXJlZDogCiAgICAgICAgLSBvYmplY3QKICAgICAgICAtIGRhdGEKCiAgICBDcmVhdGVFbWJlZGRpbmdSZXF1ZXN0OgogICAgICB0eXBlOiBvYmplY3QKICAgICAgYWRkaXRpb25hbFByb3BlcnRpZXM6IGZhbHNlCiAgICAgIHByb3BlcnRpZXM6CiAgICAgICAgbW9kZWw6ICptb2RlbF9jb25maWd1cmF0aW9uCiAgICAgICAgaW5wdXQ6CiAgICAgICAgICBkZXNjcmlwdGlvbjogfAogICAgICAgICAgICBJbnB1dCB0ZXh0IHRvIGdldCBlbWJlZGRpbmdzIGZvciwgZW5jb2RlZCBhcyBhIHN0cmluZyBvciBhcnJheSBvZiB0b2tlbnMuIFRvIGdldCBlbWJlZGRpbmdzIGZvciBtdWx0aXBsZSBpbnB1dHMgaW4gYSBzaW5nbGUgcmVxdWVzdCwgcGFzcyBhbiBhcnJheSBvZiBzdHJpbmdzIG9yIGFycmF5IG9mIHRva2VuIGFycmF5cy4gRWFjaCBpbnB1dCBtdXN0IG5vdCBleGNlZWQgODE5MiB0b2tlbnMgaW4gbGVuZ3RoLgogICAgICAgICAgZXhhbXBsZTogIlRoZSBxdWljayBicm93biBmb3gganVtcGVkIG92ZXIgdGhlIGxhenkgZG9nIgogICAgICAgICAgb25lT2Y6CiAgICAgICAgICAgIC0gdHlwZTogc3RyaW5nCiAgICAgICAgICAgICAgZGVmYXVsdDogJycKICAgICAgICAgICAgICBleGFtcGxlOiAiVGhpcyBpcyBhIHRlc3QuIgogICAgICAgICAgICAtIHR5cGU6IGFycmF5CiAgICAgICAgICAgICAgaXRlbXM6CiAgICAgICAgICAgICAgICB0eXBlOiBzdHJpbmcKICAgICAgICAgICAgICAgIGRlZmF1bHQ6ICcnCiAgICAgICAgICAgICAgICBleGFtcGxlOiAiVGhpcyBpcyBhIHRlc3QuIgogICAgICAgICAgICAtIHR5cGU6IGFycmF5CiAgICAgICAgICAgICAgbWluSXRlbXM6IDEKICAgICAgICAgICAgICBpdGVtczoKICAgICAgICAgICAgICAgIHR5cGU6IGludGVnZXIKICAgICAgICAgICAgICBleGFtcGxlOiAiWzEyMTIsIDMxOCwgMjU3LCAxMzMyLCAxM10iCiAgICAgICAgICAgIC0gdHlwZTogYXJyYXkKICAgICAgICAgICAgICBtaW5JdGVtczogMQogICAgICAgICAgICAgIGl0ZW1zOgogICAgICAgICAgICAgICAgdHlwZTogYXJyYXkKICAgICAgICAgICAgICAgIG1pbkl0ZW1zOiAxCiAgICAgICAgICAgICAgICBpdGVtczoKICAgICAgICAgICAgICAgICAgdHlwZTogaW50ZWdlcgogICAgICAgICAgICAgIGV4YW1wbGU6ICJbWzEyMTIsIDMxOCwgMjU3LCAxMzMyLCAxM11dIgogICAgICAgIHVzZXI6ICplbmRfdXNlcl9wYXJhbV9jb25maWd1cmF0aW9uCiAgICAgIHJlcXVpcmVkOgogICAgICAgIC0gbW9kZWwKICAgICAgICAtIGlucHV0CgogICAgQ3JlYXRlRW1iZWRkaW5nUmVzcG9uc2U6CiAgICAgIHR5cGU6IG9iamVjdAogICAgICBwcm9wZXJ0aWVzOgogICAgICAgIG9iamVjdDoKICAgICAgICAgIHR5cGU6IHN0cmluZwogICAgICAgIG1vZGVsOgogICAgICAgICAgdHlwZTogc3RyaW5nCiAgICAgICAgZGF0YToKICAgICAgICAgIHR5cGU6IGFycmF5CiAgICAgICAgICBpdGVtczoKICAgICAgICAgICAgdHlwZTogb2JqZWN0CiAgICAgICAgICAgIHByb3BlcnRpZXM6CiAgICAgICAgICAgICAgaW5kZXg6CiAgICAgICAgICAgICAgICB0eXBlOiBpbnRlZ2VyCiAgICAgICAgICAgICAgb2JqZWN0OgogICAgICAgICAgICAgICAgdHlwZTogc3RyaW5nCiAgICAgICAgICAgICAgZW1iZWRkaW5nOgogICAgICAgICAgICAgICAgdHlwZTogYXJyYXkKICAgICAgICAgICAgICAgIGl0ZW1zOgogICAgICAgICAgICAgICAgICB0eXBlOiBudW1iZXIKICAgICAgICAgICAgcmVxdWlyZWQ6IAogICAgICAgICAgICAgIC0gaW5kZXgKICAgICAgICAgICAgICAtIG9iamVjdAogICAgICAgICAgICAgIC0gZW1iZWRkaW5nCiAgICAgICAgdXNhZ2U6CiAgICAgICAgICB0eXBlOiBvYmplY3QKICAgICAgICAgIHByb3BlcnRpZXM6CiAgICAgICAgICAgIHByb21wdF90b2tlbnM6CiAgICAgICAgICAgICAgdHlwZTogaW50ZWdlcgogICAgICAgICAgICB0b3RhbF90b2tlbnM6CiAgICAgICAgICAgICAgdHlwZTogaW50ZWdlcgogICAgICAgICAgcmVxdWlyZWQ6IAogICAgICAgICAgICAtIHByb21wdF90b2tlbnMKICAgICAgICAgICAgLSB0b3RhbF90b2tlbnMKICAgICAgcmVxdWlyZWQ6IAogICAgICAgIC0gb2JqZWN0CiAgICAgICAgLSBtb2RlbAogICAgICAgIC0gZGF0YQogICAgICAgIC0gdXNhZ2UKCiAgICBDcmVhdGVUcmFuc2NyaXB0aW9uUmVxdWVzdDoKICAgICAgdHlwZTogb2JqZWN0CiAgICAgIGFkZGl0aW9uYWxQcm9wZXJ0aWVzOiBmYWxzZQogICAgICBwcm9wZXJ0aWVzOgogICAgICAgIGZpbGU6IAogICAgICAgICAgZGVzY3JpcHRpb246IHwKICAgICAgICAgICAgVGhlIGF1ZGlvIGZpbGUgdG8gdHJhbnNjcmliZSwgaW4gb25lIG9mIHRoZXNlIGZvcm1hdHM6IG1wMywgbXA0LCBtcGVnLCBtcGdhLCBtNGEsIHdhdiwgb3Igd2VibS4KICAgICAgICAgIHR5cGU6IHN0cmluZwogICAgICAgICAgZm9ybWF0OiBiaW5hcnkKICAgICAgICBtb2RlbDogCiAgICAgICAgICBkZXNjcmlwdGlvbjogfAogICAgICAgICAgICBJRCBvZiB0aGUgbW9kZWwgdG8gdXNlLiBPbmx5IGB3aGlzcGVyLTFgIGlzIGN1cnJlbnRseSBhdmFpbGFibGUuCiAgICAgICAgICB0eXBlOiBzdHJpbmcKICAgICAgICBwcm9tcHQ6CiAgICAgICAgICBkZXNjcmlwdGlvbjogfAogICAgICAgICAgICBBbiBvcHRpb25hbCB0ZXh0IHRvIGd1aWRlIHRoZSBtb2RlbCdzIHN0eWxlIG9yIGNvbnRpbnVlIGEgcHJldmlvdXMgYXVkaW8gc2VnbWVudC4gVGhlIFtwcm9tcHRdKC9kb2NzL2d1aWRlcy9zcGVlY2gtdG8tdGV4dC9wcm9tcHRpbmcpIHNob3VsZCBtYXRjaCB0aGUgYXVkaW8gbGFuZ3VhZ2UuCiAgICAgICAgICB0eXBlOiBzdHJpbmcKICAgICAgICByZXNwb25zZV9mb3JtYXQ6CiAgICAgICAgICBkZXNjcmlwdGlvbjogfAogICAgICAgICAgICBUaGUgZm9ybWF0IG9mIHRoZSB0cmFuc2NyaXB0IG91dHB1dCwgaW4gb25lIG9mIHRoZXNlIG9wdGlvbnM6IGpzb24sIHRleHQsIHNydCwgdmVyYm9zZV9qc29uLCBvciB2dHQuCiAgICAgICAgICB0eXBlOiBzdHJpbmcKICAgICAgICAgIGRlZmF1bHQ6IGpzb24KICAgICAgICB0ZW1wZXJhdHVyZToKICAgICAgICAgIGRlc2NyaXB0aW9uOiB8CiAgICAgICAgICAgIFRoZSBzYW1wbGluZyB0ZW1wZXJhdHVyZSwgYmV0d2VlbiAwIGFuZCAxLiBIaWdoZXIgdmFsdWVzIGxpa2UgMC44IHdpbGwgbWFrZSB0aGUgb3V0cHV0IG1vcmUgcmFuZG9tLCB3aGlsZSBsb3dlciB2YWx1ZXMgbGlrZSAwLjIgd2lsbCBtYWtlIGl0IG1vcmUgZm9jdXNlZCBhbmQgZGV0ZXJtaW5pc3RpYy4gSWYgc2V0IHRvIDAsIHRoZSBtb2RlbCB3aWxsIHVzZSBbbG9nIHByb2JhYmlsaXR5XShodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9Mb2dfcHJvYmFiaWxpdHkpIHRvIGF1dG9tYXRpY2FsbHkgaW5jcmVhc2UgdGhlIHRlbXBlcmF0dXJlIHVudGlsIGNlcnRhaW4gdGhyZXNob2xkcyBhcmUgaGl0LgogICAgICAgICAgdHlwZTogbnVtYmVyCiAgICAgICAgICBkZWZhdWx0OiAwCiAgICAgICAgbGFuZ3VhZ2U6CiAgICAgICAgICBkZXNjcmlwdGlvbjogfAogICAgICAgICAgICBUaGUgbGFuZ3VhZ2Ugb2YgdGhlIGlucHV0IGF1ZGlvLiBTdXBwbHlpbmcgdGhlIGlucHV0IGxhbmd1YWdlIGluIFtJU08tNjM5LTFdKGh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL0xpc3Rfb2ZfSVNPXzYzOS0xX2NvZGVzKSBmb3JtYXQgd2lsbCBpbXByb3ZlIGFjY3VyYWN5IGFuZCBsYXRlbmN5LgogICAgICAgICAgdHlwZTogc3RyaW5nCiAgICAgIHJlcXVpcmVkOgogICAgICAgIC0gZmlsZQogICAgICAgIC0gbW9kZWwKCiAgICAjIE5vdGU6IFRoaXMgZG9lcyBub3QgY3VycmVudGx5IHN1cHBvcnQgdGhlIG5vbi1kZWZhdWx0IHJlc3BvbnNlIGZvcm1hdCB0eXBlcy4gCiAgICBDcmVhdGVUcmFuc2NyaXB0aW9uUmVzcG9uc2U6CiAgICAgIHR5cGU6IG9iamVjdAogICAgICBwcm9wZXJ0aWVzOgogICAgICAgIHRleHQ6CiAgICAgICAgICB0eXBlOiBzdHJpbmcKICAgICAgcmVxdWlyZWQ6IAogICAgICAgIC0gdGV4dAoKICAgIENyZWF0ZVRyYW5zbGF0aW9uUmVxdWVzdDoKICAgICAgdHlwZTogb2JqZWN0CiAgICAgIGFkZGl0aW9uYWxQcm9wZXJ0aWVzOiBmYWxzZQogICAgICBwcm9wZXJ0aWVzOgogICAgICAgIGZpbGU6IAogICAgICAgICAgZGVzY3JpcHRpb246IHwKICAgICAgICAgICAgVGhlIGF1ZGlvIGZpbGUgdG8gdHJhbnNsYXRlLCBpbiBvbmUgb2YgdGhlc2UgZm9ybWF0czogbXAzLCBtcDQsIG1wZWcsIG1wZ2EsIG00YSwgd2F2LCBvciB3ZWJtLgogICAgICAgICAgdHlwZTogc3RyaW5nCiAgICAgICAgICBmb3JtYXQ6IGJpbmFyeQogICAgICAgIG1vZGVsOiAKICAgICAgICAgIGRlc2NyaXB0aW9uOiB8CiAgICAgICAgICAgIElEIG9mIHRoZSBtb2RlbCB0byB1c2UuIE9ubHkgYHdoaXNwZXItMWAgaXMgY3VycmVudGx5IGF2YWlsYWJsZS4KICAgICAgICAgIHR5cGU6IHN0cmluZwogICAgICAgIHByb21wdDoKICAgICAgICAgIGRlc2NyaXB0aW9uOiB8CiAgICAgICAgICAgIEFuIG9wdGlvbmFsIHRleHQgdG8gZ3VpZGUgdGhlIG1vZGVsJ3Mgc3R5bGUgb3IgY29udGludWUgYSBwcmV2aW91cyBhdWRpbyBzZWdtZW50LiBUaGUgW3Byb21wdF0oL2RvY3MvZ3VpZGVzL3NwZWVjaC10by10ZXh0L3Byb21wdGluZykgc2hvdWxkIGJlIGluIEVuZ2xpc2guCiAgICAgICAgICB0eXBlOiBzdHJpbmcKICAgICAgICByZXNwb25zZV9mb3JtYXQ6CiAgICAgICAgICBkZXNjcmlwdGlvbjogfAogICAgICAgICAgICBUaGUgZm9ybWF0IG9mIHRoZSB0cmFuc2NyaXB0IG91dHB1dCwgaW4gb25lIG9mIHRoZXNlIG9wdGlvbnM6IGpzb24sIHRleHQsIHNydCwgdmVyYm9zZV9qc29uLCBvciB2dHQuCiAgICAgICAgICB0eXBlOiBzdHJpbmcKICAgICAgICAgIGRlZmF1bHQ6IGpzb24KICAgICAgICB0ZW1wZXJhdHVyZToKICAgICAgICAgIGRlc2NyaXB0aW9uOiB8CiAgICAgICAgICAgIFRoZSBzYW1wbGluZyB0ZW1wZXJhdHVyZSwgYmV0d2VlbiAwIGFuZCAxLiBIaWdoZXIgdmFsdWVzIGxpa2UgMC44IHdpbGwgbWFrZSB0aGUgb3V0cHV0IG1vcmUgcmFuZG9tLCB3aGlsZSBsb3dlciB2YWx1ZXMgbGlrZSAwLjIgd2lsbCBtYWtlIGl0IG1vcmUgZm9jdXNlZCBhbmQgZGV0ZXJtaW5pc3RpYy4gSWYgc2V0IHRvIDAsIHRoZSBtb2RlbCB3aWxsIHVzZSBbbG9nIHByb2JhYmlsaXR5XShodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9Mb2dfcHJvYmFiaWxpdHkpIHRvIGF1dG9tYXRpY2FsbHkgaW5jcmVhc2UgdGhlIHRlbXBlcmF0dXJlIHVudGlsIGNlcnRhaW4gdGhyZXNob2xkcyBhcmUgaGl0LgogICAgICAgICAgdHlwZTogbnVtYmVyCiAgICAgICAgICBkZWZhdWx0OiAwCiAgICAgIHJlcXVpcmVkOgogICAgICAgIC0gZmlsZQogICAgICAgIC0gbW9kZWwKCiAgICAjIE5vdGU6IFRoaXMgZG9lcyBub3QgY3VycmVudGx5IHN1cHBvcnQgdGhlIG5vbi1kZWZhdWx0IHJlc3BvbnNlIGZvcm1hdCB0eXBlcy4gCiAgICBDcmVhdGVUcmFuc2xhdGlvblJlc3BvbnNlOgogICAgICB0eXBlOiBvYmplY3QKICAgICAgcHJvcGVydGllczoKICAgICAgICB0ZXh0OgogICAgICAgICAgdHlwZTogc3RyaW5nCiAgICAgIHJlcXVpcmVkOiAKICAgICAgICAtIHRleHQKCiAgICBFbmdpbmU6CiAgICAgIHRpdGxlOiBFbmdpbmUKICAgICAgcHJvcGVydGllczoKICAgICAgICBpZDoKICAgICAgICAgIHR5cGU6IHN0cmluZwogICAgICAgIG9iamVjdDoKICAgICAgICAgIHR5cGU6IHN0cmluZwogICAgICAgIGNyZWF0ZWQ6CiAgICAgICAgICB0eXBlOiBpbnRlZ2VyCiAgICAgICAgICBudWxsYWJsZTogdHJ1ZQogICAgICAgIHJlYWR5OgogICAgICAgICAgdHlwZTogYm9vbGVhbgogICAgICByZXF1aXJlZDogCiAgICAgICAgLSBpZAogICAgICAgIC0gb2JqZWN0CiAgICAgICAgLSBjcmVhdGVkCiAgICAgICAgLSByZWFkeQoKICAgIE1vZGVsOgogICAgICB0aXRsZTogTW9kZWwKICAgICAgcHJvcGVydGllczoKICAgICAgICBpZDoKICAgICAgICAgIHR5cGU6IHN0cmluZwogICAgICAgIG9iamVjdDoKICAgICAgICAgIHR5cGU6IHN0cmluZwogICAgICAgIGNyZWF0ZWQ6CiAgICAgICAgICB0eXBlOiBpbnRlZ2VyCiAgICAgICAgb3duZWRfYnk6CiAgICAgICAgICB0eXBlOiBzdHJpbmcKICAgICAgcmVxdWlyZWQ6IAogICAgICAgIC0gaWQKICAgICAgICAtIG9iamVjdAogICAgICAgIC0gY3JlYXRlZAogICAgICAgIC0gb3duZWRfYnkKCiAgICBPcGVuQUlGaWxlOgogICAgICB0aXRsZTogT3BlbkFJRmlsZQogICAgICBwcm9wZXJ0aWVzOgogICAgICAgIGlkOgogICAgICAgICAgdHlwZTogc3RyaW5nCiAgICAgICAgb2JqZWN0OgogICAgICAgICAgdHlwZTogc3RyaW5nCiAgICAgICAgYnl0ZXM6CiAgICAgICAgICB0eXBlOiBpbnRlZ2VyCiAgICAgICAgY3JlYXRlZF9hdDoKICAgICAgICAgIHR5cGU6IGludGVnZXIKICAgICAgICBmaWxlbmFtZToKICAgICAgICAgIHR5cGU6IHN0cmluZwogICAgICAgIHB1cnBvc2U6CiAgICAgICAgICB0eXBlOiBzdHJpbmcKICAgICAgICBzdGF0dXM6CiAgICAgICAgICB0eXBlOiBzdHJpbmcKICAgICAgICBzdGF0dXNfZGV0YWlsczoKICAgICAgICAgIHR5cGU6IG9iamVjdAogICAgICAgICAgbnVsbGFibGU6IHRydWUKICAgICAgcmVxdWlyZWQ6IAogICAgICAgIC0gaWQKICAgICAgICAtIG9iamVjdAogICAgICAgIC0gYnl0ZXMKICAgICAgICAtIGNyZWF0ZWRfYXQKICAgICAgICAtIGZpbGVuYW1lCiAgICAgICAgLSBwdXJwb3NlCgogICAgRmluZVR1bmU6CiAgICAgIHRpdGxlOiBGaW5lVHVuZQogICAgICBwcm9wZXJ0aWVzOgogICAgICAgIGlkOgogICAgICAgICAgdHlwZTogc3RyaW5nCiAgICAgICAgb2JqZWN0OgogICAgICAgICAgdHlwZTogc3RyaW5nCiAgICAgICAgY3JlYXRlZF9hdDoKICAgICAgICAgIHR5cGU6IGludGVnZXIKICAgICAgICB1cGRhdGVkX2F0OgogICAgICAgICAgdHlwZTogaW50ZWdlcgogICAgICAgIG1vZGVsOgogICAgICAgICAgdHlwZTogc3RyaW5nCiAgICAgICAgZmluZV90dW5lZF9tb2RlbDoKICAgICAgICAgIHR5cGU6IHN0cmluZwogICAgICAgICAgbnVsbGFibGU6IHRydWUKICAgICAgICBvcmdhbml6YXRpb25faWQ6CiAgICAgICAgICB0eXBlOiBzdHJpbmcKICAgICAgICBzdGF0dXM6CiAgICAgICAgICB0eXBlOiBzdHJpbmcKICAgICAgICBoeXBlcnBhcmFtczoKICAgICAgICAgIHR5cGU6IG9iamVjdAogICAgICAgIHRyYWluaW5nX2ZpbGVzOgogICAgICAgICAgdHlwZTogYXJyYXkKICAgICAgICAgIGl0ZW1zOgogICAgICAgICAgICAkcmVmOiAnIy9jb21wb25lbnRzL3NjaGVtYXMvT3BlbkFJRmlsZScKICAgICAgICB2YWxpZGF0aW9uX2ZpbGVzOgogICAgICAgICAgdHlwZTogYXJyYXkKICAgICAgICAgIGl0ZW1zOgogICAgICAgICAgICAkcmVmOiAnIy9jb21wb25lbnRzL3NjaGVtYXMvT3BlbkFJRmlsZScKICAgICAgICByZXN1bHRfZmlsZXM6CiAgICAgICAgICB0eXBlOiBhcnJheQogICAgICAgICAgaXRlbXM6CiAgICAgICAgICAgICRyZWY6ICcjL2NvbXBvbmVudHMvc2NoZW1hcy9PcGVuQUlGaWxlJwogICAgICAgIGV2ZW50czoKICAgICAgICAgIHR5cGU6IGFycmF5CiAgICAgICAgICBpdGVtczoKICAgICAgICAgICAgJHJlZjogJyMvY29tcG9uZW50cy9zY2hlbWFzL0ZpbmVUdW5lRXZlbnQnCiAgICAgIHJlcXVpcmVkOiAKICAgICAgICAtIGlkCiAgICAgICAgLSBvYmplY3QKICAgICAgICAtIGNyZWF0ZWRfYXQKICAgICAgICAtIHVwZGF0ZWRfYXQKICAgICAgICAtIG1vZGVsCiAgICAgICAgLSBmaW5lX3R1bmVkX21vZGVsCiAgICAgICAgLSBvcmdhbml6YXRpb25faWQKICAgICAgICAtIHN0YXR1cwogICAgICAgIC0gaHlwZXJwYXJhbXMKICAgICAgICAtIHRyYWluaW5nX2ZpbGVzCiAgICAgICAgLSB2YWxpZGF0aW9uX2ZpbGVzCiAgICAgICAgLSByZXN1bHRfZmlsZXMKCiAgICBGaW5lVHVuZUV2ZW50OgogICAgICB0aXRsZTogRmluZVR1bmVFdmVudAogICAgICBwcm9wZXJ0aWVzOgogICAgICAgIG9iamVjdDoKICAgICAgICAgIHR5cGU6IHN0cmluZwogICAgICAgIGNyZWF0ZWRfYXQ6CiAgICAgICAgICB0eXBlOiBpbnRlZ2VyCiAgICAgICAgbGV2ZWw6CiAgICAgICAgICB0eXBlOiBzdHJpbmcKICAgICAgICBtZXNzYWdlOgogICAgICAgICAgdHlwZTogc3RyaW5nCiAgICAgIHJlcXVpcmVkOiAKICAgICAgICAtIG9iamVjdAogICAgICAgIC0gY3JlYXRlZF9hdAogICAgICAgIC0gbGV2ZWwKICAgICAgICAtIG1lc3NhZ2UKCngtb2FpTWV0YToKICBncm91cHM6CiAgICAtIGlkOiBtb2RlbHMKICAgICAgdGl0bGU6IE1vZGVscwogICAgICBkZXNjcmlwdGlvbjogfAogICAgICAgIExpc3QgYW5kIGRlc2NyaWJlIHRoZSB2YXJpb3VzIG1vZGVscyBhdmFpbGFibGUgaW4gdGhlIEFQSS4gWW91IGNhbiByZWZlciB0byB0aGUgW01vZGVsc10oL2RvY3MvbW9kZWxzKSBkb2N1bWVudGF0aW9uIHRvIHVuZGVyc3RhbmQgd2hhdCBtb2RlbHMgYXJlIGF2YWlsYWJsZSBhbmQgdGhlIGRpZmZlcmVuY2VzIGJldHdlZW4gdGhlbS4KICAgIC0gaWQ6IGNvbXBsZXRpb25zCiAgICAgIHRpdGxlOiBDb21wbGV0aW9ucwogICAgICBkZXNjcmlwdGlvbjogfAogICAgICAgIEdpdmVuIGEgcHJvbXB0LCB0aGUgbW9kZWwgd2lsbCByZXR1cm4gb25lIG9yIG1vcmUgcHJlZGljdGVkIGNvbXBsZXRpb25zLCBhbmQgY2FuIGFsc28gcmV0dXJuIHRoZSBwcm9iYWJpbGl0aWVzIG9mIGFsdGVybmF0aXZlIHRva2VucyBhdCBlYWNoIHBvc2l0aW9uLgogICAgLSBpZDogY2hhdAogICAgICB0aXRsZTogQ2hhdAogICAgICBkZXNjcmlwdGlvbjogfAogICAgICAgIEdpdmVuIGEgY2hhdCBjb252ZXJzYXRpb24sIHRoZSBtb2RlbCB3aWxsIHJldHVybiBhIGNoYXQgY29tcGxldGlvbiByZXNwb25zZS4KICAgIC0gaWQ6IGVkaXRzCiAgICAgIHRpdGxlOiBFZGl0cwogICAgICBkZXNjcmlwdGlvbjogfAogICAgICAgIEdpdmVuIGEgcHJvbXB0IGFuZCBhbiBpbnN0cnVjdGlvbiwgdGhlIG1vZGVsIHdpbGwgcmV0dXJuIGFuIGVkaXRlZCB2ZXJzaW9uIG9mIHRoZSBwcm9tcHQuCiAgICAtIGlkOiBpbWFnZXMKICAgICAgdGl0bGU6IEltYWdlcwogICAgICBkZXNjcmlwdGlvbjogfAogICAgICAgIEdpdmVuIGEgcHJvbXB0IGFuZC9vciBhbiBpbnB1dCBpbWFnZSwgdGhlIG1vZGVsIHdpbGwgZ2VuZXJhdGUgYSBuZXcgaW1hZ2UuCgogICAgICAgIFJlbGF0ZWQgZ3VpZGU6IFtJbWFnZSBnZW5lcmF0aW9uXSgvZG9jcy9ndWlkZXMvaW1hZ2VzKQogICAgLSBpZDogZW1iZWRkaW5ncwogICAgICB0aXRsZTogRW1iZWRkaW5ncwogICAgICBkZXNjcmlwdGlvbjogfAogICAgICAgIEdldCBhIHZlY3RvciByZXByZXNlbnRhdGlvbiBvZiBhIGdpdmVuIGlucHV0IHRoYXQgY2FuIGJlIGVhc2lseSBjb25zdW1lZCBieSBtYWNoaW5lIGxlYXJuaW5nIG1vZGVscyBhbmQgYWxnb3JpdGhtcy4KCiAgICAgICAgUmVsYXRlZCBndWlkZTogW0VtYmVkZGluZ3NdKC9kb2NzL2d1aWRlcy9lbWJlZGRpbmdzKQogICAgLSBpZDogYXVkaW8KICAgICAgdGl0bGU6IEF1ZGlvCiAgICAgIGRlc2NyaXB0aW9uOiB8CiAgICAgICAgTGVhcm4gaG93IHRvIHR1cm4gYXVkaW8gaW50byB0ZXh0LgoKICAgICAgICBSZWxhdGVkIGd1aWRlOiBbU3BlZWNoIHRvIHRleHRdKC9kb2NzL2d1aWRlcy9zcGVlY2gtdG8tdGV4dCkKICAgIC0gaWQ6IGZpbGVzCiAgICAgIHRpdGxlOiBGaWxlcwogICAgICBkZXNjcmlwdGlvbjogfAogICAgICAgIEZpbGVzIGFyZSB1c2VkIHRvIHVwbG9hZCBkb2N1bWVudHMgdGhhdCBjYW4gYmUgdXNlZCB3aXRoIGZlYXR1cmVzIGxpa2UgW0ZpbmUtdHVuaW5nXSgvZG9jcy9hcGktcmVmZXJlbmNlL2ZpbmUtdHVuZXMpLgogICAgLSBpZDogZmluZS10dW5lcwogICAgICB0aXRsZTogRmluZS10dW5lcwogICAgICBkZXNjcmlwdGlvbjogfAogICAgICAgIE1hbmFnZSBmaW5lLXR1bmluZyBqb2JzIHRvIHRhaWxvciBhIG1vZGVsIHRvIHlvdXIgc3BlY2lmaWMgdHJhaW5pbmcgZGF0YS4KCiAgICAgICAgUmVsYXRlZCBndWlkZTogW0ZpbmUtdHVuZSBtb2RlbHNdKC9kb2NzL2d1aWRlcy9maW5lLXR1bmluZykKICAgIC0gaWQ6IG1vZGVyYXRpb25zCiAgICAgIHRpdGxlOiBNb2RlcmF0aW9ucwogICAgICBkZXNjcmlwdGlvbjogfAogICAgICAgIEdpdmVuIGEgaW5wdXQgdGV4dCwgb3V0cHV0cyBpZiB0aGUgbW9kZWwgY2xhc3NpZmllcyBpdCBhcyB2aW9sYXRpbmcgT3BlbkFJJ3MgY29udGVudCBwb2xpY3kuCgogICAgICAgIFJlbGF0ZWQgZ3VpZGU6IFtNb2RlcmF0aW9uc10oL2RvY3MvZ3VpZGVzL21vZGVyYXRpb24pCiAgICAtIGlkOiBzZWFyY2hlcwogICAgICB0aXRsZTogU2VhcmNoZXMKICAgICAgd2FybmluZzoKICAgICAgICB0aXRsZTogVGhpcyBlbmRwb2ludCBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgb24gRGVjZW1iZXIgM3JkLCAyMDIyCiAgICAgICAgbWVzc2FnZTogV2XigJl2ZSBkZXZlbG9wZWQgbmV3IG1ldGhvZHMgd2l0aCBiZXR0ZXIgcGVyZm9ybWFuY2UuIFtMZWFybiBtb3JlXShodHRwczovL2hlbHAub3BlbmFpLmNvbS9lbi9hcnRpY2xlcy82MjcyOTUyLXNlYXJjaC10cmFuc2l0aW9uLWd1aWRlKS4KICAgICAgZGVzY3JpcHRpb246IHwKICAgICAgICBHaXZlbiBhIHF1ZXJ5IGFuZCBhIHNldCBvZiBkb2N1bWVudHMgb3IgbGFiZWxzLCB0aGUgbW9kZWwgcmFua3MgZWFjaCBkb2N1bWVudCBiYXNlZCBvbiBpdHMgc2VtYW50aWMgc2ltaWxhcml0eSB0byB0aGUgcHJvdmlkZWQgcXVlcnkuCgogICAgICAgIFJlbGF0ZWQgZ3VpZGU6IFtTZWFyY2hdKC9kb2NzL2d1aWRlcy9zZWFyY2gpCiAgICAtIGlkOiBjbGFzc2lmaWNhdGlvbnMKICAgICAgdGl0bGU6IENsYXNzaWZpY2F0aW9ucwogICAgICB3YXJuaW5nOgogICAgICAgIHRpdGxlOiBUaGlzIGVuZHBvaW50IGlzIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBvbiBEZWNlbWJlciAzcmQsIDIwMjIKICAgICAgICBtZXNzYWdlOiBXZeKAmXZlIGRldmVsb3BlZCBuZXcgbWV0aG9kcyB3aXRoIGJldHRlciBwZXJmb3JtYW5jZS4gW0xlYXJuIG1vcmVdKGh0dHBzOi8vaGVscC5vcGVuYWkuY29tL2VuL2FydGljbGVzLzYyNzI5NDEtY2xhc3NpZmljYXRpb25zLXRyYW5zaXRpb24tZ3VpZGUpLgogICAgICBkZXNjcmlwdGlvbjogfAogICAgICAgIEdpdmVuIGEgcXVlcnkgYW5kIGEgc2V0IG9mIGxhYmVsZWQgZXhhbXBsZXMsIHRoZSBtb2RlbCB3aWxsIHByZWRpY3QgdGhlIG1vc3QgbGlrZWx5IGxhYmVsIGZvciB0aGUgcXVlcnkuIFVzZWZ1bCBhcyBhIGRyb3AtaW4gcmVwbGFjZW1lbnQgZm9yIGFueSBNTCBjbGFzc2lmaWNhdGlvbiBvciB0ZXh0LXRvLWxhYmVsIHRhc2suCgogICAgICAgIFJlbGF0ZWQgZ3VpZGU6IFtDbGFzc2lmaWNhdGlvbl0oL2RvY3MvZ3VpZGVzL2NsYXNzaWZpY2F0aW9ucykKICAgIC0gaWQ6IGFuc3dlcnMKICAgICAgdGl0bGU6IEFuc3dlcnMKICAgICAgd2FybmluZzoKICAgICAgICB0aXRsZTogVGhpcyBlbmRwb2ludCBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgb24gRGVjZW1iZXIgM3JkLCAyMDIyCiAgICAgICAgbWVzc2FnZTogV2XigJl2ZSBkZXZlbG9wZWQgbmV3IG1ldGhvZHMgd2l0aCBiZXR0ZXIgcGVyZm9ybWFuY2UuIFtMZWFybiBtb3JlXShodHRwczovL2hlbHAub3BlbmFpLmNvbS9lbi9hcnRpY2xlcy82MjMzNzI4LWFuc3dlcnMtdHJhbnNpdGlvbi1ndWlkZSkuCiAgICAgIGRlc2NyaXB0aW9uOiB8CiAgICAgICAgR2l2ZW4gYSBxdWVzdGlvbiwgYSBzZXQgb2YgZG9jdW1lbnRzLCBhbmQgc29tZSBleGFtcGxlcywgdGhlIEFQSSBnZW5lcmF0ZXMgYW4gYW5zd2VyIHRvIHRoZSBxdWVzdGlvbiBiYXNlZCBvbiB0aGUgaW5mb3JtYXRpb24gaW4gdGhlIHNldCBvZiBkb2N1bWVudHMuIFRoaXMgaXMgdXNlZnVsIGZvciBxdWVzdGlvbi1hbnN3ZXJpbmcgYXBwbGljYXRpb25zIG9uIHNvdXJjZXMgb2YgdHJ1dGgsIGxpa2UgY29tcGFueSBkb2N1bWVudGF0aW9uIG9yIGEga25vd2xlZGdlIGJhc2UuCgogICAgICAgIFJlbGF0ZWQgZ3VpZGU6IFtRdWVzdGlvbiBhbnN3ZXJpbmddKC9kb2NzL2d1aWRlcy9hbnN3ZXJzKQogICAgLSBpZDogZW5naW5lcwogICAgICB0aXRsZTogRW5naW5lcwogICAgICBkZXNjcmlwdGlvbjogVGhlc2UgZW5kcG9pbnRzIGRlc2NyaWJlIGFuZCBwcm92aWRlIGFjY2VzcyB0byB0aGUgdmFyaW91cyBlbmdpbmVzIGF2YWlsYWJsZSBpbiB0aGUgQVBJLgogICAgICB3YXJuaW5nOgogICAgICAgIHRpdGxlOiBUaGUgRW5naW5lcyBlbmRwb2ludHMgYXJlIGRlcHJlY2F0ZWQuCiAgICAgICAgbWVzc2FnZTogUGxlYXNlIHVzZSB0aGVpciByZXBsYWNlbWVudCwgW01vZGVsc10oL2RvY3MvYXBpLXJlZmVyZW5jZS9tb2RlbHMpLCBpbnN0ZWFkLiBbTGVhcm4gbW9yZV0oaHR0cHM6Ly9oZWxwLm9wZW5haS5jb20vVE9ETykuCg=="},"_type":"JsonSpec"},"description":"","base_classes":["Tool","JsonSpec"]},"id":"dndnode_230","value":null},"selected":true,"positionAbsolute":{"x":390,"y":230},"dragging":false},{"width":384,"height":227,"id":"dndnode_231","type":"genericNode","position":{"x":998,"y":336},"data":{"type":"JsonToolkit","node":{"template":{"spec":{"required":true,"placeholder":"","show":true,"multiline":false,"password":false,"name":"spec","advanced":false,"type":"JsonSpec","list":false},"_type":"JsonToolkit"},"description":"Toolkit for interacting with a JSON spec.","base_classes":["JsonToolkit","BaseToolkit"]},"id":"dndnode_231","value":null},"selected":false,"positionAbsolute":{"x":998,"y":336},"dragging":false},{"width":384,"height":597,"id":"dndnode_232","type":"genericNode","position":{"x":392,"y":598},"data":{"type":"OpenAI","node":{"template":{"cache":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"cache","advanced":false,"type":"bool","list":false},"verbose":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"verbose","advanced":false,"type":"bool","list":false},"callbacks":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"callbacks","advanced":false,"type":"langchain.callbacks.base.BaseCallbackHandler","list":true},"client":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"client","advanced":false,"type":"Any","list":false},"model_name":{"required":false,"placeholder":"","show":true,"multiline":false,"value":"text-davinci-003","password":false,"options":["text-davinci-003","text-davinci-002","text-curie-001","text-babbage-001","text-ada-001"],"name":"model_name","advanced":false,"type":"str","list":true},"temperature":{"required":false,"placeholder":"","show":true,"multiline":false,"value":0.7,"password":false,"name":"temperature","advanced":false,"type":"float","list":false},"max_tokens":{"required":false,"placeholder":"","show":true,"multiline":false,"value":256,"password":true,"name":"max_tokens","advanced":false,"type":"int","list":false},"top_p":{"required":false,"placeholder":"","show":false,"multiline":false,"value":1,"password":false,"name":"top_p","advanced":false,"type":"float","list":false},"frequency_penalty":{"required":false,"placeholder":"","show":false,"multiline":false,"value":0,"password":false,"name":"frequency_penalty","advanced":false,"type":"float","list":false},"presence_penalty":{"required":false,"placeholder":"","show":false,"multiline":false,"value":0,"password":false,"name":"presence_penalty","advanced":false,"type":"float","list":false},"n":{"required":false,"placeholder":"","show":false,"multiline":false,"value":1,"password":false,"name":"n","advanced":false,"type":"int","list":false},"best_of":{"required":false,"placeholder":"","show":false,"multiline":false,"value":1,"password":false,"name":"best_of","advanced":false,"type":"int","list":false},"model_kwargs":{"required":false,"placeholder":"","show":true,"multiline":false,"password":false,"name":"model_kwargs","advanced":true,"type":"code","list":false},"openai_api_key":{"required":false,"placeholder":"","show":true,"multiline":false,"value":"","password":true,"name":"openai_api_key","display_name":"OpenAI API Key","advanced":false,"type":"str","list":false},"openai_api_base":{"required":false,"placeholder":"","show":true,"multiline":false,"password":true,"name":"openai_api_base","advanced":false,"type":"str","list":false,"value":""},"openai_organization":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"openai_organization","advanced":false,"type":"str","list":false},"batch_size":{"required":false,"placeholder":"","show":false,"multiline":false,"value":20,"password":false,"name":"batch_size","advanced":false,"type":"int","list":false},"request_timeout":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"request_timeout","advanced":false,"type":"float","list":false},"logit_bias":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"logit_bias","advanced":false,"type":"code","list":false},"max_retries":{"required":false,"placeholder":"","show":false,"multiline":false,"value":6,"password":false,"name":"max_retries","advanced":false,"type":"int","list":false},"streaming":{"required":false,"placeholder":"","show":false,"multiline":false,"value":false,"password":false,"name":"streaming","advanced":false,"type":"bool","list":false},"allowed_special":{"required":false,"placeholder":"","show":false,"multiline":false,"value":[],"password":false,"name":"allowed_special","advanced":false,"type":"Literal'all'","list":true},"disallowed_special":{"required":false,"placeholder":"","show":false,"multiline":false,"value":"all","password":false,"name":"disallowed_special","advanced":false,"type":"Literal'all'","list":false},"_type":"OpenAI"},"description":"Wrapper around OpenAI large language models.","base_classes":["BaseLLM","BaseOpenAI","OpenAI","BaseLanguageModel"]},"id":"dndnode_232","value":null},"selected":false,"positionAbsolute":{"x":392,"y":598},"dragging":false},{"width":384,"height":267,"id":"dndnode_233","type":"genericNode","position":{"x":1500,"y":654},"data":{"type":"JsonAgent","node":{"template":{"toolkit":{"required":true,"placeholder":"","show":true,"multiline":false,"password":false,"name":"toolkit","advanced":false,"type":"BaseToolkit","list":false},"llm":{"required":true,"placeholder":"","show":true,"multiline":false,"password":false,"name":"llm","advanced":false,"type":"BaseLanguageModel","list":false},"_type":"json_agent"},"description":"Construct a json agent from an LLM and tools.","base_classes":["AgentExecutor"]},"id":"dndnode_233","value":null},"selected":false,"positionAbsolute":{"x":1500,"y":654},"dragging":false}],"edges":[{"source":"dndnode_230","sourceHandle":"JsonSpec|dndnode_230|Tool|JsonSpec","target":"dndnode_231","targetHandle":"JsonSpec|spec|dndnode_231","className":"animate-pulse","id":"reactflow__edge-dndnode_230JsonSpec|dndnode_230|Tool|JsonSpec-dndnode_231JsonSpec|spec|dndnode_231","selected":false},{"source":"dndnode_231","sourceHandle":"JsonToolkit|dndnode_231|JsonToolkit|BaseToolkit","target":"dndnode_233","targetHandle":"BaseToolkit|toolkit|dndnode_233","className":"animate-pulse","id":"reactflow__edge-dndnode_231JsonToolkit|dndnode_231|JsonToolkit|BaseToolkit-dndnode_233BaseToolkit|toolkit|dndnode_233","selected":false},{"source":"dndnode_232","sourceHandle":"OpenAI|dndnode_232|BaseLLM|BaseOpenAI|OpenAI|BaseLanguageModel","target":"dndnode_233","targetHandle":"BaseLanguageModel|llm|dndnode_233","className":"animate-pulse","id":"reactflow__edge-dndnode_232OpenAI|dndnode_232|BaseLLM|BaseOpenAI|OpenAI|BaseLanguageModel-dndnode_233BaseLanguageModel|llm|dndnode_233","selected":false}],"viewport":{"x":4,"y":1,"zoom":0.5}}}
\ No newline at end of file
diff --git a/docs/data/Midjourney_prompt_chain.json b/docs/data/Midjourney_prompt_chain.json
new file mode 100644
index 000000000..9b69fec52
--- /dev/null
+++ b/docs/data/Midjourney_prompt_chain.json
@@ -0,0 +1 @@
+{"description":"","name":"New Flow","id":"704dac29-2904-43c6-ac2f-f25339c0d505","data":{"nodes":[{"width":384,"height":247,"id":"dndnode_200","type":"genericNode","position":{"x":1594.6821064425578,"y":693.0461401659423},"data":{"type":"MidJourneyPromptChain","node":{"template":{"llm":{"required":true,"placeholder":"","show":true,"multiline":false,"password":false,"name":"llm","advanced":false,"type":"BaseLanguageModel","list":false},"_type":"MidJourneyPromptChain"},"description":"MidJourneyPromptChain is a chain you can use to generate new MidJourney prompts.","base_classes":["LLMChain","BaseCustomChain","Chain","ConversationChain","MidJourneyPromptChain"]},"id":"dndnode_200","value":null},"selected":false,"positionAbsolute":{"x":1594.6821064425578,"y":693.0461401659423}},{"width":384,"height":597,"id":"dndnode_201","type":"genericNode","position":{"x":999.5906785159896,"y":439.23606126714105},"data":{"type":"OpenAI","node":{"template":{"cache":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"cache","advanced":false,"type":"bool","list":false},"verbose":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"verbose","advanced":false,"type":"bool","list":false},"callbacks":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"callbacks","advanced":false,"type":"langchain.callbacks.base.BaseCallbackHandler","list":true},"client":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"client","advanced":false,"type":"Any","list":false},"model_name":{"required":false,"placeholder":"","show":true,"multiline":false,"value":"text-davinci-003","password":false,"options":["text-davinci-003","text-davinci-002","text-curie-001","text-babbage-001","text-ada-001"],"name":"model_name","advanced":false,"type":"str","list":true},"temperature":{"required":false,"placeholder":"","show":true,"multiline":false,"value":0.7,"password":false,"name":"temperature","advanced":false,"type":"float","list":false},"max_tokens":{"required":false,"placeholder":"","show":true,"multiline":false,"value":256,"password":true,"name":"max_tokens","advanced":false,"type":"int","list":false},"top_p":{"required":false,"placeholder":"","show":false,"multiline":false,"value":1,"password":false,"name":"top_p","advanced":false,"type":"float","list":false},"frequency_penalty":{"required":false,"placeholder":"","show":false,"multiline":false,"value":0,"password":false,"name":"frequency_penalty","advanced":false,"type":"float","list":false},"presence_penalty":{"required":false,"placeholder":"","show":false,"multiline":false,"value":0,"password":false,"name":"presence_penalty","advanced":false,"type":"float","list":false},"n":{"required":false,"placeholder":"","show":false,"multiline":false,"value":1,"password":false,"name":"n","advanced":false,"type":"int","list":false},"best_of":{"required":false,"placeholder":"","show":false,"multiline":false,"value":1,"password":false,"name":"best_of","advanced":false,"type":"int","list":false},"model_kwargs":{"required":false,"placeholder":"","show":true,"multiline":false,"password":false,"name":"model_kwargs","advanced":true,"type":"code","list":false},"openai_api_key":{"required":false,"placeholder":"","show":true,"multiline":false,"value":"","password":true,"name":"openai_api_key","display_name":"OpenAI API Key","advanced":false,"type":"str","list":false},"openai_api_base":{"required":false,"placeholder":"","show":true,"multiline":false,"password":true,"name":"openai_api_base","advanced":false,"type":"str","list":false,"value":""},"openai_organization":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"openai_organization","advanced":false,"type":"str","list":false},"batch_size":{"required":false,"placeholder":"","show":false,"multiline":false,"value":20,"password":false,"name":"batch_size","advanced":false,"type":"int","list":false},"request_timeout":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"request_timeout","advanced":false,"type":"float","list":false},"logit_bias":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"logit_bias","advanced":false,"type":"code","list":false},"max_retries":{"required":false,"placeholder":"","show":false,"multiline":false,"value":6,"password":false,"name":"max_retries","advanced":false,"type":"int","list":false},"streaming":{"required":false,"placeholder":"","show":false,"multiline":false,"value":false,"password":false,"name":"streaming","advanced":false,"type":"bool","list":false},"allowed_special":{"required":false,"placeholder":"","show":false,"multiline":false,"value":[],"password":false,"name":"allowed_special","advanced":false,"type":"Literal'all'","list":true},"disallowed_special":{"required":false,"placeholder":"","show":false,"multiline":false,"value":"all","password":false,"name":"disallowed_special","advanced":false,"type":"Literal'all'","list":false},"_type":"OpenAI"},"description":"Wrapper around OpenAI large language models.","base_classes":["BaseLLM","BaseOpenAI","OpenAI","BaseLanguageModel"]},"id":"dndnode_201","value":null},"selected":true,"positionAbsolute":{"x":999.5906785159896,"y":439.23606126714105},"dragging":false}],"edges":[{"source":"dndnode_201","sourceHandle":"OpenAI|dndnode_201|BaseLLM|BaseOpenAI|OpenAI|BaseLanguageModel","target":"dndnode_200","targetHandle":"BaseLanguageModel|llm|dndnode_200","className":"animate-pulse","id":"reactflow__edge-dndnode_201OpenAI|dndnode_201|BaseLLM|BaseOpenAI|OpenAI|BaseLanguageModel-dndnode_200BaseLanguageModel|llm|dndnode_200","selected":false}],"viewport":{"x":-334.0863839015408,"y":-192.31085724252193,"zoom":0.697371833175203}}}
\ No newline at end of file
diff --git a/docs/data/Multiple_vectorstores.json b/docs/data/Multiple_vectorstores.json
new file mode 100644
index 000000000..4b91eb39d
--- /dev/null
+++ b/docs/data/Multiple_vectorstores.json
@@ -0,0 +1 @@
+{"description":"","name":"New Flow","id":"e32bf3bf-78bd-4b17-9984-09d9a090841c","data":{"nodes":[{"width":384,"height":265,"id":"dndnode_213","type":"genericNode","position":{"x":160.88681321552258,"y":85.60450902748329},"data":{"type":"TextLoader","node":{"template":{"file_path":{"required":true,"placeholder":"","show":true,"multiline":false,"value":"state-of-the-union.txt","suffixes":[".txt"],"password":false,"name":"file_path","advanced":false,"type":"file","list":false,"fileTypes":["txt"],"content":"data:text/plain;base64,TWFkYW0gU3BlYWtlciwgTWFkYW0gVmljZSBQcmVzaWRlbnQsIG91ciBGaXJzdCBMYWR5IGFuZCBTZWNvbmQgR2VudGxlbWFuLiBNZW1iZXJzIG9mIENvbmdyZXNzIGFuZCB0aGUgQ2FiaW5ldC4gSnVzdGljZXMgb2YgdGhlIFN1cHJlbWUgQ291cnQuIE15IGZlbGxvdyBBbWVyaWNhbnMuICAKCkxhc3QgeWVhciBDT1ZJRC0xOSBrZXB0IHVzIGFwYXJ0LiBUaGlzIHllYXIgd2UgYXJlIGZpbmFsbHkgdG9nZXRoZXIgYWdhaW4uIAoKVG9uaWdodCwgd2UgbWVldCBhcyBEZW1vY3JhdHMgUmVwdWJsaWNhbnMgYW5kIEluZGVwZW5kZW50cy4gQnV0IG1vc3QgaW1wb3J0YW50bHkgYXMgQW1lcmljYW5zLiAKCldpdGggYSBkdXR5IHRvIG9uZSBhbm90aGVyIHRvIHRoZSBBbWVyaWNhbiBwZW9wbGUgdG8gdGhlIENvbnN0aXR1dGlvbi4gCgpBbmQgd2l0aCBhbiB1bndhdmVyaW5nIHJlc29sdmUgdGhhdCBmcmVlZG9tIHdpbGwgYWx3YXlzIHRyaXVtcGggb3ZlciB0eXJhbm55LiAKClNpeCBkYXlzIGFnbywgUnVzc2lh4oCZcyBWbGFkaW1pciBQdXRpbiBzb3VnaHQgdG8gc2hha2UgdGhlIGZvdW5kYXRpb25zIG9mIHRoZSBmcmVlIHdvcmxkIHRoaW5raW5nIGhlIGNvdWxkIG1ha2UgaXQgYmVuZCB0byBoaXMgbWVuYWNpbmcgd2F5cy4gQnV0IGhlIGJhZGx5IG1pc2NhbGN1bGF0ZWQuIAoKSGUgdGhvdWdodCBoZSBjb3VsZCByb2xsIGludG8gVWtyYWluZSBhbmQgdGhlIHdvcmxkIHdvdWxkIHJvbGwgb3Zlci4gSW5zdGVhZCBoZSBtZXQgYSB3YWxsIG9mIHN0cmVuZ3RoIGhlIG5ldmVyIGltYWdpbmVkLiAKCkhlIG1ldCB0aGUgVWtyYWluaWFuIHBlb3BsZS4gCgpGcm9tIFByZXNpZGVudCBaZWxlbnNreXkgdG8gZXZlcnkgVWtyYWluaWFuLCB0aGVpciBmZWFybGVzc25lc3MsIHRoZWlyIGNvdXJhZ2UsIHRoZWlyIGRldGVybWluYXRpb24sIGluc3BpcmVzIHRoZSB3b3JsZC4gCgpHcm91cHMgb2YgY2l0aXplbnMgYmxvY2tpbmcgdGFua3Mgd2l0aCB0aGVpciBib2RpZXMuIEV2ZXJ5b25lIGZyb20gc3R1ZGVudHMgdG8gcmV0aXJlZXMgdGVhY2hlcnMgdHVybmVkIHNvbGRpZXJzIGRlZmVuZGluZyB0aGVpciBob21lbGFuZC4gCgpJbiB0aGlzIHN0cnVnZ2xlIGFzIFByZXNpZGVudCBaZWxlbnNreXkgc2FpZCBpbiBoaXMgc3BlZWNoIHRvIHRoZSBFdXJvcGVhbiBQYXJsaWFtZW50IOKAnExpZ2h0IHdpbGwgd2luIG92ZXIgZGFya25lc3Mu4oCdIFRoZSBVa3JhaW5pYW4gQW1iYXNzYWRvciB0byB0aGUgVW5pdGVkIFN0YXRlcyBpcyBoZXJlIHRvbmlnaHQuIAoKTGV0IGVhY2ggb2YgdXMgaGVyZSB0b25pZ2h0IGluIHRoaXMgQ2hhbWJlciBzZW5kIGFuIHVubWlzdGFrYWJsZSBzaWduYWwgdG8gVWtyYWluZSBhbmQgdG8gdGhlIHdvcmxkLiAKClBsZWFzZSByaXNlIGlmIHlvdSBhcmUgYWJsZSBhbmQgc2hvdyB0aGF0LCBZZXMsIHdlIHRoZSBVbml0ZWQgU3RhdGVzIG9mIEFtZXJpY2Egc3RhbmQgd2l0aCB0aGUgVWtyYWluaWFuIHBlb3BsZS4gCgpUaHJvdWdob3V0IG91ciBoaXN0b3J5IHdl4oCZdmUgbGVhcm5lZCB0aGlzIGxlc3NvbiB3aGVuIGRpY3RhdG9ycyBkbyBub3QgcGF5IGEgcHJpY2UgZm9yIHRoZWlyIGFnZ3Jlc3Npb24gdGhleSBjYXVzZSBtb3JlIGNoYW9zLiAgIAoKVGhleSBrZWVwIG1vdmluZy4gICAKCkFuZCB0aGUgY29zdHMgYW5kIHRoZSB0aHJlYXRzIHRvIEFtZXJpY2EgYW5kIHRoZSB3b3JsZCBrZWVwIHJpc2luZy4gICAKClRoYXTigJlzIHdoeSB0aGUgTkFUTyBBbGxpYW5jZSB3YXMgY3JlYXRlZCB0byBzZWN1cmUgcGVhY2UgYW5kIHN0YWJpbGl0eSBpbiBFdXJvcGUgYWZ0ZXIgV29ybGQgV2FyIDIuIAoKVGhlIFVuaXRlZCBTdGF0ZXMgaXMgYSBtZW1iZXIgYWxvbmcgd2l0aCAyOSBvdGhlciBuYXRpb25zLiAKCkl0IG1hdHRlcnMuIEFtZXJpY2FuIGRpcGxvbWFjeSBtYXR0ZXJzLiBBbWVyaWNhbiByZXNvbHZlIG1hdHRlcnMuIAoKUHV0aW7igJlzIGxhdGVzdCBhdHRhY2sgb24gVWtyYWluZSB3YXMgcHJlbWVkaXRhdGVkIGFuZCB1bnByb3Zva2VkLiAKCkhlIHJlamVjdGVkIHJlcGVhdGVkIGVmZm9ydHMgYXQgZGlwbG9tYWN5LiAKCkhlIHRob3VnaHQgdGhlIFdlc3QgYW5kIE5BVE8gd291bGRu4oCZdCByZXNwb25kLiBBbmQgaGUgdGhvdWdodCBoZSBjb3VsZCBkaXZpZGUgdXMgYXQgaG9tZS4gUHV0aW4gd2FzIHdyb25nLiBXZSB3ZXJlIHJlYWR5LiAgSGVyZSBpcyB3aGF0IHdlIGRpZC4gICAKCldlIHByZXBhcmVkIGV4dGVuc2l2ZWx5IGFuZCBjYXJlZnVsbHkuIAoKV2Ugc3BlbnQgbW9udGhzIGJ1aWxkaW5nIGEgY29hbGl0aW9uIG9mIG90aGVyIGZyZWVkb20tbG92aW5nIG5hdGlvbnMgZnJvbSBFdXJvcGUgYW5kIHRoZSBBbWVyaWNhcyB0byBBc2lhIGFuZCBBZnJpY2EgdG8gY29uZnJvbnQgUHV0aW4uIAoKSSBzcGVudCBjb3VudGxlc3MgaG91cnMgdW5pZnlpbmcgb3VyIEV1cm9wZWFuIGFsbGllcy4gV2Ugc2hhcmVkIHdpdGggdGhlIHdvcmxkIGluIGFkdmFuY2Ugd2hhdCB3ZSBrbmV3IFB1dGluIHdhcyBwbGFubmluZyBhbmQgcHJlY2lzZWx5IGhvdyBoZSB3b3VsZCB0cnkgdG8gZmFsc2VseSBqdXN0aWZ5IGhpcyBhZ2dyZXNzaW9uLiAgCgpXZSBjb3VudGVyZWQgUnVzc2lh4oCZcyBsaWVzIHdpdGggdHJ1dGguICAgCgpBbmQgbm93IHRoYXQgaGUgaGFzIGFjdGVkIHRoZSBmcmVlIHdvcmxkIGlzIGhvbGRpbmcgaGltIGFjY291bnRhYmxlLiAKCkFsb25nIHdpdGggdHdlbnR5LXNldmVuIG1lbWJlcnMgb2YgdGhlIEV1cm9wZWFuIFVuaW9uIGluY2x1ZGluZyBGcmFuY2UsIEdlcm1hbnksIEl0YWx5LCBhcyB3ZWxsIGFzIGNvdW50cmllcyBsaWtlIHRoZSBVbml0ZWQgS2luZ2RvbSwgQ2FuYWRhLCBKYXBhbiwgS29yZWEsIEF1c3RyYWxpYSwgTmV3IFplYWxhbmQsIGFuZCBtYW55IG90aGVycywgZXZlbiBTd2l0emVybGFuZC4gCgpXZSBhcmUgaW5mbGljdGluZyBwYWluIG9uIFJ1c3NpYSBhbmQgc3VwcG9ydGluZyB0aGUgcGVvcGxlIG9mIFVrcmFpbmUuIFB1dGluIGlzIG5vdyBpc29sYXRlZCBmcm9tIHRoZSB3b3JsZCBtb3JlIHRoYW4gZXZlci4gCgpUb2dldGhlciB3aXRoIG91ciBhbGxpZXMg4oCTd2UgYXJlIHJpZ2h0IG5vdyBlbmZvcmNpbmcgcG93ZXJmdWwgZWNvbm9taWMgc2FuY3Rpb25zLiAKCldlIGFyZSBjdXR0aW5nIG9mZiBSdXNzaWHigJlzIGxhcmdlc3QgYmFua3MgZnJvbSB0aGUgaW50ZXJuYXRpb25hbCBmaW5hbmNpYWwgc3lzdGVtLiAgCgpQcmV2ZW50aW5nIFJ1c3NpYeKAmXMgY2VudHJhbCBiYW5rIGZyb20gZGVmZW5kaW5nIHRoZSBSdXNzaWFuIFJ1YmxlIG1ha2luZyBQdXRpbuKAmXMgJDYzMCBCaWxsaW9uIOKAnHdhciBmdW5k4oCdIHdvcnRobGVzcy4gICAKCldlIGFyZSBjaG9raW5nIG9mZiBSdXNzaWHigJlzIGFjY2VzcyB0byB0ZWNobm9sb2d5IHRoYXQgd2lsbCBzYXAgaXRzIGVjb25vbWljIHN0cmVuZ3RoIGFuZCB3ZWFrZW4gaXRzIG1pbGl0YXJ5IGZvciB5ZWFycyB0byBjb21lLiAgCgpUb25pZ2h0IEkgc2F5IHRvIHRoZSBSdXNzaWFuIG9saWdhcmNocyBhbmQgY29ycnVwdCBsZWFkZXJzIHdobyBoYXZlIGJpbGtlZCBiaWxsaW9ucyBvZiBkb2xsYXJzIG9mZiB0aGlzIHZpb2xlbnQgcmVnaW1lIG5vIG1vcmUuIAoKVGhlIFUuUy4gRGVwYXJ0bWVudCBvZiBKdXN0aWNlIGlzIGFzc2VtYmxpbmcgYSBkZWRpY2F0ZWQgdGFzayBmb3JjZSB0byBnbyBhZnRlciB0aGUgY3JpbWVzIG9mIFJ1c3NpYW4gb2xpZ2FyY2hzLiAgCgpXZSBhcmUgam9pbmluZyB3aXRoIG91ciBFdXJvcGVhbiBhbGxpZXMgdG8gZmluZCBhbmQgc2VpemUgeW91ciB5YWNodHMgeW91ciBsdXh1cnkgYXBhcnRtZW50cyB5b3VyIHByaXZhdGUgamV0cy4gV2UgYXJlIGNvbWluZyBmb3IgeW91ciBpbGwtYmVnb3R0ZW4gZ2FpbnMuIAoKQW5kIHRvbmlnaHQgSSBhbSBhbm5vdW5jaW5nIHRoYXQgd2Ugd2lsbCBqb2luIG91ciBhbGxpZXMgaW4gY2xvc2luZyBvZmYgQW1lcmljYW4gYWlyIHNwYWNlIHRvIGFsbCBSdXNzaWFuIGZsaWdodHMg4oCTIGZ1cnRoZXIgaXNvbGF0aW5nIFJ1c3NpYSDigJMgYW5kIGFkZGluZyBhbiBhZGRpdGlvbmFsIHNxdWVlemUg4oCTb24gdGhlaXIgZWNvbm9teS4gVGhlIFJ1YmxlIGhhcyBsb3N0IDMwJSBvZiBpdHMgdmFsdWUuIAoKVGhlIFJ1c3NpYW4gc3RvY2sgbWFya2V0IGhhcyBsb3N0IDQwJSBvZiBpdHMgdmFsdWUgYW5kIHRyYWRpbmcgcmVtYWlucyBzdXNwZW5kZWQuIFJ1c3NpYeKAmXMgZWNvbm9teSBpcyByZWVsaW5nIGFuZCBQdXRpbiBhbG9uZSBpcyB0byBibGFtZS4gCgpUb2dldGhlciB3aXRoIG91ciBhbGxpZXMgd2UgYXJlIHByb3ZpZGluZyBzdXBwb3J0IHRvIHRoZSBVa3JhaW5pYW5zIGluIHRoZWlyIGZpZ2h0IGZvciBmcmVlZG9tLiBNaWxpdGFyeSBhc3Npc3RhbmNlLiBFY29ub21pYyBhc3Npc3RhbmNlLiBIdW1hbml0YXJpYW4gYXNzaXN0YW5jZS4gCgpXZSBhcmUgZ2l2aW5nIG1vcmUgdGhhbiAkMSBCaWxsaW9uIGluIGRpcmVjdCBhc3Npc3RhbmNlIHRvIFVrcmFpbmUuIAoKQW5kIHdlIHdpbGwgY29udGludWUgdG8gYWlkIHRoZSBVa3JhaW5pYW4gcGVvcGxlIGFzIHRoZXkgZGVmZW5kIHRoZWlyIGNvdW50cnkgYW5kIHRvIGhlbHAgZWFzZSB0aGVpciBzdWZmZXJpbmcuICAKCkxldCBtZSBiZSBjbGVhciwgb3VyIGZvcmNlcyBhcmUgbm90IGVuZ2FnZWQgYW5kIHdpbGwgbm90IGVuZ2FnZSBpbiBjb25mbGljdCB3aXRoIFJ1c3NpYW4gZm9yY2VzIGluIFVrcmFpbmUuICAKCk91ciBmb3JjZXMgYXJlIG5vdCBnb2luZyB0byBFdXJvcGUgdG8gZmlnaHQgaW4gVWtyYWluZSwgYnV0IHRvIGRlZmVuZCBvdXIgTkFUTyBBbGxpZXMg4oCTIGluIHRoZSBldmVudCB0aGF0IFB1dGluIGRlY2lkZXMgdG8ga2VlcCBtb3Zpbmcgd2VzdC4gIAoKRm9yIHRoYXQgcHVycG9zZSB3ZeKAmXZlIG1vYmlsaXplZCBBbWVyaWNhbiBncm91bmQgZm9yY2VzLCBhaXIgc3F1YWRyb25zLCBhbmQgc2hpcCBkZXBsb3ltZW50cyB0byBwcm90ZWN0IE5BVE8gY291bnRyaWVzIGluY2x1ZGluZyBQb2xhbmQsIFJvbWFuaWEsIExhdHZpYSwgTGl0aHVhbmlhLCBhbmQgRXN0b25pYS4gCgpBcyBJIGhhdmUgbWFkZSBjcnlzdGFsIGNsZWFyIHRoZSBVbml0ZWQgU3RhdGVzIGFuZCBvdXIgQWxsaWVzIHdpbGwgZGVmZW5kIGV2ZXJ5IGluY2ggb2YgdGVycml0b3J5IG9mIE5BVE8gY291bnRyaWVzIHdpdGggdGhlIGZ1bGwgZm9yY2Ugb2Ygb3VyIGNvbGxlY3RpdmUgcG93ZXIuICAKCkFuZCB3ZSByZW1haW4gY2xlYXItZXllZC4gVGhlIFVrcmFpbmlhbnMgYXJlIGZpZ2h0aW5nIGJhY2sgd2l0aCBwdXJlIGNvdXJhZ2UuIEJ1dCB0aGUgbmV4dCBmZXcgZGF5cyB3ZWVrcywgbW9udGhzLCB3aWxsIGJlIGhhcmQgb24gdGhlbS4gIAoKUHV0aW4gaGFzIHVubGVhc2hlZCB2aW9sZW5jZSBhbmQgY2hhb3MuICBCdXQgd2hpbGUgaGUgbWF5IG1ha2UgZ2FpbnMgb24gdGhlIGJhdHRsZWZpZWxkIOKAkyBoZSB3aWxsIHBheSBhIGNvbnRpbnVpbmcgaGlnaCBwcmljZSBvdmVyIHRoZSBsb25nIHJ1bi4gCgpBbmQgYSBwcm91ZCBVa3JhaW5pYW4gcGVvcGxlLCB3aG8gaGF2ZSBrbm93biAzMCB5ZWFycyAgb2YgaW5kZXBlbmRlbmNlLCBoYXZlIHJlcGVhdGVkbHkgc2hvd24gdGhhdCB0aGV5IHdpbGwgbm90IHRvbGVyYXRlIGFueW9uZSB3aG8gdHJpZXMgdG8gdGFrZSB0aGVpciBjb3VudHJ5IGJhY2t3YXJkcy4gIAoKVG8gYWxsIEFtZXJpY2FucywgSSB3aWxsIGJlIGhvbmVzdCB3aXRoIHlvdSwgYXMgSeKAmXZlIGFsd2F5cyBwcm9taXNlZC4gQSBSdXNzaWFuIGRpY3RhdG9yLCBpbnZhZGluZyBhIGZvcmVpZ24gY291bnRyeSwgaGFzIGNvc3RzIGFyb3VuZCB0aGUgd29ybGQuIAoKQW5kIEnigJltIHRha2luZyByb2J1c3QgYWN0aW9uIHRvIG1ha2Ugc3VyZSB0aGUgcGFpbiBvZiBvdXIgc2FuY3Rpb25zICBpcyB0YXJnZXRlZCBhdCBSdXNzaWHigJlzIGVjb25vbXkuIEFuZCBJIHdpbGwgdXNlIGV2ZXJ5IHRvb2wgYXQgb3VyIGRpc3Bvc2FsIHRvIHByb3RlY3QgQW1lcmljYW4gYnVzaW5lc3NlcyBhbmQgY29uc3VtZXJzLiAKClRvbmlnaHQsIEkgY2FuIGFubm91bmNlIHRoYXQgdGhlIFVuaXRlZCBTdGF0ZXMgaGFzIHdvcmtlZCB3aXRoIDMwIG90aGVyIGNvdW50cmllcyB0byByZWxlYXNlIDYwIE1pbGxpb24gYmFycmVscyBvZiBvaWwgZnJvbSByZXNlcnZlcyBhcm91bmQgdGhlIHdvcmxkLiAgCgpBbWVyaWNhIHdpbGwgbGVhZCB0aGF0IGVmZm9ydCwgcmVsZWFzaW5nIDMwIE1pbGxpb24gYmFycmVscyBmcm9tIG91ciBvd24gU3RyYXRlZ2ljIFBldHJvbGV1bSBSZXNlcnZlLiBBbmQgd2Ugc3RhbmQgcmVhZHkgdG8gZG8gbW9yZSBpZiBuZWNlc3NhcnksIHVuaWZpZWQgd2l0aCBvdXIgYWxsaWVzLiAgCgpUaGVzZSBzdGVwcyB3aWxsIGhlbHAgYmx1bnQgZ2FzIHByaWNlcyBoZXJlIGF0IGhvbWUuIEFuZCBJIGtub3cgdGhlIG5ld3MgYWJvdXQgd2hhdOKAmXMgaGFwcGVuaW5nIGNhbiBzZWVtIGFsYXJtaW5nLiAKCkJ1dCBJIHdhbnQgeW91IHRvIGtub3cgdGhhdCB3ZSBhcmUgZ29pbmcgdG8gYmUgb2theS4gCgpXaGVuIHRoZSBoaXN0b3J5IG9mIHRoaXMgZXJhIGlzIHdyaXR0ZW4gUHV0aW7igJlzIHdhciBvbiBVa3JhaW5lIHdpbGwgaGF2ZSBsZWZ0IFJ1c3NpYSB3ZWFrZXIgYW5kIHRoZSByZXN0IG9mIHRoZSB3b3JsZCBzdHJvbmdlci4gCgpXaGlsZSBpdCBzaG91bGRu4oCZdCBoYXZlIHRha2VuIHNvbWV0aGluZyBzbyB0ZXJyaWJsZSBmb3IgcGVvcGxlIGFyb3VuZCB0aGUgd29ybGQgdG8gc2VlIHdoYXTigJlzIGF0IHN0YWtlIG5vdyBldmVyeW9uZSBzZWVzIGl0IGNsZWFybHkuIAoKV2Ugc2VlIHRoZSB1bml0eSBhbW9uZyBsZWFkZXJzIG9mIG5hdGlvbnMgYW5kIGEgbW9yZSB1bmlmaWVkIEV1cm9wZSBhIG1vcmUgdW5pZmllZCBXZXN0LiBBbmQgd2Ugc2VlIHVuaXR5IGFtb25nIHRoZSBwZW9wbGUgd2hvIGFyZSBnYXRoZXJpbmcgaW4gY2l0aWVzIGluIGxhcmdlIGNyb3dkcyBhcm91bmQgdGhlIHdvcmxkIGV2ZW4gaW4gUnVzc2lhIHRvIGRlbW9uc3RyYXRlIHRoZWlyIHN1cHBvcnQgZm9yIFVrcmFpbmUuICAKCkluIHRoZSBiYXR0bGUgYmV0d2VlbiBkZW1vY3JhY3kgYW5kIGF1dG9jcmFjeSwgZGVtb2NyYWNpZXMgYXJlIHJpc2luZyB0byB0aGUgbW9tZW50LCBhbmQgdGhlIHdvcmxkIGlzIGNsZWFybHkgY2hvb3NpbmcgdGhlIHNpZGUgb2YgcGVhY2UgYW5kIHNlY3VyaXR5LiAKClRoaXMgaXMgYSByZWFsIHRlc3QuIEl04oCZcyBnb2luZyB0byB0YWtlIHRpbWUuIFNvIGxldCB1cyBjb250aW51ZSB0byBkcmF3IGluc3BpcmF0aW9uIGZyb20gdGhlIGlyb24gd2lsbCBvZiB0aGUgVWtyYWluaWFuIHBlb3BsZS4gCgpUbyBvdXIgZmVsbG93IFVrcmFpbmlhbiBBbWVyaWNhbnMgd2hvIGZvcmdlIGEgZGVlcCBib25kIHRoYXQgY29ubmVjdHMgb3VyIHR3byBuYXRpb25zIHdlIHN0YW5kIHdpdGggeW91LiAKClB1dGluIG1heSBjaXJjbGUgS3lpdiB3aXRoIHRhbmtzLCBidXQgaGUgd2lsbCBuZXZlciBnYWluIHRoZSBoZWFydHMgYW5kIHNvdWxzIG9mIHRoZSBVa3JhaW5pYW4gcGVvcGxlLiAKCkhlIHdpbGwgbmV2ZXIgZXh0aW5ndWlzaCB0aGVpciBsb3ZlIG9mIGZyZWVkb20uIEhlIHdpbGwgbmV2ZXIgd2Vha2VuIHRoZSByZXNvbHZlIG9mIHRoZSBmcmVlIHdvcmxkLiAKCldlIG1lZXQgdG9uaWdodCBpbiBhbiBBbWVyaWNhIHRoYXQgaGFzIGxpdmVkIHRocm91Z2ggdHdvIG9mIHRoZSBoYXJkZXN0IHllYXJzIHRoaXMgbmF0aW9uIGhhcyBldmVyIGZhY2VkLiAKClRoZSBwYW5kZW1pYyBoYXMgYmVlbiBwdW5pc2hpbmcuIAoKQW5kIHNvIG1hbnkgZmFtaWxpZXMgYXJlIGxpdmluZyBwYXljaGVjayB0byBwYXljaGVjaywgc3RydWdnbGluZyB0byBrZWVwIHVwIHdpdGggdGhlIHJpc2luZyBjb3N0IG9mIGZvb2QsIGdhcywgaG91c2luZywgYW5kIHNvIG11Y2ggbW9yZS4gCgpJIHVuZGVyc3RhbmQuIAoKSSByZW1lbWJlciB3aGVuIG15IERhZCBoYWQgdG8gbGVhdmUgb3VyIGhvbWUgaW4gU2NyYW50b24sIFBlbm5zeWx2YW5pYSB0byBmaW5kIHdvcmsuIEkgZ3JldyB1cCBpbiBhIGZhbWlseSB3aGVyZSBpZiB0aGUgcHJpY2Ugb2YgZm9vZCB3ZW50IHVwLCB5b3UgZmVsdCBpdC4gCgpUaGF04oCZcyB3aHkgb25lIG9mIHRoZSBmaXJzdCB0aGluZ3MgSSBkaWQgYXMgUHJlc2lkZW50IHdhcyBmaWdodCB0byBwYXNzIHRoZSBBbWVyaWNhbiBSZXNjdWUgUGxhbi4gIAoKQmVjYXVzZSBwZW9wbGUgd2VyZSBodXJ0aW5nLiBXZSBuZWVkZWQgdG8gYWN0LCBhbmQgd2UgZGlkLiAKCkZldyBwaWVjZXMgb2YgbGVnaXNsYXRpb24gaGF2ZSBkb25lIG1vcmUgaW4gYSBjcml0aWNhbCBtb21lbnQgaW4gb3VyIGhpc3RvcnkgdG8gbGlmdCB1cyBvdXQgb2YgY3Jpc2lzLiAKCkl0IGZ1ZWxlZCBvdXIgZWZmb3J0cyB0byB2YWNjaW5hdGUgdGhlIG5hdGlvbiBhbmQgY29tYmF0IENPVklELTE5LiBJdCBkZWxpdmVyZWQgaW1tZWRpYXRlIGVjb25vbWljIHJlbGllZiBmb3IgdGVucyBvZiBtaWxsaW9ucyBvZiBBbWVyaWNhbnMuICAKCkhlbHBlZCBwdXQgZm9vZCBvbiB0aGVpciB0YWJsZSwga2VlcCBhIHJvb2Ygb3ZlciB0aGVpciBoZWFkcywgYW5kIGN1dCB0aGUgY29zdCBvZiBoZWFsdGggaW5zdXJhbmNlLiAKCkFuZCBhcyBteSBEYWQgdXNlZCB0byBzYXksIGl0IGdhdmUgcGVvcGxlIGEgbGl0dGxlIGJyZWF0aGluZyByb29tLiAKCkFuZCB1bmxpa2UgdGhlICQyIFRyaWxsaW9uIHRheCBjdXQgcGFzc2VkIGluIHRoZSBwcmV2aW91cyBhZG1pbmlzdHJhdGlvbiB0aGF0IGJlbmVmaXR0ZWQgdGhlIHRvcCAxJSBvZiBBbWVyaWNhbnMsIHRoZSBBbWVyaWNhbiBSZXNjdWUgUGxhbiBoZWxwZWQgd29ya2luZyBwZW9wbGXigJRhbmQgbGVmdCBubyBvbmUgYmVoaW5kLiAKCkFuZCBpdCB3b3JrZWQuIEl0IGNyZWF0ZWQgam9icy4gTG90cyBvZiBqb2JzLiAKCkluIGZhY3TigJRvdXIgZWNvbm9teSBjcmVhdGVkIG92ZXIgNi41IE1pbGxpb24gbmV3IGpvYnMganVzdCBsYXN0IHllYXIsIG1vcmUgam9icyBjcmVhdGVkIGluIG9uZSB5ZWFyICAKdGhhbiBldmVyIGJlZm9yZSBpbiB0aGUgaGlzdG9yeSBvZiBBbWVyaWNhLiAKCk91ciBlY29ub215IGdyZXcgYXQgYSByYXRlIG9mIDUuNyUgbGFzdCB5ZWFyLCB0aGUgc3Ryb25nZXN0IGdyb3d0aCBpbiBuZWFybHkgNDAgeWVhcnMsIHRoZSBmaXJzdCBzdGVwIGluIGJyaW5naW5nIGZ1bmRhbWVudGFsIGNoYW5nZSB0byBhbiBlY29ub215IHRoYXQgaGFzbuKAmXQgd29ya2VkIGZvciB0aGUgd29ya2luZyBwZW9wbGUgb2YgdGhpcyBuYXRpb24gZm9yIHRvbyBsb25nLiAgCgpGb3IgdGhlIHBhc3QgNDAgeWVhcnMgd2Ugd2VyZSB0b2xkIHRoYXQgaWYgd2UgZ2F2ZSB0YXggYnJlYWtzIHRvIHRob3NlIGF0IHRoZSB2ZXJ5IHRvcCwgdGhlIGJlbmVmaXRzIHdvdWxkIHRyaWNrbGUgZG93biB0byBldmVyeW9uZSBlbHNlLiAKCkJ1dCB0aGF0IHRyaWNrbGUtZG93biB0aGVvcnkgbGVkIHRvIHdlYWtlciBlY29ub21pYyBncm93dGgsIGxvd2VyIHdhZ2VzLCBiaWdnZXIgZGVmaWNpdHMsIGFuZCB0aGUgd2lkZXN0IGdhcCBiZXR3ZWVuIHRob3NlIGF0IHRoZSB0b3AgYW5kIGV2ZXJ5b25lIGVsc2UgaW4gbmVhcmx5IGEgY2VudHVyeS4gCgpWaWNlIFByZXNpZGVudCBIYXJyaXMgYW5kIEkgcmFuIGZvciBvZmZpY2Ugd2l0aCBhIG5ldyBlY29ub21pYyB2aXNpb24gZm9yIEFtZXJpY2EuIAoKSW52ZXN0IGluIEFtZXJpY2EuIEVkdWNhdGUgQW1lcmljYW5zLiBHcm93IHRoZSB3b3JrZm9yY2UuIEJ1aWxkIHRoZSBlY29ub215IGZyb20gdGhlIGJvdHRvbSB1cCAgCmFuZCB0aGUgbWlkZGxlIG91dCwgbm90IGZyb20gdGhlIHRvcCBkb3duLiAgCgpCZWNhdXNlIHdlIGtub3cgdGhhdCB3aGVuIHRoZSBtaWRkbGUgY2xhc3MgZ3Jvd3MsIHRoZSBwb29yIGhhdmUgYSBsYWRkZXIgdXAgYW5kIHRoZSB3ZWFsdGh5IGRvIHZlcnkgd2VsbC4gCgpBbWVyaWNhIHVzZWQgdG8gaGF2ZSB0aGUgYmVzdCByb2FkcywgYnJpZGdlcywgYW5kIGFpcnBvcnRzIG9uIEVhcnRoLiAKCk5vdyBvdXIgaW5mcmFzdHJ1Y3R1cmUgaXMgcmFua2VkIDEzdGggaW4gdGhlIHdvcmxkLiAKCldlIHdvbuKAmXQgYmUgYWJsZSB0byBjb21wZXRlIGZvciB0aGUgam9icyBvZiB0aGUgMjFzdCBDZW50dXJ5IGlmIHdlIGRvbuKAmXQgZml4IHRoYXQuIAoKVGhhdOKAmXMgd2h5IGl0IHdhcyBzbyBpbXBvcnRhbnQgdG8gcGFzcyB0aGUgQmlwYXJ0aXNhbiBJbmZyYXN0cnVjdHVyZSBMYXfigJR0aGUgbW9zdCBzd2VlcGluZyBpbnZlc3RtZW50IHRvIHJlYnVpbGQgQW1lcmljYSBpbiBoaXN0b3J5LiAKClRoaXMgd2FzIGEgYmlwYXJ0aXNhbiBlZmZvcnQsIGFuZCBJIHdhbnQgdG8gdGhhbmsgdGhlIG1lbWJlcnMgb2YgYm90aCBwYXJ0aWVzIHdobyB3b3JrZWQgdG8gbWFrZSBpdCBoYXBwZW4uIAoKV2XigJlyZSBkb25lIHRhbGtpbmcgYWJvdXQgaW5mcmFzdHJ1Y3R1cmUgd2Vla3MuIAoKV2XigJlyZSBnb2luZyB0byBoYXZlIGFuIGluZnJhc3RydWN0dXJlIGRlY2FkZS4gCgpJdCBpcyBnb2luZyB0byB0cmFuc2Zvcm0gQW1lcmljYSBhbmQgcHV0IHVzIG9uIGEgcGF0aCB0byB3aW4gdGhlIGVjb25vbWljIGNvbXBldGl0aW9uIG9mIHRoZSAyMXN0IENlbnR1cnkgdGhhdCB3ZSBmYWNlIHdpdGggdGhlIHJlc3Qgb2YgdGhlIHdvcmxk4oCUcGFydGljdWxhcmx5IHdpdGggQ2hpbmEuICAKCkFzIEnigJl2ZSB0b2xkIFhpIEppbnBpbmcsIGl0IGlzIG5ldmVyIGEgZ29vZCBiZXQgdG8gYmV0IGFnYWluc3QgdGhlIEFtZXJpY2FuIHBlb3BsZS4gCgpXZeKAmWxsIGNyZWF0ZSBnb29kIGpvYnMgZm9yIG1pbGxpb25zIG9mIEFtZXJpY2FucywgbW9kZXJuaXppbmcgcm9hZHMsIGFpcnBvcnRzLCBwb3J0cywgYW5kIHdhdGVyd2F5cyBhbGwgYWNyb3NzIEFtZXJpY2EuIAoKQW5kIHdl4oCZbGwgZG8gaXQgYWxsIHRvIHdpdGhzdGFuZCB0aGUgZGV2YXN0YXRpbmcgZWZmZWN0cyBvZiB0aGUgY2xpbWF0ZSBjcmlzaXMgYW5kIHByb21vdGUgZW52aXJvbm1lbnRhbCBqdXN0aWNlLiAKCldl4oCZbGwgYnVpbGQgYSBuYXRpb25hbCBuZXR3b3JrIG9mIDUwMCwwMDAgZWxlY3RyaWMgdmVoaWNsZSBjaGFyZ2luZyBzdGF0aW9ucywgYmVnaW4gdG8gcmVwbGFjZSBwb2lzb25vdXMgbGVhZCBwaXBlc+KAlHNvIGV2ZXJ5IGNoaWxk4oCUYW5kIGV2ZXJ5IEFtZXJpY2Fu4oCUaGFzIGNsZWFuIHdhdGVyIHRvIGRyaW5rIGF0IGhvbWUgYW5kIGF0IHNjaG9vbCwgcHJvdmlkZSBhZmZvcmRhYmxlIGhpZ2gtc3BlZWQgaW50ZXJuZXQgZm9yIGV2ZXJ5IEFtZXJpY2Fu4oCUdXJiYW4sIHN1YnVyYmFuLCBydXJhbCwgYW5kIHRyaWJhbCBjb21tdW5pdGllcy4gCgo0LDAwMCBwcm9qZWN0cyBoYXZlIGFscmVhZHkgYmVlbiBhbm5vdW5jZWQuIAoKQW5kIHRvbmlnaHQsIEnigJltIGFubm91bmNpbmcgdGhhdCB0aGlzIHllYXIgd2Ugd2lsbCBzdGFydCBmaXhpbmcgb3ZlciA2NSwwMDAgbWlsZXMgb2YgaGlnaHdheSBhbmQgMSw1MDAgYnJpZGdlcyBpbiBkaXNyZXBhaXIuIAoKV2hlbiB3ZSB1c2UgdGF4cGF5ZXIgZG9sbGFycyB0byByZWJ1aWxkIEFtZXJpY2Eg4oCTIHdlIGFyZSBnb2luZyB0byBCdXkgQW1lcmljYW46IGJ1eSBBbWVyaWNhbiBwcm9kdWN0cyB0byBzdXBwb3J0IEFtZXJpY2FuIGpvYnMuIAoKVGhlIGZlZGVyYWwgZ292ZXJubWVudCBzcGVuZHMgYWJvdXQgJDYwMCBCaWxsaW9uIGEgeWVhciB0byBrZWVwIHRoZSBjb3VudHJ5IHNhZmUgYW5kIHNlY3VyZS4gCgpUaGVyZeKAmXMgYmVlbiBhIGxhdyBvbiB0aGUgYm9va3MgZm9yIGFsbW9zdCBhIGNlbnR1cnkgCnRvIG1ha2Ugc3VyZSB0YXhwYXllcnPigJkgZG9sbGFycyBzdXBwb3J0IEFtZXJpY2FuIGpvYnMgYW5kIGJ1c2luZXNzZXMuIAoKRXZlcnkgQWRtaW5pc3RyYXRpb24gc2F5cyB0aGV54oCZbGwgZG8gaXQsIGJ1dCB3ZSBhcmUgYWN0dWFsbHkgZG9pbmcgaXQuIAoKV2Ugd2lsbCBidXkgQW1lcmljYW4gdG8gbWFrZSBzdXJlIGV2ZXJ5dGhpbmcgZnJvbSB0aGUgZGVjayBvZiBhbiBhaXJjcmFmdCBjYXJyaWVyIHRvIHRoZSBzdGVlbCBvbiBoaWdod2F5IGd1YXJkcmFpbHMgYXJlIG1hZGUgaW4gQW1lcmljYS4gCgpCdXQgdG8gY29tcGV0ZSBmb3IgdGhlIGJlc3Qgam9icyBvZiB0aGUgZnV0dXJlLCB3ZSBhbHNvIG5lZWQgdG8gbGV2ZWwgdGhlIHBsYXlpbmcgZmllbGQgd2l0aCBDaGluYSBhbmQgb3RoZXIgY29tcGV0aXRvcnMuIAoKVGhhdOKAmXMgd2h5IGl0IGlzIHNvIGltcG9ydGFudCB0byBwYXNzIHRoZSBCaXBhcnRpc2FuIElubm92YXRpb24gQWN0IHNpdHRpbmcgaW4gQ29uZ3Jlc3MgdGhhdCB3aWxsIG1ha2UgcmVjb3JkIGludmVzdG1lbnRzIGluIGVtZXJnaW5nIHRlY2hub2xvZ2llcyBhbmQgQW1lcmljYW4gbWFudWZhY3R1cmluZy4gCgpMZXQgbWUgZ2l2ZSB5b3Ugb25lIGV4YW1wbGUgb2Ygd2h5IGl04oCZcyBzbyBpbXBvcnRhbnQgdG8gcGFzcyBpdC4gCgpJZiB5b3UgdHJhdmVsIDIwIG1pbGVzIGVhc3Qgb2YgQ29sdW1idXMsIE9oaW8sIHlvdeKAmWxsIGZpbmQgMSwwMDAgZW1wdHkgYWNyZXMgb2YgbGFuZC4gCgpJdCB3b27igJl0IGxvb2sgbGlrZSBtdWNoLCBidXQgaWYgeW91IHN0b3AgYW5kIGxvb2sgY2xvc2VseSwgeW914oCZbGwgc2VlIGEg4oCcRmllbGQgb2YgZHJlYW1zLOKAnSB0aGUgZ3JvdW5kIG9uIHdoaWNoIEFtZXJpY2HigJlzIGZ1dHVyZSB3aWxsIGJlIGJ1aWx0LiAKClRoaXMgaXMgd2hlcmUgSW50ZWwsIHRoZSBBbWVyaWNhbiBjb21wYW55IHRoYXQgaGVscGVkIGJ1aWxkIFNpbGljb24gVmFsbGV5LCBpcyBnb2luZyB0byBidWlsZCBpdHMgJDIwIGJpbGxpb24gc2VtaWNvbmR1Y3RvciDigJxtZWdhIHNpdGXigJ0uIAoKVXAgdG8gZWlnaHQgc3RhdGUtb2YtdGhlLWFydCBmYWN0b3JpZXMgaW4gb25lIHBsYWNlLiAxMCwwMDAgbmV3IGdvb2QtcGF5aW5nIGpvYnMuIAoKU29tZSBvZiB0aGUgbW9zdCBzb3BoaXN0aWNhdGVkIG1hbnVmYWN0dXJpbmcgaW4gdGhlIHdvcmxkIHRvIG1ha2UgY29tcHV0ZXIgY2hpcHMgdGhlIHNpemUgb2YgYSBmaW5nZXJ0aXAgdGhhdCBwb3dlciB0aGUgd29ybGQgYW5kIG91ciBldmVyeWRheSBsaXZlcy4gCgpTbWFydHBob25lcy4gVGhlIEludGVybmV0LiBUZWNobm9sb2d5IHdlIGhhdmUgeWV0IHRvIGludmVudC4gCgpCdXQgdGhhdOKAmXMganVzdCB0aGUgYmVnaW5uaW5nLiAKCkludGVs4oCZcyBDRU8sIFBhdCBHZWxzaW5nZXIsIHdobyBpcyBoZXJlIHRvbmlnaHQsIHRvbGQgbWUgdGhleSBhcmUgcmVhZHkgdG8gaW5jcmVhc2UgdGhlaXIgaW52ZXN0bWVudCBmcm9tICAKJDIwIGJpbGxpb24gdG8gJDEwMCBiaWxsaW9uLiAKClRoYXQgd291bGQgYmUgb25lIG9mIHRoZSBiaWdnZXN0IGludmVzdG1lbnRzIGluIG1hbnVmYWN0dXJpbmcgaW4gQW1lcmljYW4gaGlzdG9yeS4gCgpBbmQgYWxsIHRoZXnigJlyZSB3YWl0aW5nIGZvciBpcyBmb3IgeW91IHRvIHBhc3MgdGhpcyBiaWxsLiAKClNvIGxldOKAmXMgbm90IHdhaXQgYW55IGxvbmdlci4gU2VuZCBpdCB0byBteSBkZXNrLiBJ4oCZbGwgc2lnbiBpdC4gIAoKQW5kIHdlIHdpbGwgcmVhbGx5IHRha2Ugb2ZmLiAKCkFuZCBJbnRlbCBpcyBub3QgYWxvbmUuIAoKVGhlcmXigJlzIHNvbWV0aGluZyBoYXBwZW5pbmcgaW4gQW1lcmljYS4gCgpKdXN0IGxvb2sgYXJvdW5kIGFuZCB5b3XigJlsbCBzZWUgYW4gYW1hemluZyBzdG9yeS4gCgpUaGUgcmViaXJ0aCBvZiB0aGUgcHJpZGUgdGhhdCBjb21lcyBmcm9tIHN0YW1waW5nIHByb2R1Y3RzIOKAnE1hZGUgSW4gQW1lcmljYS7igJ0gVGhlIHJldml0YWxpemF0aW9uIG9mIEFtZXJpY2FuIG1hbnVmYWN0dXJpbmcuICAgCgpDb21wYW5pZXMgYXJlIGNob29zaW5nIHRvIGJ1aWxkIG5ldyBmYWN0b3JpZXMgaGVyZSwgd2hlbiBqdXN0IGEgZmV3IHllYXJzIGFnbywgdGhleSB3b3VsZCBoYXZlIGJ1aWx0IHRoZW0gb3ZlcnNlYXMuIAoKVGhhdOKAmXMgd2hhdCBpcyBoYXBwZW5pbmcuIEZvcmQgaXMgaW52ZXN0aW5nICQxMSBiaWxsaW9uIHRvIGJ1aWxkIGVsZWN0cmljIHZlaGljbGVzLCBjcmVhdGluZyAxMSwwMDAgam9icyBhY3Jvc3MgdGhlIGNvdW50cnkuIAoKR00gaXMgbWFraW5nIHRoZSBsYXJnZXN0IGludmVzdG1lbnQgaW4gaXRzIGhpc3RvcnnigJQkNyBiaWxsaW9uIHRvIGJ1aWxkIGVsZWN0cmljIHZlaGljbGVzLCBjcmVhdGluZyA0LDAwMCBqb2JzIGluIE1pY2hpZ2FuLiAKCkFsbCB0b2xkLCB3ZSBjcmVhdGVkIDM2OSwwMDAgbmV3IG1hbnVmYWN0dXJpbmcgam9icyBpbiBBbWVyaWNhIGp1c3QgbGFzdCB5ZWFyLiAKClBvd2VyZWQgYnkgcGVvcGxlIEnigJl2ZSBtZXQgbGlrZSBKb0pvIEJ1cmdlc3MsIGZyb20gZ2VuZXJhdGlvbnMgb2YgdW5pb24gc3RlZWx3b3JrZXJzIGZyb20gUGl0dHNidXJnaCwgd2hv4oCZcyBoZXJlIHdpdGggdXMgdG9uaWdodC4gCgpBcyBPaGlvIFNlbmF0b3IgU2hlcnJvZCBCcm93biBzYXlzLCDigJxJdOKAmXMgdGltZSB0byBidXJ5IHRoZSBsYWJlbCDigJxSdXN0IEJlbHQu4oCdIAoKSXTigJlzIHRpbWUuIAoKQnV0IHdpdGggYWxsIHRoZSBicmlnaHQgc3BvdHMgaW4gb3VyIGVjb25vbXksIHJlY29yZCBqb2IgZ3Jvd3RoIGFuZCBoaWdoZXIgd2FnZXMsIHRvbyBtYW55IGZhbWlsaWVzIGFyZSBzdHJ1Z2dsaW5nIHRvIGtlZXAgdXAgd2l0aCB0aGUgYmlsbHMuICAKCkluZmxhdGlvbiBpcyByb2JiaW5nIHRoZW0gb2YgdGhlIGdhaW5zIHRoZXkgbWlnaHQgb3RoZXJ3aXNlIGZlZWwuIAoKSSBnZXQgaXQuIFRoYXTigJlzIHdoeSBteSB0b3AgcHJpb3JpdHkgaXMgZ2V0dGluZyBwcmljZXMgdW5kZXIgY29udHJvbC4gCgpMb29rLCBvdXIgZWNvbm9teSByb2FyZWQgYmFjayBmYXN0ZXIgdGhhbiBtb3N0IHByZWRpY3RlZCwgYnV0IHRoZSBwYW5kZW1pYyBtZWFudCB0aGF0IGJ1c2luZXNzZXMgaGFkIGEgaGFyZCB0aW1lIGhpcmluZyBlbm91Z2ggd29ya2VycyB0byBrZWVwIHVwIHByb2R1Y3Rpb24gaW4gdGhlaXIgZmFjdG9yaWVzLiAKClRoZSBwYW5kZW1pYyBhbHNvIGRpc3J1cHRlZCBnbG9iYWwgc3VwcGx5IGNoYWlucy4gCgpXaGVuIGZhY3RvcmllcyBjbG9zZSwgaXQgdGFrZXMgbG9uZ2VyIHRvIG1ha2UgZ29vZHMgYW5kIGdldCB0aGVtIGZyb20gdGhlIHdhcmVob3VzZSB0byB0aGUgc3RvcmUsIGFuZCBwcmljZXMgZ28gdXAuIAoKTG9vayBhdCBjYXJzLiAKCkxhc3QgeWVhciwgdGhlcmUgd2VyZW7igJl0IGVub3VnaCBzZW1pY29uZHVjdG9ycyB0byBtYWtlIGFsbCB0aGUgY2FycyB0aGF0IHBlb3BsZSB3YW50ZWQgdG8gYnV5LiAKCkFuZCBndWVzcyB3aGF0LCBwcmljZXMgb2YgYXV0b21vYmlsZXMgd2VudCB1cC4gCgpTb+KAlHdlIGhhdmUgYSBjaG9pY2UuIAoKT25lIHdheSB0byBmaWdodCBpbmZsYXRpb24gaXMgdG8gZHJpdmUgZG93biB3YWdlcyBhbmQgbWFrZSBBbWVyaWNhbnMgcG9vcmVyLiAgCgpJIGhhdmUgYSBiZXR0ZXIgcGxhbiB0byBmaWdodCBpbmZsYXRpb24uIAoKTG93ZXIgeW91ciBjb3N0cywgbm90IHlvdXIgd2FnZXMuIAoKTWFrZSBtb3JlIGNhcnMgYW5kIHNlbWljb25kdWN0b3JzIGluIEFtZXJpY2EuIAoKTW9yZSBpbmZyYXN0cnVjdHVyZSBhbmQgaW5ub3ZhdGlvbiBpbiBBbWVyaWNhLiAKCk1vcmUgZ29vZHMgbW92aW5nIGZhc3RlciBhbmQgY2hlYXBlciBpbiBBbWVyaWNhLiAKCk1vcmUgam9icyB3aGVyZSB5b3UgY2FuIGVhcm4gYSBnb29kIGxpdmluZyBpbiBBbWVyaWNhLiAKCkFuZCBpbnN0ZWFkIG9mIHJlbHlpbmcgb24gZm9yZWlnbiBzdXBwbHkgY2hhaW5zLCBsZXTigJlzIG1ha2UgaXQgaW4gQW1lcmljYS4gCgpFY29ub21pc3RzIGNhbGwgaXQg4oCcaW5jcmVhc2luZyB0aGUgcHJvZHVjdGl2ZSBjYXBhY2l0eSBvZiBvdXIgZWNvbm9teS7igJ0gCgpJIGNhbGwgaXQgYnVpbGRpbmcgYSBiZXR0ZXIgQW1lcmljYS4gCgpNeSBwbGFuIHRvIGZpZ2h0IGluZmxhdGlvbiB3aWxsIGxvd2VyIHlvdXIgY29zdHMgYW5kIGxvd2VyIHRoZSBkZWZpY2l0LiAKCjE3IE5vYmVsIGxhdXJlYXRlcyBpbiBlY29ub21pY3Mgc2F5IG15IHBsYW4gd2lsbCBlYXNlIGxvbmctdGVybSBpbmZsYXRpb25hcnkgcHJlc3N1cmVzLiBUb3AgYnVzaW5lc3MgbGVhZGVycyBhbmQgbW9zdCBBbWVyaWNhbnMgc3VwcG9ydCBteSBwbGFuLiBBbmQgaGVyZeKAmXMgdGhlIHBsYW46IAoKRmlyc3Qg4oCTIGN1dCB0aGUgY29zdCBvZiBwcmVzY3JpcHRpb24gZHJ1Z3MuIEp1c3QgbG9vayBhdCBpbnN1bGluLiBPbmUgaW4gdGVuIEFtZXJpY2FucyBoYXMgZGlhYmV0ZXMuIEluIFZpcmdpbmlhLCBJIG1ldCBhIDEzLXllYXItb2xkIGJveSBuYW1lZCBKb3NodWEgRGF2aXMuICAKCkhlIGFuZCBoaXMgRGFkIGJvdGggaGF2ZSBUeXBlIDEgZGlhYmV0ZXMsIHdoaWNoIG1lYW5zIHRoZXkgbmVlZCBpbnN1bGluIGV2ZXJ5IGRheS4gSW5zdWxpbiBjb3N0cyBhYm91dCAkMTAgYSB2aWFsIHRvIG1ha2UuICAKCkJ1dCBkcnVnIGNvbXBhbmllcyBjaGFyZ2UgZmFtaWxpZXMgbGlrZSBKb3NodWEgYW5kIGhpcyBEYWQgdXAgdG8gMzAgdGltZXMgbW9yZS4gSSBzcG9rZSB3aXRoIEpvc2h1YeKAmXMgbW9tLiAKCkltYWdpbmUgd2hhdCBpdOKAmXMgbGlrZSB0byBsb29rIGF0IHlvdXIgY2hpbGQgd2hvIG5lZWRzIGluc3VsaW4gYW5kIGhhdmUgbm8gaWRlYSBob3cgeW914oCZcmUgZ29pbmcgdG8gcGF5IGZvciBpdC4gIAoKV2hhdCBpdCBkb2VzIHRvIHlvdXIgZGlnbml0eSwgeW91ciBhYmlsaXR5IHRvIGxvb2sgeW91ciBjaGlsZCBpbiB0aGUgZXllLCB0byBiZSB0aGUgcGFyZW50IHlvdSBleHBlY3QgdG8gYmUuIAoKSm9zaHVhIGlzIGhlcmUgd2l0aCB1cyB0b25pZ2h0LiBZZXN0ZXJkYXkgd2FzIGhpcyBiaXJ0aGRheS4gSGFwcHkgYmlydGhkYXksIGJ1ZGR5LiAgCgpGb3IgSm9zaHVhLCBhbmQgZm9yIHRoZSAyMDAsMDAwIG90aGVyIHlvdW5nIHBlb3BsZSB3aXRoIFR5cGUgMSBkaWFiZXRlcywgbGV04oCZcyBjYXAgdGhlIGNvc3Qgb2YgaW5zdWxpbiBhdCAkMzUgYSBtb250aCBzbyBldmVyeW9uZSBjYW4gYWZmb3JkIGl0LiAgCgpEcnVnIGNvbXBhbmllcyB3aWxsIHN0aWxsIGRvIHZlcnkgd2VsbC4gQW5kIHdoaWxlIHdl4oCZcmUgYXQgaXQgbGV0IE1lZGljYXJlIG5lZ290aWF0ZSBsb3dlciBwcmljZXMgZm9yIHByZXNjcmlwdGlvbiBkcnVncywgbGlrZSB0aGUgVkEgYWxyZWFkeSBkb2VzLiAKCkxvb2ssIHRoZSBBbWVyaWNhbiBSZXNjdWUgUGxhbiBpcyBoZWxwaW5nIG1pbGxpb25zIG9mIGZhbWlsaWVzIG9uIEFmZm9yZGFibGUgQ2FyZSBBY3QgcGxhbnMgc2F2ZSAkMiw0MDAgYSB5ZWFyIG9uIHRoZWlyIGhlYWx0aCBjYXJlIHByZW1pdW1zLiBMZXTigJlzIGNsb3NlIHRoZSBjb3ZlcmFnZSBnYXAgYW5kIG1ha2UgdGhvc2Ugc2F2aW5ncyBwZXJtYW5lbnQuIAoKU2Vjb25kIOKAkyBjdXQgZW5lcmd5IGNvc3RzIGZvciBmYW1pbGllcyBhbiBhdmVyYWdlIG9mICQ1MDAgYSB5ZWFyIGJ5IGNvbWJhdHRpbmcgY2xpbWF0ZSBjaGFuZ2UuICAKCkxldOKAmXMgcHJvdmlkZSBpbnZlc3RtZW50cyBhbmQgdGF4IGNyZWRpdHMgdG8gd2VhdGhlcml6ZSB5b3VyIGhvbWVzIGFuZCBidXNpbmVzc2VzIHRvIGJlIGVuZXJneSBlZmZpY2llbnQgYW5kIHlvdSBnZXQgYSB0YXggY3JlZGl0OyBkb3VibGUgQW1lcmljYeKAmXMgY2xlYW4gZW5lcmd5IHByb2R1Y3Rpb24gaW4gc29sYXIsIHdpbmQsIGFuZCBzbyBtdWNoIG1vcmU7ICBsb3dlciB0aGUgcHJpY2Ugb2YgZWxlY3RyaWMgdmVoaWNsZXMsIHNhdmluZyB5b3UgYW5vdGhlciAkODAgYSBtb250aCBiZWNhdXNlIHlvdeKAmWxsIG5ldmVyIGhhdmUgdG8gcGF5IGF0IHRoZSBnYXMgcHVtcCBhZ2Fpbi4gCgpUaGlyZCDigJMgY3V0IHRoZSBjb3N0IG9mIGNoaWxkIGNhcmUuIE1hbnkgZmFtaWxpZXMgcGF5IHVwIHRvICQxNCwwMDAgYSB5ZWFyIGZvciBjaGlsZCBjYXJlIHBlciBjaGlsZC4gIAoKTWlkZGxlLWNsYXNzIGFuZCB3b3JraW5nIGZhbWlsaWVzIHNob3VsZG7igJl0IGhhdmUgdG8gcGF5IG1vcmUgdGhhbiA3JSBvZiB0aGVpciBpbmNvbWUgZm9yIGNhcmUgb2YgeW91bmcgY2hpbGRyZW4uICAKCk15IHBsYW4gd2lsbCBjdXQgdGhlIGNvc3QgaW4gaGFsZiBmb3IgbW9zdCBmYW1pbGllcyBhbmQgaGVscCBwYXJlbnRzLCBpbmNsdWRpbmcgbWlsbGlvbnMgb2Ygd29tZW4sIHdobyBsZWZ0IHRoZSB3b3JrZm9yY2UgZHVyaW5nIHRoZSBwYW5kZW1pYyBiZWNhdXNlIHRoZXkgY291bGRu4oCZdCBhZmZvcmQgY2hpbGQgY2FyZSwgdG8gYmUgYWJsZSB0byBnZXQgYmFjayB0byB3b3JrLiAKCk15IHBsYW4gZG9lc27igJl0IHN0b3AgdGhlcmUuIEl0IGFsc28gaW5jbHVkZXMgaG9tZSBhbmQgbG9uZy10ZXJtIGNhcmUuIE1vcmUgYWZmb3JkYWJsZSBob3VzaW5nLiBBbmQgUHJlLUsgZm9yIGV2ZXJ5IDMtIGFuZCA0LXllYXItb2xkLiAgCgpBbGwgb2YgdGhlc2Ugd2lsbCBsb3dlciBjb3N0cy4gCgpBbmQgdW5kZXIgbXkgcGxhbiwgbm9ib2R5IGVhcm5pbmcgbGVzcyB0aGFuICQ0MDAsMDAwIGEgeWVhciB3aWxsIHBheSBhbiBhZGRpdGlvbmFsIHBlbm55IGluIG5ldyB0YXhlcy4gTm9ib2R5LiAgCgpUaGUgb25lIHRoaW5nIGFsbCBBbWVyaWNhbnMgYWdyZWUgb24gaXMgdGhhdCB0aGUgdGF4IHN5c3RlbSBpcyBub3QgZmFpci4gV2UgaGF2ZSB0byBmaXggaXQuICAKCknigJltIG5vdCBsb29raW5nIHRvIHB1bmlzaCBhbnlvbmUuIEJ1dCBsZXTigJlzIG1ha2Ugc3VyZSBjb3Jwb3JhdGlvbnMgYW5kIHRoZSB3ZWFsdGhpZXN0IEFtZXJpY2FucyBzdGFydCBwYXlpbmcgdGhlaXIgZmFpciBzaGFyZS4gCgpKdXN0IGxhc3QgeWVhciwgNTUgRm9ydHVuZSA1MDAgY29ycG9yYXRpb25zIGVhcm5lZCAkNDAgYmlsbGlvbiBpbiBwcm9maXRzIGFuZCBwYWlkIHplcm8gZG9sbGFycyBpbiBmZWRlcmFsIGluY29tZSB0YXguICAKClRoYXTigJlzIHNpbXBseSBub3QgZmFpci4gVGhhdOKAmXMgd2h5IEnigJl2ZSBwcm9wb3NlZCBhIDE1JSBtaW5pbXVtIHRheCByYXRlIGZvciBjb3Jwb3JhdGlvbnMuIAoKV2UgZ290IG1vcmUgdGhhbiAxMzAgY291bnRyaWVzIHRvIGFncmVlIG9uIGEgZ2xvYmFsIG1pbmltdW0gdGF4IHJhdGUgc28gY29tcGFuaWVzIGNhbuKAmXQgZ2V0IG91dCBvZiBwYXlpbmcgdGhlaXIgdGF4ZXMgYXQgaG9tZSBieSBzaGlwcGluZyBqb2JzIGFuZCBmYWN0b3JpZXMgb3ZlcnNlYXMuIAoKVGhhdOKAmXMgd2h5IEnigJl2ZSBwcm9wb3NlZCBjbG9zaW5nIGxvb3Bob2xlcyBzbyB0aGUgdmVyeSB3ZWFsdGh5IGRvbuKAmXQgcGF5IGEgbG93ZXIgdGF4IHJhdGUgdGhhbiBhIHRlYWNoZXIgb3IgYSBmaXJlZmlnaHRlci4gIAoKU28gdGhhdOKAmXMgbXkgcGxhbi4gSXQgd2lsbCBncm93IHRoZSBlY29ub215IGFuZCBsb3dlciBjb3N0cyBmb3IgZmFtaWxpZXMuIAoKU28gd2hhdCBhcmUgd2Ugd2FpdGluZyBmb3I/IExldOKAmXMgZ2V0IHRoaXMgZG9uZS4gQW5kIHdoaWxlIHlvdeKAmXJlIGF0IGl0LCBjb25maXJtIG15IG5vbWluZWVzIHRvIHRoZSBGZWRlcmFsIFJlc2VydmUsIHdoaWNoIHBsYXlzIGEgY3JpdGljYWwgcm9sZSBpbiBmaWdodGluZyBpbmZsYXRpb24uICAKCk15IHBsYW4gd2lsbCBub3Qgb25seSBsb3dlciBjb3N0cyB0byBnaXZlIGZhbWlsaWVzIGEgZmFpciBzaG90LCBpdCB3aWxsIGxvd2VyIHRoZSBkZWZpY2l0LiAKClRoZSBwcmV2aW91cyBBZG1pbmlzdHJhdGlvbiBub3Qgb25seSBiYWxsb29uZWQgdGhlIGRlZmljaXQgd2l0aCB0YXggY3V0cyBmb3IgdGhlIHZlcnkgd2VhbHRoeSBhbmQgY29ycG9yYXRpb25zLCBpdCB1bmRlcm1pbmVkIHRoZSB3YXRjaGRvZ3Mgd2hvc2Ugam9iIHdhcyB0byBrZWVwIHBhbmRlbWljIHJlbGllZiBmdW5kcyBmcm9tIGJlaW5nIHdhc3RlZC4gCgpCdXQgaW4gbXkgYWRtaW5pc3RyYXRpb24sIHRoZSB3YXRjaGRvZ3MgaGF2ZSBiZWVuIHdlbGNvbWVkIGJhY2suIAoKV2XigJlyZSBnb2luZyBhZnRlciB0aGUgY3JpbWluYWxzIHdobyBzdG9sZSBiaWxsaW9ucyBpbiByZWxpZWYgbW9uZXkgbWVhbnQgZm9yIHNtYWxsIGJ1c2luZXNzZXMgYW5kIG1pbGxpb25zIG9mIEFtZXJpY2Fucy4gIAoKQW5kIHRvbmlnaHQsIEnigJltIGFubm91bmNpbmcgdGhhdCB0aGUgSnVzdGljZSBEZXBhcnRtZW50IHdpbGwgbmFtZSBhIGNoaWVmIHByb3NlY3V0b3IgZm9yIHBhbmRlbWljIGZyYXVkLiAKCkJ5IHRoZSBlbmQgb2YgdGhpcyB5ZWFyLCB0aGUgZGVmaWNpdCB3aWxsIGJlIGRvd24gdG8gbGVzcyB0aGFuIGhhbGYgd2hhdCBpdCB3YXMgYmVmb3JlIEkgdG9vayBvZmZpY2UuICAKClRoZSBvbmx5IHByZXNpZGVudCBldmVyIHRvIGN1dCB0aGUgZGVmaWNpdCBieSBtb3JlIHRoYW4gb25lIHRyaWxsaW9uIGRvbGxhcnMgaW4gYSBzaW5nbGUgeWVhci4gCgpMb3dlcmluZyB5b3VyIGNvc3RzIGFsc28gbWVhbnMgZGVtYW5kaW5nIG1vcmUgY29tcGV0aXRpb24uIAoKSeKAmW0gYSBjYXBpdGFsaXN0LCBidXQgY2FwaXRhbGlzbSB3aXRob3V0IGNvbXBldGl0aW9uIGlzbuKAmXQgY2FwaXRhbGlzbS4gCgpJdOKAmXMgZXhwbG9pdGF0aW9u4oCUYW5kIGl0IGRyaXZlcyB1cCBwcmljZXMuIAoKV2hlbiBjb3Jwb3JhdGlvbnMgZG9u4oCZdCBoYXZlIHRvIGNvbXBldGUsIHRoZWlyIHByb2ZpdHMgZ28gdXAsIHlvdXIgcHJpY2VzIGdvIHVwLCBhbmQgc21hbGwgYnVzaW5lc3NlcyBhbmQgZmFtaWx5IGZhcm1lcnMgYW5kIHJhbmNoZXJzIGdvIHVuZGVyLiAKCldlIHNlZSBpdCBoYXBwZW5pbmcgd2l0aCBvY2VhbiBjYXJyaWVycyBtb3ZpbmcgZ29vZHMgaW4gYW5kIG91dCBvZiBBbWVyaWNhLiAKCkR1cmluZyB0aGUgcGFuZGVtaWMsIHRoZXNlIGZvcmVpZ24tb3duZWQgY29tcGFuaWVzIHJhaXNlZCBwcmljZXMgYnkgYXMgbXVjaCBhcyAxLDAwMCUgYW5kIG1hZGUgcmVjb3JkIHByb2ZpdHMuIAoKVG9uaWdodCwgSeKAmW0gYW5ub3VuY2luZyBhIGNyYWNrZG93biBvbiB0aGVzZSBjb21wYW5pZXMgb3ZlcmNoYXJnaW5nIEFtZXJpY2FuIGJ1c2luZXNzZXMgYW5kIGNvbnN1bWVycy4gCgpBbmQgYXMgV2FsbCBTdHJlZXQgZmlybXMgdGFrZSBvdmVyIG1vcmUgbnVyc2luZyBob21lcywgcXVhbGl0eSBpbiB0aG9zZSBob21lcyBoYXMgZ29uZSBkb3duIGFuZCBjb3N0cyBoYXZlIGdvbmUgdXAuICAKClRoYXQgZW5kcyBvbiBteSB3YXRjaC4gCgpNZWRpY2FyZSBpcyBnb2luZyB0byBzZXQgaGlnaGVyIHN0YW5kYXJkcyBmb3IgbnVyc2luZyBob21lcyBhbmQgbWFrZSBzdXJlIHlvdXIgbG92ZWQgb25lcyBnZXQgdGhlIGNhcmUgdGhleSBkZXNlcnZlIGFuZCBleHBlY3QuIAoKV2XigJlsbCBhbHNvIGN1dCBjb3N0cyBhbmQga2VlcCB0aGUgZWNvbm9teSBnb2luZyBzdHJvbmcgYnkgZ2l2aW5nIHdvcmtlcnMgYSBmYWlyIHNob3QsIHByb3ZpZGUgbW9yZSB0cmFpbmluZyBhbmQgYXBwcmVudGljZXNoaXBzLCBoaXJlIHRoZW0gYmFzZWQgb24gdGhlaXIgc2tpbGxzIG5vdCBkZWdyZWVzLiAKCkxldOKAmXMgcGFzcyB0aGUgUGF5Y2hlY2sgRmFpcm5lc3MgQWN0IGFuZCBwYWlkIGxlYXZlLiAgCgpSYWlzZSB0aGUgbWluaW11bSB3YWdlIHRvICQxNSBhbiBob3VyIGFuZCBleHRlbmQgdGhlIENoaWxkIFRheCBDcmVkaXQsIHNvIG5vIG9uZSBoYXMgdG8gcmFpc2UgYSBmYW1pbHkgaW4gcG92ZXJ0eS4gCgpMZXTigJlzIGluY3JlYXNlIFBlbGwgR3JhbnRzIGFuZCBpbmNyZWFzZSBvdXIgaGlzdG9yaWMgc3VwcG9ydCBvZiBIQkNVcywgYW5kIGludmVzdCBpbiB3aGF0IEppbGzigJRvdXIgRmlyc3QgTGFkeSB3aG8gdGVhY2hlcyBmdWxsLXRpbWXigJRjYWxscyBBbWVyaWNh4oCZcyBiZXN0LWtlcHQgc2VjcmV0OiBjb21tdW5pdHkgY29sbGVnZXMuIAoKQW5kIGxldOKAmXMgcGFzcyB0aGUgUFJPIEFjdCB3aGVuIGEgbWFqb3JpdHkgb2Ygd29ya2VycyB3YW50IHRvIGZvcm0gYSB1bmlvbuKAlHRoZXkgc2hvdWxkbuKAmXQgYmUgc3RvcHBlZC4gIAoKV2hlbiB3ZSBpbnZlc3QgaW4gb3VyIHdvcmtlcnMsIHdoZW4gd2UgYnVpbGQgdGhlIGVjb25vbXkgZnJvbSB0aGUgYm90dG9tIHVwIGFuZCB0aGUgbWlkZGxlIG91dCB0b2dldGhlciwgd2UgY2FuIGRvIHNvbWV0aGluZyB3ZSBoYXZlbuKAmXQgZG9uZSBpbiBhIGxvbmcgdGltZTogYnVpbGQgYSBiZXR0ZXIgQW1lcmljYS4gCgpGb3IgbW9yZSB0aGFuIHR3byB5ZWFycywgQ09WSUQtMTkgaGFzIGltcGFjdGVkIGV2ZXJ5IGRlY2lzaW9uIGluIG91ciBsaXZlcyBhbmQgdGhlIGxpZmUgb2YgdGhlIG5hdGlvbi4gCgpBbmQgSSBrbm93IHlvdeKAmXJlIHRpcmVkLCBmcnVzdHJhdGVkLCBhbmQgZXhoYXVzdGVkLiAKCkJ1dCBJIGFsc28ga25vdyB0aGlzLiAKCkJlY2F1c2Ugb2YgdGhlIHByb2dyZXNzIHdl4oCZdmUgbWFkZSwgYmVjYXVzZSBvZiB5b3VyIHJlc2lsaWVuY2UgYW5kIHRoZSB0b29scyB3ZSBoYXZlLCB0b25pZ2h0IEkgY2FuIHNheSAgCndlIGFyZSBtb3ZpbmcgZm9yd2FyZCBzYWZlbHksIGJhY2sgdG8gbW9yZSBub3JtYWwgcm91dGluZXMuICAKCldl4oCZdmUgcmVhY2hlZCBhIG5ldyBtb21lbnQgaW4gdGhlIGZpZ2h0IGFnYWluc3QgQ09WSUQtMTksIHdpdGggc2V2ZXJlIGNhc2VzIGRvd24gdG8gYSBsZXZlbCBub3Qgc2VlbiBzaW5jZSBsYXN0IEp1bHkuICAKCkp1c3QgYSBmZXcgZGF5cyBhZ28sIHRoZSBDZW50ZXJzIGZvciBEaXNlYXNlIENvbnRyb2wgYW5kIFByZXZlbnRpb27igJR0aGUgQ0RD4oCUaXNzdWVkIG5ldyBtYXNrIGd1aWRlbGluZXMuIAoKVW5kZXIgdGhlc2UgbmV3IGd1aWRlbGluZXMsIG1vc3QgQW1lcmljYW5zIGluIG1vc3Qgb2YgdGhlIGNvdW50cnkgY2FuIG5vdyBiZSBtYXNrIGZyZWUuICAgCgpBbmQgYmFzZWQgb24gdGhlIHByb2plY3Rpb25zLCBtb3JlIG9mIHRoZSBjb3VudHJ5IHdpbGwgcmVhY2ggdGhhdCBwb2ludCBhY3Jvc3MgdGhlIG5leHQgY291cGxlIG9mIHdlZWtzLiAKClRoYW5rcyB0byB0aGUgcHJvZ3Jlc3Mgd2UgaGF2ZSBtYWRlIHRoaXMgcGFzdCB5ZWFyLCBDT1ZJRC0xOSBuZWVkIG5vIGxvbmdlciBjb250cm9sIG91ciBsaXZlcy4gIAoKSSBrbm93IHNvbWUgYXJlIHRhbGtpbmcgYWJvdXQg4oCcbGl2aW5nIHdpdGggQ09WSUQtMTnigJ0uIFRvbmlnaHQg4oCTIEkgc2F5IHRoYXQgd2Ugd2lsbCBuZXZlciBqdXN0IGFjY2VwdCBsaXZpbmcgd2l0aCBDT1ZJRC0xOS4gCgpXZSB3aWxsIGNvbnRpbnVlIHRvIGNvbWJhdCB0aGUgdmlydXMgYXMgd2UgZG8gb3RoZXIgZGlzZWFzZXMuIEFuZCBiZWNhdXNlIHRoaXMgaXMgYSB2aXJ1cyB0aGF0IG11dGF0ZXMgYW5kIHNwcmVhZHMsIHdlIHdpbGwgc3RheSBvbiBndWFyZC4gCgpIZXJlIGFyZSBmb3VyIGNvbW1vbiBzZW5zZSBzdGVwcyBhcyB3ZSBtb3ZlIGZvcndhcmQgc2FmZWx5LiAgCgpGaXJzdCwgc3RheSBwcm90ZWN0ZWQgd2l0aCB2YWNjaW5lcyBhbmQgdHJlYXRtZW50cy4gV2Uga25vdyBob3cgaW5jcmVkaWJseSBlZmZlY3RpdmUgdmFjY2luZXMgYXJlLiBJZiB5b3XigJlyZSB2YWNjaW5hdGVkIGFuZCBib29zdGVkIHlvdSBoYXZlIHRoZSBoaWdoZXN0IGRlZ3JlZSBvZiBwcm90ZWN0aW9uLiAKCldlIHdpbGwgbmV2ZXIgZ2l2ZSB1cCBvbiB2YWNjaW5hdGluZyBtb3JlIEFtZXJpY2Fucy4gTm93LCBJIGtub3cgcGFyZW50cyB3aXRoIGtpZHMgdW5kZXIgNSBhcmUgZWFnZXIgdG8gc2VlIGEgdmFjY2luZSBhdXRob3JpemVkIGZvciB0aGVpciBjaGlsZHJlbi4gCgpUaGUgc2NpZW50aXN0cyBhcmUgd29ya2luZyBoYXJkIHRvIGdldCB0aGF0IGRvbmUgYW5kIHdl4oCZbGwgYmUgcmVhZHkgd2l0aCBwbGVudHkgb2YgdmFjY2luZXMgd2hlbiB0aGV5IGRvLiAKCldl4oCZcmUgYWxzbyByZWFkeSB3aXRoIGFudGktdmlyYWwgdHJlYXRtZW50cy4gSWYgeW91IGdldCBDT1ZJRC0xOSwgdGhlIFBmaXplciBwaWxsIHJlZHVjZXMgeW91ciBjaGFuY2VzIG9mIGVuZGluZyB1cCBpbiB0aGUgaG9zcGl0YWwgYnkgOTAlLiAgCgpXZeKAmXZlIG9yZGVyZWQgbW9yZSBvZiB0aGVzZSBwaWxscyB0aGFuIGFueW9uZSBpbiB0aGUgd29ybGQuIEFuZCBQZml6ZXIgaXMgd29ya2luZyBvdmVydGltZSB0byBnZXQgdXMgMSBNaWxsaW9uIHBpbGxzIHRoaXMgbW9udGggYW5kIG1vcmUgdGhhbiBkb3VibGUgdGhhdCBuZXh0IG1vbnRoLiAgCgpBbmQgd2XigJlyZSBsYXVuY2hpbmcgdGhlIOKAnFRlc3QgdG8gVHJlYXTigJ0gaW5pdGlhdGl2ZSBzbyBwZW9wbGUgY2FuIGdldCB0ZXN0ZWQgYXQgYSBwaGFybWFjeSwgYW5kIGlmIHRoZXnigJlyZSBwb3NpdGl2ZSwgcmVjZWl2ZSBhbnRpdmlyYWwgcGlsbHMgb24gdGhlIHNwb3QgYXQgbm8gY29zdC4gIAoKSWYgeW914oCZcmUgaW1tdW5vY29tcHJvbWlzZWQgb3IgaGF2ZSBzb21lIG90aGVyIHZ1bG5lcmFiaWxpdHksIHdlIGhhdmUgdHJlYXRtZW50cyBhbmQgZnJlZSBoaWdoLXF1YWxpdHkgbWFza3MuIAoKV2XigJlyZSBsZWF2aW5nIG5vIG9uZSBiZWhpbmQgb3IgaWdub3JpbmcgYW55b25l4oCZcyBuZWVkcyBhcyB3ZSBtb3ZlIGZvcndhcmQuIAoKQW5kIG9uIHRlc3RpbmcsIHdlIGhhdmUgbWFkZSBodW5kcmVkcyBvZiBtaWxsaW9ucyBvZiB0ZXN0cyBhdmFpbGFibGUgZm9yIHlvdSB0byBvcmRlciBmb3IgZnJlZS4gICAKCkV2ZW4gaWYgeW91IGFscmVhZHkgb3JkZXJlZCBmcmVlIHRlc3RzIHRvbmlnaHQsIEkgYW0gYW5ub3VuY2luZyB0aGF0IHlvdSBjYW4gb3JkZXIgbW9yZSBmcm9tIGNvdmlkdGVzdHMuZ292IHN0YXJ0aW5nIG5leHQgd2Vlay4gCgpTZWNvbmQg4oCTIHdlIG11c3QgcHJlcGFyZSBmb3IgbmV3IHZhcmlhbnRzLiBPdmVyIHRoZSBwYXN0IHllYXIsIHdl4oCZdmUgZ290dGVuIG11Y2ggYmV0dGVyIGF0IGRldGVjdGluZyBuZXcgdmFyaWFudHMuIAoKSWYgbmVjZXNzYXJ5LCB3ZeKAmWxsIGJlIGFibGUgdG8gZGVwbG95IG5ldyB2YWNjaW5lcyB3aXRoaW4gMTAwIGRheXMgaW5zdGVhZCBvZiBtYW55IG1vcmUgbW9udGhzIG9yIHllYXJzLiAgCgpBbmQsIGlmIENvbmdyZXNzIHByb3ZpZGVzIHRoZSBmdW5kcyB3ZSBuZWVkLCB3ZeKAmWxsIGhhdmUgbmV3IHN0b2NrcGlsZXMgb2YgdGVzdHMsIG1hc2tzLCBhbmQgcGlsbHMgcmVhZHkgaWYgbmVlZGVkLiAKCkkgY2Fubm90IHByb21pc2UgYSBuZXcgdmFyaWFudCB3b27igJl0IGNvbWUuIEJ1dCBJIGNhbiBwcm9taXNlIHlvdSB3ZeKAmWxsIGRvIGV2ZXJ5dGhpbmcgd2l0aGluIG91ciBwb3dlciB0byBiZSByZWFkeSBpZiBpdCBkb2VzLiAgCgpUaGlyZCDigJMgd2UgY2FuIGVuZCB0aGUgc2h1dGRvd24gb2Ygc2Nob29scyBhbmQgYnVzaW5lc3Nlcy4gV2UgaGF2ZSB0aGUgdG9vbHMgd2UgbmVlZC4gCgpJdOKAmXMgdGltZSBmb3IgQW1lcmljYW5zIHRvIGdldCBiYWNrIHRvIHdvcmsgYW5kIGZpbGwgb3VyIGdyZWF0IGRvd250b3ducyBhZ2Fpbi4gIFBlb3BsZSB3b3JraW5nIGZyb20gaG9tZSBjYW4gZmVlbCBzYWZlIHRvIGJlZ2luIHRvIHJldHVybiB0byB0aGUgb2ZmaWNlLiAgIAoKV2XigJlyZSBkb2luZyB0aGF0IGhlcmUgaW4gdGhlIGZlZGVyYWwgZ292ZXJubWVudC4gVGhlIHZhc3QgbWFqb3JpdHkgb2YgZmVkZXJhbCB3b3JrZXJzIHdpbGwgb25jZSBhZ2FpbiB3b3JrIGluIHBlcnNvbi4gCgpPdXIgc2Nob29scyBhcmUgb3Blbi4gTGV04oCZcyBrZWVwIGl0IHRoYXQgd2F5LiBPdXIga2lkcyBuZWVkIHRvIGJlIGluIHNjaG9vbC4gCgpBbmQgd2l0aCA3NSUgb2YgYWR1bHQgQW1lcmljYW5zIGZ1bGx5IHZhY2NpbmF0ZWQgYW5kIGhvc3BpdGFsaXphdGlvbnMgZG93biBieSA3NyUsIG1vc3QgQW1lcmljYW5zIGNhbiByZW1vdmUgdGhlaXIgbWFza3MsIHJldHVybiB0byB3b3JrLCBzdGF5IGluIHRoZSBjbGFzc3Jvb20sIGFuZCBtb3ZlIGZvcndhcmQgc2FmZWx5LiAKCldlIGFjaGlldmVkIHRoaXMgYmVjYXVzZSB3ZSBwcm92aWRlZCBmcmVlIHZhY2NpbmVzLCB0cmVhdG1lbnRzLCB0ZXN0cywgYW5kIG1hc2tzLiAKCk9mIGNvdXJzZSwgY29udGludWluZyB0aGlzIGNvc3RzIG1vbmV5LiAKCkkgd2lsbCBzb29uIHNlbmQgQ29uZ3Jlc3MgYSByZXF1ZXN0LiAKClRoZSB2YXN0IG1ham9yaXR5IG9mIEFtZXJpY2FucyBoYXZlIHVzZWQgdGhlc2UgdG9vbHMgYW5kIG1heSB3YW50IHRvIGFnYWluLCBzbyBJIGV4cGVjdCBDb25ncmVzcyB0byBwYXNzIGl0IHF1aWNrbHkuICAgCgpGb3VydGgsIHdlIHdpbGwgY29udGludWUgdmFjY2luYXRpbmcgdGhlIHdvcmxkLiAgICAgCgpXZeKAmXZlIHNlbnQgNDc1IE1pbGxpb24gdmFjY2luZSBkb3NlcyB0byAxMTIgY291bnRyaWVzLCBtb3JlIHRoYW4gYW55IG90aGVyIG5hdGlvbi4gCgpBbmQgd2Ugd29u4oCZdCBzdG9wLiAKCldlIGhhdmUgbG9zdCBzbyBtdWNoIHRvIENPVklELTE5LiBUaW1lIHdpdGggb25lIGFub3RoZXIuIEFuZCB3b3JzdCBvZiBhbGwsIHNvIG11Y2ggbG9zcyBvZiBsaWZlLiAKCkxldOKAmXMgdXNlIHRoaXMgbW9tZW50IHRvIHJlc2V0LiBMZXTigJlzIHN0b3AgbG9va2luZyBhdCBDT1ZJRC0xOSBhcyBhIHBhcnRpc2FuIGRpdmlkaW5nIGxpbmUgYW5kIHNlZSBpdCBmb3Igd2hhdCBpdCBpczogQSBHb2QtYXdmdWwgZGlzZWFzZS4gIAoKTGV04oCZcyBzdG9wIHNlZWluZyBlYWNoIG90aGVyIGFzIGVuZW1pZXMsIGFuZCBzdGFydCBzZWVpbmcgZWFjaCBvdGhlciBmb3Igd2hvIHdlIHJlYWxseSBhcmU6IEZlbGxvdyBBbWVyaWNhbnMuICAKCldlIGNhbuKAmXQgY2hhbmdlIGhvdyBkaXZpZGVkIHdl4oCZdmUgYmVlbi4gQnV0IHdlIGNhbiBjaGFuZ2UgaG93IHdlIG1vdmUgZm9yd2FyZOKAlG9uIENPVklELTE5IGFuZCBvdGhlciBpc3N1ZXMgd2UgbXVzdCBmYWNlIHRvZ2V0aGVyLiAKCkkgcmVjZW50bHkgdmlzaXRlZCB0aGUgTmV3IFlvcmsgQ2l0eSBQb2xpY2UgRGVwYXJ0bWVudCBkYXlzIGFmdGVyIHRoZSBmdW5lcmFscyBvZiBPZmZpY2VyIFdpbGJlcnQgTW9yYSBhbmQgaGlzIHBhcnRuZXIsIE9mZmljZXIgSmFzb24gUml2ZXJhLiAKClRoZXkgd2VyZSByZXNwb25kaW5nIHRvIGEgOS0xLTEgY2FsbCB3aGVuIGEgbWFuIHNob3QgYW5kIGtpbGxlZCB0aGVtIHdpdGggYSBzdG9sZW4gZ3VuLiAKCk9mZmljZXIgTW9yYSB3YXMgMjcgeWVhcnMgb2xkLiAKCk9mZmljZXIgUml2ZXJhIHdhcyAyMi4gCgpCb3RoIERvbWluaWNhbiBBbWVyaWNhbnMgd2hv4oCZZCBncm93biB1cCBvbiB0aGUgc2FtZSBzdHJlZXRzIHRoZXkgbGF0ZXIgY2hvc2UgdG8gcGF0cm9sIGFzIHBvbGljZSBvZmZpY2Vycy4gCgpJIHNwb2tlIHdpdGggdGhlaXIgZmFtaWxpZXMgYW5kIHRvbGQgdGhlbSB0aGF0IHdlIGFyZSBmb3JldmVyIGluIGRlYnQgZm9yIHRoZWlyIHNhY3JpZmljZSwgYW5kIHdlIHdpbGwgY2Fycnkgb24gdGhlaXIgbWlzc2lvbiB0byByZXN0b3JlIHRoZSB0cnVzdCBhbmQgc2FmZXR5IGV2ZXJ5IGNvbW11bml0eSBkZXNlcnZlcy4gCgpJ4oCZdmUgd29ya2VkIG9uIHRoZXNlIGlzc3VlcyBhIGxvbmcgdGltZS4gCgpJIGtub3cgd2hhdCB3b3JrczogSW52ZXN0aW5nIGluIGNyaW1lIHByZXZlbnRpb25hbmQgY29tbXVuaXR5IHBvbGljZSBvZmZpY2VycyB3aG/igJlsbCB3YWxrIHRoZSBiZWF0LCB3aG/igJlsbCBrbm93IHRoZSBuZWlnaGJvcmhvb2QsIGFuZCB3aG8gY2FuIHJlc3RvcmUgdHJ1c3QgYW5kIHNhZmV0eS4gCgpTbyBsZXTigJlzIG5vdCBhYmFuZG9uIG91ciBzdHJlZXRzLiBPciBjaG9vc2UgYmV0d2VlbiBzYWZldHkgYW5kIGVxdWFsIGp1c3RpY2UuIAoKTGV04oCZcyBjb21lIHRvZ2V0aGVyIHRvIHByb3RlY3Qgb3VyIGNvbW11bml0aWVzLCByZXN0b3JlIHRydXN0LCBhbmQgaG9sZCBsYXcgZW5mb3JjZW1lbnQgYWNjb3VudGFibGUuIAoKVGhhdOKAmXMgd2h5IHRoZSBKdXN0aWNlIERlcGFydG1lbnQgcmVxdWlyZWQgYm9keSBjYW1lcmFzLCBiYW5uZWQgY2hva2Vob2xkcywgYW5kIHJlc3RyaWN0ZWQgbm8ta25vY2sgd2FycmFudHMgZm9yIGl0cyBvZmZpY2Vycy4gCgpUaGF04oCZcyB3aHkgdGhlIEFtZXJpY2FuIFJlc2N1ZSBQbGFuIHByb3ZpZGVkICQzNTAgQmlsbGlvbiB0aGF0IGNpdGllcywgc3RhdGVzLCBhbmQgY291bnRpZXMgY2FuIHVzZSB0byBoaXJlIG1vcmUgcG9saWNlIGFuZCBpbnZlc3QgaW4gcHJvdmVuIHN0cmF0ZWdpZXMgbGlrZSBjb21tdW5pdHkgdmlvbGVuY2UgaW50ZXJydXB0aW9u4oCUdHJ1c3RlZCBtZXNzZW5nZXJzIGJyZWFraW5nIHRoZSBjeWNsZSBvZiB2aW9sZW5jZSBhbmQgdHJhdW1hIGFuZCBnaXZpbmcgeW91bmcgcGVvcGxlIGhvcGUuICAKCldlIHNob3VsZCBhbGwgYWdyZWU6IFRoZSBhbnN3ZXIgaXMgbm90IHRvIERlZnVuZCB0aGUgcG9saWNlLiBUaGUgYW5zd2VyIGlzIHRvIEZVTkQgdGhlIHBvbGljZSB3aXRoIHRoZSByZXNvdXJjZXMgYW5kIHRyYWluaW5nIHRoZXkgbmVlZCB0byBwcm90ZWN0IG91ciBjb21tdW5pdGllcy4gCgpJIGFzayBEZW1vY3JhdHMgYW5kIFJlcHVibGljYW5zIGFsaWtlOiBQYXNzIG15IGJ1ZGdldCBhbmQga2VlcCBvdXIgbmVpZ2hib3Job29kcyBzYWZlLiAgCgpBbmQgSSB3aWxsIGtlZXAgZG9pbmcgZXZlcnl0aGluZyBpbiBteSBwb3dlciB0byBjcmFjayBkb3duIG9uIGd1biB0cmFmZmlja2luZyBhbmQgZ2hvc3QgZ3VucyB5b3UgY2FuIGJ1eSBvbmxpbmUgYW5kIG1ha2UgYXQgaG9tZeKAlHRoZXkgaGF2ZSBubyBzZXJpYWwgbnVtYmVycyBhbmQgY2Fu4oCZdCBiZSB0cmFjZWQuIAoKQW5kIEkgYXNrIENvbmdyZXNzIHRvIHBhc3MgcHJvdmVuIG1lYXN1cmVzIHRvIHJlZHVjZSBndW4gdmlvbGVuY2UuIFBhc3MgdW5pdmVyc2FsIGJhY2tncm91bmQgY2hlY2tzLiBXaHkgc2hvdWxkIGFueW9uZSBvbiBhIHRlcnJvcmlzdCBsaXN0IGJlIGFibGUgdG8gcHVyY2hhc2UgYSB3ZWFwb24/IAoKQmFuIGFzc2F1bHQgd2VhcG9ucyBhbmQgaGlnaC1jYXBhY2l0eSBtYWdhemluZXMuIAoKUmVwZWFsIHRoZSBsaWFiaWxpdHkgc2hpZWxkIHRoYXQgbWFrZXMgZ3VuIG1hbnVmYWN0dXJlcnMgdGhlIG9ubHkgaW5kdXN0cnkgaW4gQW1lcmljYSB0aGF0IGNhbuKAmXQgYmUgc3VlZC4gCgpUaGVzZSBsYXdzIGRvbuKAmXQgaW5mcmluZ2Ugb24gdGhlIFNlY29uZCBBbWVuZG1lbnQuIFRoZXkgc2F2ZSBsaXZlcy4gCgpUaGUgbW9zdCBmdW5kYW1lbnRhbCByaWdodCBpbiBBbWVyaWNhIGlzIHRoZSByaWdodCB0byB2b3RlIOKAkyBhbmQgdG8gaGF2ZSBpdCBjb3VudGVkLiBBbmQgaXTigJlzIHVuZGVyIGFzc2F1bHQuIAoKSW4gc3RhdGUgYWZ0ZXIgc3RhdGUsIG5ldyBsYXdzIGhhdmUgYmVlbiBwYXNzZWQsIG5vdCBvbmx5IHRvIHN1cHByZXNzIHRoZSB2b3RlLCBidXQgdG8gc3VidmVydCBlbnRpcmUgZWxlY3Rpb25zLiAKCldlIGNhbm5vdCBsZXQgdGhpcyBoYXBwZW4uIAoKVG9uaWdodC4gSSBjYWxsIG9uIHRoZSBTZW5hdGUgdG86IFBhc3MgdGhlIEZyZWVkb20gdG8gVm90ZSBBY3QuIFBhc3MgdGhlIEpvaG4gTGV3aXMgVm90aW5nIFJpZ2h0cyBBY3QuIEFuZCB3aGlsZSB5b3XigJlyZSBhdCBpdCwgcGFzcyB0aGUgRGlzY2xvc2UgQWN0IHNvIEFtZXJpY2FucyBjYW4ga25vdyB3aG8gaXMgZnVuZGluZyBvdXIgZWxlY3Rpb25zLiAKClRvbmlnaHQsIEnigJlkIGxpa2UgdG8gaG9ub3Igc29tZW9uZSB3aG8gaGFzIGRlZGljYXRlZCBoaXMgbGlmZSB0byBzZXJ2ZSB0aGlzIGNvdW50cnk6IEp1c3RpY2UgU3RlcGhlbiBCcmV5ZXLigJRhbiBBcm15IHZldGVyYW4sIENvbnN0aXR1dGlvbmFsIHNjaG9sYXIsIGFuZCByZXRpcmluZyBKdXN0aWNlIG9mIHRoZSBVbml0ZWQgU3RhdGVzIFN1cHJlbWUgQ291cnQuIEp1c3RpY2UgQnJleWVyLCB0aGFuayB5b3UgZm9yIHlvdXIgc2VydmljZS4gCgpPbmUgb2YgdGhlIG1vc3Qgc2VyaW91cyBjb25zdGl0dXRpb25hbCByZXNwb25zaWJpbGl0aWVzIGEgUHJlc2lkZW50IGhhcyBpcyBub21pbmF0aW5nIHNvbWVvbmUgdG8gc2VydmUgb24gdGhlIFVuaXRlZCBTdGF0ZXMgU3VwcmVtZSBDb3VydC4gCgpBbmQgSSBkaWQgdGhhdCA0IGRheXMgYWdvLCB3aGVuIEkgbm9taW5hdGVkIENpcmN1aXQgQ291cnQgb2YgQXBwZWFscyBKdWRnZSBLZXRhbmppIEJyb3duIEphY2tzb24uIE9uZSBvZiBvdXIgbmF0aW9u4oCZcyB0b3AgbGVnYWwgbWluZHMsIHdobyB3aWxsIGNvbnRpbnVlIEp1c3RpY2UgQnJleWVy4oCZcyBsZWdhY3kgb2YgZXhjZWxsZW5jZS4gCgpBIGZvcm1lciB0b3AgbGl0aWdhdG9yIGluIHByaXZhdGUgcHJhY3RpY2UuIEEgZm9ybWVyIGZlZGVyYWwgcHVibGljIGRlZmVuZGVyLiBBbmQgZnJvbSBhIGZhbWlseSBvZiBwdWJsaWMgc2Nob29sIGVkdWNhdG9ycyBhbmQgcG9saWNlIG9mZmljZXJzLiBBIGNvbnNlbnN1cyBidWlsZGVyLiBTaW5jZSBzaGXigJlzIGJlZW4gbm9taW5hdGVkLCBzaGXigJlzIHJlY2VpdmVkIGEgYnJvYWQgcmFuZ2Ugb2Ygc3VwcG9ydOKAlGZyb20gdGhlIEZyYXRlcm5hbCBPcmRlciBvZiBQb2xpY2UgdG8gZm9ybWVyIGp1ZGdlcyBhcHBvaW50ZWQgYnkgRGVtb2NyYXRzIGFuZCBSZXB1YmxpY2Fucy4gCgpBbmQgaWYgd2UgYXJlIHRvIGFkdmFuY2UgbGliZXJ0eSBhbmQganVzdGljZSwgd2UgbmVlZCB0byBzZWN1cmUgdGhlIEJvcmRlciBhbmQgZml4IHRoZSBpbW1pZ3JhdGlvbiBzeXN0ZW0uIAoKV2UgY2FuIGRvIGJvdGguIEF0IG91ciBib3JkZXIsIHdl4oCZdmUgaW5zdGFsbGVkIG5ldyB0ZWNobm9sb2d5IGxpa2UgY3V0dGluZy1lZGdlIHNjYW5uZXJzIHRvIGJldHRlciBkZXRlY3QgZHJ1ZyBzbXVnZ2xpbmcuICAKCldl4oCZdmUgc2V0IHVwIGpvaW50IHBhdHJvbHMgd2l0aCBNZXhpY28gYW5kIEd1YXRlbWFsYSB0byBjYXRjaCBtb3JlIGh1bWFuIHRyYWZmaWNrZXJzLiAgCgpXZeKAmXJlIHB1dHRpbmcgaW4gcGxhY2UgZGVkaWNhdGVkIGltbWlncmF0aW9uIGp1ZGdlcyBzbyBmYW1pbGllcyBmbGVlaW5nIHBlcnNlY3V0aW9uIGFuZCB2aW9sZW5jZSBjYW4gaGF2ZSB0aGVpciBjYXNlcyBoZWFyZCBmYXN0ZXIuIAoKV2XigJlyZSBzZWN1cmluZyBjb21taXRtZW50cyBhbmQgc3VwcG9ydGluZyBwYXJ0bmVycyBpbiBTb3V0aCBhbmQgQ2VudHJhbCBBbWVyaWNhIHRvIGhvc3QgbW9yZSByZWZ1Z2VlcyBhbmQgc2VjdXJlIHRoZWlyIG93biBib3JkZXJzLiAKCldlIGNhbiBkbyBhbGwgdGhpcyB3aGlsZSBrZWVwaW5nIGxpdCB0aGUgdG9yY2ggb2YgbGliZXJ0eSB0aGF0IGhhcyBsZWQgZ2VuZXJhdGlvbnMgb2YgaW1taWdyYW50cyB0byB0aGlzIGxhbmTigJRteSBmb3JlZmF0aGVycyBhbmQgc28gbWFueSBvZiB5b3Vycy4gCgpQcm92aWRlIGEgcGF0aHdheSB0byBjaXRpemVuc2hpcCBmb3IgRHJlYW1lcnMsIHRob3NlIG9uIHRlbXBvcmFyeSBzdGF0dXMsIGZhcm0gd29ya2VycywgYW5kIGVzc2VudGlhbCB3b3JrZXJzLiAKClJldmlzZSBvdXIgbGF3cyBzbyBidXNpbmVzc2VzIGhhdmUgdGhlIHdvcmtlcnMgdGhleSBuZWVkIGFuZCBmYW1pbGllcyBkb27igJl0IHdhaXQgZGVjYWRlcyB0byByZXVuaXRlLiAKCkl04oCZcyBub3Qgb25seSB0aGUgcmlnaHQgdGhpbmcgdG8gZG/igJRpdOKAmXMgdGhlIGVjb25vbWljYWxseSBzbWFydCB0aGluZyB0byBkby4gCgpUaGF04oCZcyB3aHkgaW1taWdyYXRpb24gcmVmb3JtIGlzIHN1cHBvcnRlZCBieSBldmVyeW9uZSBmcm9tIGxhYm9yIHVuaW9ucyB0byByZWxpZ2lvdXMgbGVhZGVycyB0byB0aGUgVS5TLiBDaGFtYmVyIG9mIENvbW1lcmNlLiAKCkxldOKAmXMgZ2V0IGl0IGRvbmUgb25jZSBhbmQgZm9yIGFsbC4gCgpBZHZhbmNpbmcgbGliZXJ0eSBhbmQganVzdGljZSBhbHNvIHJlcXVpcmVzIHByb3RlY3RpbmcgdGhlIHJpZ2h0cyBvZiB3b21lbi4gCgpUaGUgY29uc3RpdHV0aW9uYWwgcmlnaHQgYWZmaXJtZWQgaW4gUm9lIHYuIFdhZGXigJRzdGFuZGluZyBwcmVjZWRlbnQgZm9yIGhhbGYgYSBjZW50dXJ54oCUaXMgdW5kZXIgYXR0YWNrIGFzIG5ldmVyIGJlZm9yZS4gCgpJZiB3ZSB3YW50IHRvIGdvIGZvcndhcmTigJRub3QgYmFja3dhcmTigJR3ZSBtdXN0IHByb3RlY3QgYWNjZXNzIHRvIGhlYWx0aCBjYXJlLiBQcmVzZXJ2ZSBhIHdvbWFu4oCZcyByaWdodCB0byBjaG9vc2UuIEFuZCBsZXTigJlzIGNvbnRpbnVlIHRvIGFkdmFuY2UgbWF0ZXJuYWwgaGVhbHRoIGNhcmUgaW4gQW1lcmljYS4gCgpBbmQgZm9yIG91ciBMR0JUUSsgQW1lcmljYW5zLCBsZXTigJlzIGZpbmFsbHkgZ2V0IHRoZSBiaXBhcnRpc2FuIEVxdWFsaXR5IEFjdCB0byBteSBkZXNrLiBUaGUgb25zbGF1Z2h0IG9mIHN0YXRlIGxhd3MgdGFyZ2V0aW5nIHRyYW5zZ2VuZGVyIEFtZXJpY2FucyBhbmQgdGhlaXIgZmFtaWxpZXMgaXMgd3JvbmcuIAoKQXMgSSBzYWlkIGxhc3QgeWVhciwgZXNwZWNpYWxseSB0byBvdXIgeW91bmdlciB0cmFuc2dlbmRlciBBbWVyaWNhbnMsIEkgd2lsbCBhbHdheXMgaGF2ZSB5b3VyIGJhY2sgYXMgeW91ciBQcmVzaWRlbnQsIHNvIHlvdSBjYW4gYmUgeW91cnNlbGYgYW5kIHJlYWNoIHlvdXIgR29kLWdpdmVuIHBvdGVudGlhbC4gCgpXaGlsZSBpdCBvZnRlbiBhcHBlYXJzIHRoYXQgd2UgbmV2ZXIgYWdyZWUsIHRoYXQgaXNu4oCZdCB0cnVlLiBJIHNpZ25lZCA4MCBiaXBhcnRpc2FuIGJpbGxzIGludG8gbGF3IGxhc3QgeWVhci4gRnJvbSBwcmV2ZW50aW5nIGdvdmVybm1lbnQgc2h1dGRvd25zIHRvIHByb3RlY3RpbmcgQXNpYW4tQW1lcmljYW5zIGZyb20gc3RpbGwtdG9vLWNvbW1vbiBoYXRlIGNyaW1lcyB0byByZWZvcm1pbmcgbWlsaXRhcnkganVzdGljZS4gCgpBbmQgc29vbiwgd2XigJlsbCBzdHJlbmd0aGVuIHRoZSBWaW9sZW5jZSBBZ2FpbnN0IFdvbWVuIEFjdCB0aGF0IEkgZmlyc3Qgd3JvdGUgdGhyZWUgZGVjYWRlcyBhZ28uIEl0IGlzIGltcG9ydGFudCBmb3IgdXMgdG8gc2hvdyB0aGUgbmF0aW9uIHRoYXQgd2UgY2FuIGNvbWUgdG9nZXRoZXIgYW5kIGRvIGJpZyB0aGluZ3MuIAoKU28gdG9uaWdodCBJ4oCZbSBvZmZlcmluZyBhIFVuaXR5IEFnZW5kYSBmb3IgdGhlIE5hdGlvbi4gRm91ciBiaWcgdGhpbmdzIHdlIGNhbiBkbyB0b2dldGhlci4gIAoKRmlyc3QsIGJlYXQgdGhlIG9waW9pZCBlcGlkZW1pYy4gCgpUaGVyZSBpcyBzbyBtdWNoIHdlIGNhbiBkby4gSW5jcmVhc2UgZnVuZGluZyBmb3IgcHJldmVudGlvbiwgdHJlYXRtZW50LCBoYXJtIHJlZHVjdGlvbiwgYW5kIHJlY292ZXJ5LiAgCgpHZXQgcmlkIG9mIG91dGRhdGVkIHJ1bGVzIHRoYXQgc3RvcCBkb2N0b3JzIGZyb20gcHJlc2NyaWJpbmcgdHJlYXRtZW50cy4gQW5kIHN0b3AgdGhlIGZsb3cgb2YgaWxsaWNpdCBkcnVncyBieSB3b3JraW5nIHdpdGggc3RhdGUgYW5kIGxvY2FsIGxhdyBlbmZvcmNlbWVudCB0byBnbyBhZnRlciB0cmFmZmlja2Vycy4gCgpJZiB5b3XigJlyZSBzdWZmZXJpbmcgZnJvbSBhZGRpY3Rpb24sIGtub3cgeW91IGFyZSBub3QgYWxvbmUuIEkgYmVsaWV2ZSBpbiByZWNvdmVyeSwgYW5kIEkgY2VsZWJyYXRlIHRoZSAyMyBtaWxsaW9uIEFtZXJpY2FucyBpbiByZWNvdmVyeS4gCgpTZWNvbmQsIGxldOKAmXMgdGFrZSBvbiBtZW50YWwgaGVhbHRoLiBFc3BlY2lhbGx5IGFtb25nIG91ciBjaGlsZHJlbiwgd2hvc2UgbGl2ZXMgYW5kIGVkdWNhdGlvbiBoYXZlIGJlZW4gdHVybmVkIHVwc2lkZSBkb3duLiAgCgpUaGUgQW1lcmljYW4gUmVzY3VlIFBsYW4gZ2F2ZSBzY2hvb2xzIG1vbmV5IHRvIGhpcmUgdGVhY2hlcnMgYW5kIGhlbHAgc3R1ZGVudHMgbWFrZSB1cCBmb3IgbG9zdCBsZWFybmluZy4gIAoKSSB1cmdlIGV2ZXJ5IHBhcmVudCB0byBtYWtlIHN1cmUgeW91ciBzY2hvb2wgZG9lcyBqdXN0IHRoYXQuIEFuZCB3ZSBjYW4gYWxsIHBsYXkgYSBwYXJ04oCUc2lnbiB1cCB0byBiZSBhIHR1dG9yIG9yIGEgbWVudG9yLiAKCkNoaWxkcmVuIHdlcmUgYWxzbyBzdHJ1Z2dsaW5nIGJlZm9yZSB0aGUgcGFuZGVtaWMuIEJ1bGx5aW5nLCB2aW9sZW5jZSwgdHJhdW1hLCBhbmQgdGhlIGhhcm1zIG9mIHNvY2lhbCBtZWRpYS4gCgpBcyBGcmFuY2VzIEhhdWdlbiwgd2hvIGlzIGhlcmUgd2l0aCB1cyB0b25pZ2h0LCBoYXMgc2hvd24sIHdlIG11c3QgaG9sZCBzb2NpYWwgbWVkaWEgcGxhdGZvcm1zIGFjY291bnRhYmxlIGZvciB0aGUgbmF0aW9uYWwgZXhwZXJpbWVudCB0aGV54oCZcmUgY29uZHVjdGluZyBvbiBvdXIgY2hpbGRyZW4gZm9yIHByb2ZpdC4gCgpJdOKAmXMgdGltZSB0byBzdHJlbmd0aGVuIHByaXZhY3kgcHJvdGVjdGlvbnMsIGJhbiB0YXJnZXRlZCBhZHZlcnRpc2luZyB0byBjaGlsZHJlbiwgZGVtYW5kIHRlY2ggY29tcGFuaWVzIHN0b3AgY29sbGVjdGluZyBwZXJzb25hbCBkYXRhIG9uIG91ciBjaGlsZHJlbi4gCgpBbmQgbGV04oCZcyBnZXQgYWxsIEFtZXJpY2FucyB0aGUgbWVudGFsIGhlYWx0aCBzZXJ2aWNlcyB0aGV5IG5lZWQuIE1vcmUgcGVvcGxlIHRoZXkgY2FuIHR1cm4gdG8gZm9yIGhlbHAsIGFuZCBmdWxsIHBhcml0eSBiZXR3ZWVuIHBoeXNpY2FsIGFuZCBtZW50YWwgaGVhbHRoIGNhcmUuIAoKVGhpcmQsIHN1cHBvcnQgb3VyIHZldGVyYW5zLiAKClZldGVyYW5zIGFyZSB0aGUgYmVzdCBvZiB1cy4gCgpJ4oCZdmUgYWx3YXlzIGJlbGlldmVkIHRoYXQgd2UgaGF2ZSBhIHNhY3JlZCBvYmxpZ2F0aW9uIHRvIGVxdWlwIGFsbCB0aG9zZSB3ZSBzZW5kIHRvIHdhciBhbmQgY2FyZSBmb3IgdGhlbSBhbmQgdGhlaXIgZmFtaWxpZXMgd2hlbiB0aGV5IGNvbWUgaG9tZS4gCgpNeSBhZG1pbmlzdHJhdGlvbiBpcyBwcm92aWRpbmcgYXNzaXN0YW5jZSB3aXRoIGpvYiB0cmFpbmluZyBhbmQgaG91c2luZywgYW5kIG5vdyBoZWxwaW5nIGxvd2VyLWluY29tZSB2ZXRlcmFucyBnZXQgVkEgY2FyZSBkZWJ0LWZyZWUuICAKCk91ciB0cm9vcHMgaW4gSXJhcSBhbmQgQWZnaGFuaXN0YW4gZmFjZWQgbWFueSBkYW5nZXJzLiAKCk9uZSB3YXMgc3RhdGlvbmVkIGF0IGJhc2VzIGFuZCBicmVhdGhpbmcgaW4gdG94aWMgc21va2UgZnJvbSDigJxidXJuIHBpdHPigJ0gdGhhdCBpbmNpbmVyYXRlZCB3YXN0ZXMgb2Ygd2Fy4oCUbWVkaWNhbCBhbmQgaGF6YXJkIG1hdGVyaWFsLCBqZXQgZnVlbCwgYW5kIG1vcmUuIAoKV2hlbiB0aGV5IGNhbWUgaG9tZSwgbWFueSBvZiB0aGUgd29ybGTigJlzIGZpdHRlc3QgYW5kIGJlc3QgdHJhaW5lZCB3YXJyaW9ycyB3ZXJlIG5ldmVyIHRoZSBzYW1lLiAKCkhlYWRhY2hlcy4gTnVtYm5lc3MuIERpenppbmVzcy4gCgpBIGNhbmNlciB0aGF0IHdvdWxkIHB1dCB0aGVtIGluIGEgZmxhZy1kcmFwZWQgY29mZmluLiAKCkkga25vdy4gCgpPbmUgb2YgdGhvc2Ugc29sZGllcnMgd2FzIG15IHNvbiBNYWpvciBCZWF1IEJpZGVuLiAKCldlIGRvbuKAmXQga25vdyBmb3Igc3VyZSBpZiBhIGJ1cm4gcGl0IHdhcyB0aGUgY2F1c2Ugb2YgaGlzIGJyYWluIGNhbmNlciwgb3IgdGhlIGRpc2Vhc2VzIG9mIHNvIG1hbnkgb2Ygb3VyIHRyb29wcy4gCgpCdXQgSeKAmW0gY29tbWl0dGVkIHRvIGZpbmRpbmcgb3V0IGV2ZXJ5dGhpbmcgd2UgY2FuLiAKCkNvbW1pdHRlZCB0byBtaWxpdGFyeSBmYW1pbGllcyBsaWtlIERhbmllbGxlIFJvYmluc29uIGZyb20gT2hpby4gCgpUaGUgd2lkb3cgb2YgU2VyZ2VhbnQgRmlyc3QgQ2xhc3MgSGVhdGggUm9iaW5zb24uICAKCkhlIHdhcyBib3JuIGEgc29sZGllci4gQXJteSBOYXRpb25hbCBHdWFyZC4gQ29tYmF0IG1lZGljIGluIEtvc292byBhbmQgSXJhcS4gCgpTdGF0aW9uZWQgbmVhciBCYWdoZGFkLCBqdXN0IHlhcmRzIGZyb20gYnVybiBwaXRzIHRoZSBzaXplIG9mIGZvb3RiYWxsIGZpZWxkcy4gCgpIZWF0aOKAmXMgd2lkb3cgRGFuaWVsbGUgaXMgaGVyZSB3aXRoIHVzIHRvbmlnaHQuIFRoZXkgbG92ZWQgZ29pbmcgdG8gT2hpbyBTdGF0ZSBmb290YmFsbCBnYW1lcy4gSGUgbG92ZWQgYnVpbGRpbmcgTGVnb3Mgd2l0aCB0aGVpciBkYXVnaHRlci4gCgpCdXQgY2FuY2VyIGZyb20gcHJvbG9uZ2VkIGV4cG9zdXJlIHRvIGJ1cm4gcGl0cyByYXZhZ2VkIEhlYXRo4oCZcyBsdW5ncyBhbmQgYm9keS4gCgpEYW5pZWxsZSBzYXlzIEhlYXRoIHdhcyBhIGZpZ2h0ZXIgdG8gdGhlIHZlcnkgZW5kLiAKCkhlIGRpZG7igJl0IGtub3cgaG93IHRvIHN0b3AgZmlnaHRpbmcsIGFuZCBuZWl0aGVyIGRpZCBzaGUuIAoKVGhyb3VnaCBoZXIgcGFpbiBzaGUgZm91bmQgcHVycG9zZSB0byBkZW1hbmQgd2UgZG8gYmV0dGVyLiAKClRvbmlnaHQsIERhbmllbGxl4oCUd2UgYXJlLiAKClRoZSBWQSBpcyBwaW9uZWVyaW5nIG5ldyB3YXlzIG9mIGxpbmtpbmcgdG94aWMgZXhwb3N1cmVzIHRvIGRpc2Vhc2VzLCBhbHJlYWR5IGhlbHBpbmcgbW9yZSB2ZXRlcmFucyBnZXQgYmVuZWZpdHMuIAoKQW5kIHRvbmlnaHQsIEnigJltIGFubm91bmNpbmcgd2XigJlyZSBleHBhbmRpbmcgZWxpZ2liaWxpdHkgdG8gdmV0ZXJhbnMgc3VmZmVyaW5nIGZyb20gbmluZSByZXNwaXJhdG9yeSBjYW5jZXJzLiAKCknigJltIGFsc28gY2FsbGluZyBvbiBDb25ncmVzczogcGFzcyBhIGxhdyB0byBtYWtlIHN1cmUgdmV0ZXJhbnMgZGV2YXN0YXRlZCBieSB0b3hpYyBleHBvc3VyZXMgaW4gSXJhcSBhbmQgQWZnaGFuaXN0YW4gZmluYWxseSBnZXQgdGhlIGJlbmVmaXRzIGFuZCBjb21wcmVoZW5zaXZlIGhlYWx0aCBjYXJlIHRoZXkgZGVzZXJ2ZS4gCgpBbmQgZm91cnRoLCBsZXTigJlzIGVuZCBjYW5jZXIgYXMgd2Uga25vdyBpdC4gCgpUaGlzIGlzIHBlcnNvbmFsIHRvIG1lIGFuZCBKaWxsLCB0byBLYW1hbGEsIGFuZCB0byBzbyBtYW55IG9mIHlvdS4gCgpDYW5jZXIgaXMgdGhlICMyIGNhdXNlIG9mIGRlYXRoIGluIEFtZXJpY2HigJNzZWNvbmQgb25seSB0byBoZWFydCBkaXNlYXNlLiAKCkxhc3QgbW9udGgsIEkgYW5ub3VuY2VkIG91ciBwbGFuIHRvIHN1cGVyY2hhcmdlICAKdGhlIENhbmNlciBNb29uc2hvdCB0aGF0IFByZXNpZGVudCBPYmFtYSBhc2tlZCBtZSB0byBsZWFkIHNpeCB5ZWFycyBhZ28uIAoKT3VyIGdvYWwgaXMgdG8gY3V0IHRoZSBjYW5jZXIgZGVhdGggcmF0ZSBieSBhdCBsZWFzdCA1MCUgb3ZlciB0aGUgbmV4dCAyNSB5ZWFycywgdHVybiBtb3JlIGNhbmNlcnMgZnJvbSBkZWF0aCBzZW50ZW5jZXMgaW50byB0cmVhdGFibGUgZGlzZWFzZXMuICAKCk1vcmUgc3VwcG9ydCBmb3IgcGF0aWVudHMgYW5kIGZhbWlsaWVzLiAKClRvIGdldCB0aGVyZSwgSSBjYWxsIG9uIENvbmdyZXNzIHRvIGZ1bmQgQVJQQS1ILCB0aGUgQWR2YW5jZWQgUmVzZWFyY2ggUHJvamVjdHMgQWdlbmN5IGZvciBIZWFsdGguIAoKSXTigJlzIGJhc2VkIG9uIERBUlBB4oCUdGhlIERlZmVuc2UgRGVwYXJ0bWVudCBwcm9qZWN0IHRoYXQgbGVkIHRvIHRoZSBJbnRlcm5ldCwgR1BTLCBhbmQgc28gbXVjaCBtb3JlLiAgCgpBUlBBLUggd2lsbCBoYXZlIGEgc2luZ3VsYXIgcHVycG9zZeKAlHRvIGRyaXZlIGJyZWFrdGhyb3VnaHMgaW4gY2FuY2VyLCBBbHpoZWltZXLigJlzLCBkaWFiZXRlcywgYW5kIG1vcmUuIAoKQSB1bml0eSBhZ2VuZGEgZm9yIHRoZSBuYXRpb24uIAoKV2UgY2FuIGRvIHRoaXMuIAoKTXkgZmVsbG93IEFtZXJpY2Fuc+KAlHRvbmlnaHQgLCB3ZSBoYXZlIGdhdGhlcmVkIGluIGEgc2FjcmVkIHNwYWNl4oCUdGhlIGNpdGFkZWwgb2Ygb3VyIGRlbW9jcmFjeS4gCgpJbiB0aGlzIENhcGl0b2wsIGdlbmVyYXRpb24gYWZ0ZXIgZ2VuZXJhdGlvbiwgQW1lcmljYW5zIGhhdmUgZGViYXRlZCBncmVhdCBxdWVzdGlvbnMgYW1pZCBncmVhdCBzdHJpZmUsIGFuZCBoYXZlIGRvbmUgZ3JlYXQgdGhpbmdzLiAKCldlIGhhdmUgZm91Z2h0IGZvciBmcmVlZG9tLCBleHBhbmRlZCBsaWJlcnR5LCBkZWZlYXRlZCB0b3RhbGl0YXJpYW5pc20gYW5kIHRlcnJvci4gCgpBbmQgYnVpbHQgdGhlIHN0cm9uZ2VzdCwgZnJlZXN0LCBhbmQgbW9zdCBwcm9zcGVyb3VzIG5hdGlvbiB0aGUgd29ybGQgaGFzIGV2ZXIga25vd24uIAoKTm93IGlzIHRoZSBob3VyLiAKCk91ciBtb21lbnQgb2YgcmVzcG9uc2liaWxpdHkuIAoKT3VyIHRlc3Qgb2YgcmVzb2x2ZSBhbmQgY29uc2NpZW5jZSwgb2YgaGlzdG9yeSBpdHNlbGYuIAoKSXQgaXMgaW4gdGhpcyBtb21lbnQgdGhhdCBvdXIgY2hhcmFjdGVyIGlzIGZvcm1lZC4gT3VyIHB1cnBvc2UgaXMgZm91bmQuIE91ciBmdXR1cmUgaXMgZm9yZ2VkLiAKCldlbGwgSSBrbm93IHRoaXMgbmF0aW9uLiAgCgpXZSB3aWxsIG1lZXQgdGhlIHRlc3QuIAoKVG8gcHJvdGVjdCBmcmVlZG9tIGFuZCBsaWJlcnR5LCB0byBleHBhbmQgZmFpcm5lc3MgYW5kIG9wcG9ydHVuaXR5LiAKCldlIHdpbGwgc2F2ZSBkZW1vY3JhY3kuIAoKQXMgaGFyZCBhcyB0aGVzZSB0aW1lcyBoYXZlIGJlZW4sIEkgYW0gbW9yZSBvcHRpbWlzdGljIGFib3V0IEFtZXJpY2EgdG9kYXkgdGhhbiBJIGhhdmUgYmVlbiBteSB3aG9sZSBsaWZlLiAKCkJlY2F1c2UgSSBzZWUgdGhlIGZ1dHVyZSB0aGF0IGlzIHdpdGhpbiBvdXIgZ3Jhc3AuIAoKQmVjYXVzZSBJIGtub3cgdGhlcmUgaXMgc2ltcGx5IG5vdGhpbmcgYmV5b25kIG91ciBjYXBhY2l0eS4gCgpXZSBhcmUgdGhlIG9ubHkgbmF0aW9uIG9uIEVhcnRoIHRoYXQgaGFzIGFsd2F5cyB0dXJuZWQgZXZlcnkgY3Jpc2lzIHdlIGhhdmUgZmFjZWQgaW50byBhbiBvcHBvcnR1bml0eS4gCgpUaGUgb25seSBuYXRpb24gdGhhdCBjYW4gYmUgZGVmaW5lZCBieSBhIHNpbmdsZSB3b3JkOiBwb3NzaWJpbGl0aWVzLiAKClNvIG9uIHRoaXMgbmlnaHQsIGluIG91ciAyNDV0aCB5ZWFyIGFzIGEgbmF0aW9uLCBJIGhhdmUgY29tZSB0byByZXBvcnQgb24gdGhlIFN0YXRlIG9mIHRoZSBVbmlvbi4gCgpBbmQgbXkgcmVwb3J0IGlzIHRoaXM6IHRoZSBTdGF0ZSBvZiB0aGUgVW5pb24gaXMgc3Ryb25n4oCUYmVjYXVzZSB5b3UsIHRoZSBBbWVyaWNhbiBwZW9wbGUsIGFyZSBzdHJvbmcuIAoKV2UgYXJlIHN0cm9uZ2VyIHRvZGF5IHRoYW4gd2Ugd2VyZSBhIHllYXIgYWdvLiAKCkFuZCB3ZSB3aWxsIGJlIHN0cm9uZ2VyIGEgeWVhciBmcm9tIG5vdyB0aGFuIHdlIGFyZSB0b2RheS4gCgpOb3cgaXMgb3VyIG1vbWVudCB0byBtZWV0IGFuZCBvdmVyY29tZSB0aGUgY2hhbGxlbmdlcyBvZiBvdXIgdGltZS4gCgpBbmQgd2Ugd2lsbCwgYXMgb25lIHBlb3BsZS4gCgpPbmUgQW1lcmljYS4gCgpUaGUgVW5pdGVkIFN0YXRlcyBvZiBBbWVyaWNhLiAKCk1heSBHb2QgYmxlc3MgeW91IGFsbC4gTWF5IEdvZCBwcm90ZWN0IG91ciB0cm9vcHMu"},"_type":"TextLoader"},"description":"Load text files.","base_classes":["TextLoader","BaseLoader"]},"id":"dndnode_213","value":null},"selected":false,"positionAbsolute":{"x":160.88681321552258,"y":85.60450902748329},"dragging":false},{"width":384,"height":293,"id":"dndnode_214","type":"genericNode","position":{"x":179.10633869463402,"y":745.0870354962836},"data":{"type":"WebBaseLoader","node":{"template":{"web_path":{"required":true,"placeholder":"","show":true,"multiline":false,"value":"https://beta.ruff.rs/docs/faq/","password":false,"name":"web_path","advanced":false,"type":"str","list":false},"_type":"WebBaseLoader"},"description":"Loader that uses urllib and beautiful soup to load webpages.","base_classes":["WebBaseLoader","BaseLoader"]},"id":"dndnode_214","value":null},"selected":false,"positionAbsolute":{"x":179.10633869463402,"y":745.0870354962836},"dragging":false},{"width":384,"height":489,"id":"dndnode_215","type":"genericNode","position":{"x":764.7962774179402,"y":-41.66146949279698},"data":{"type":"CharacterTextSplitter","node":{"template":{"documents":{"required":true,"placeholder":"","show":true,"multiline":false,"password":false,"name":"documents","advanced":false,"type":"BaseLoader","list":false},"separator":{"required":true,"placeholder":"","show":true,"multiline":false,"value":".","password":false,"name":"separator","advanced":false,"type":"str","list":false},"chunk_size":{"required":true,"placeholder":"","show":true,"multiline":false,"value":"2000","password":false,"name":"chunk_size","advanced":false,"type":"int","list":false},"chunk_overlap":{"required":true,"placeholder":"","show":true,"multiline":false,"value":200,"password":false,"name":"chunk_overlap","advanced":false,"type":"int","list":false},"_type":"CharacterTextSplitter"},"description":"Implementation of splitting text that looks at characters.","base_classes":["CharacterTextSplitter","BaseDocumentTransformer","TextSplitter"]},"id":"dndnode_215","value":null},"selected":false,"positionAbsolute":{"x":764.7962774179402,"y":-41.66146949279698},"dragging":false},{"width":384,"height":489,"id":"dndnode_216","type":"genericNode","position":{"x":741.7004274223395,"y":1023.597430357632},"data":{"type":"CharacterTextSplitter","node":{"template":{"documents":{"required":true,"placeholder":"","show":true,"multiline":false,"password":false,"name":"documents","advanced":false,"type":"BaseLoader","list":false},"separator":{"required":true,"placeholder":"","show":true,"multiline":false,"value":".","password":false,"name":"separator","advanced":false,"type":"str","list":false},"chunk_size":{"required":true,"placeholder":"","show":true,"multiline":false,"value":"2000","password":false,"name":"chunk_size","advanced":false,"type":"int","list":false},"chunk_overlap":{"required":true,"placeholder":"","show":true,"multiline":false,"value":200,"password":false,"name":"chunk_overlap","advanced":false,"type":"int","list":false},"_type":"CharacterTextSplitter"},"description":"Implementation of splitting text that looks at characters.","base_classes":["CharacterTextSplitter","BaseDocumentTransformer","TextSplitter"]},"id":"dndnode_216","value":null},"selected":false,"positionAbsolute":{"x":741.7004274223395,"y":1023.597430357632},"dragging":false},{"width":384,"height":267,"id":"dndnode_217","type":"genericNode","position":{"x":1301.2422429392857,"y":152.6224992269589},"data":{"type":"Chroma","node":{"template":{"documents":{"required":true,"placeholder":"","show":true,"multiline":false,"password":false,"name":"documents","advanced":false,"type":"TextSplitter","list":false},"embedding":{"required":true,"placeholder":"","show":true,"multiline":false,"password":false,"name":"embedding","advanced":false,"type":"Embeddings","list":false},"_type":"Chroma"},"description":"Wrapper around ChromaDB embeddings platform.","base_classes":["Chroma","VectorStore"]},"id":"dndnode_217","value":null},"selected":true,"positionAbsolute":{"x":1301.2422429392857,"y":152.6224992269589},"dragging":false},{"width":384,"height":531,"id":"dndnode_218","type":"genericNode","position":{"x":749.7322367184304,"y":472.14072103514684},"data":{"type":"OpenAIEmbeddings","node":{"template":{"client":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"client","advanced":false,"type":"Any","list":false},"model":{"required":false,"placeholder":"","show":false,"multiline":false,"value":"text-embedding-ada-002","password":false,"name":"model","advanced":false,"type":"str","list":false},"deployment":{"required":false,"placeholder":"","show":false,"multiline":false,"value":"text-embedding-ada-002","password":false,"name":"deployment","advanced":false,"type":"str","list":false},"openai_api_version":{"required":false,"placeholder":"","show":true,"multiline":false,"value":"","password":true,"name":"openai_api_version","advanced":false,"type":"str","list":false},"openai_api_base":{"required":false,"placeholder":"","show":true,"multiline":false,"password":true,"name":"openai_api_base","advanced":false,"type":"str","list":false,"value":""},"openai_api_type":{"required":false,"placeholder":"","show":true,"multiline":false,"password":true,"name":"openai_api_type","advanced":false,"type":"str","list":false,"value":""},"embedding_ctx_length":{"required":false,"placeholder":"","show":false,"multiline":false,"value":8191,"password":false,"name":"embedding_ctx_length","advanced":false,"type":"int","list":false},"openai_api_key":{"required":false,"placeholder":"","show":true,"multiline":false,"value":"","password":true,"name":"openai_api_key","display_name":"OpenAI API Key","advanced":false,"type":"str","list":false},"openai_organization":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"openai_organization","advanced":false,"type":"str","list":false},"allowed_special":{"required":false,"placeholder":"","show":false,"multiline":false,"value":[],"password":false,"name":"allowed_special","advanced":false,"type":"Literal'all'","list":true},"disallowed_special":{"required":false,"placeholder":"","show":false,"multiline":false,"value":"all","password":false,"name":"disallowed_special","advanced":false,"type":"Literal'all'","list":true},"chunk_size":{"required":false,"placeholder":"","show":false,"multiline":false,"value":1000,"password":false,"name":"chunk_size","advanced":false,"type":"int","list":false},"max_retries":{"required":false,"placeholder":"","show":false,"multiline":false,"value":6,"password":false,"name":"max_retries","advanced":false,"type":"int","list":false},"_type":"OpenAIEmbeddings"},"description":"Wrapper around OpenAI embedding models.","base_classes":["OpenAIEmbeddings","Embeddings"]},"id":"dndnode_218","value":null},"selected":false,"positionAbsolute":{"x":749.7322367184304,"y":472.14072103514684},"dragging":false},{"width":384,"height":267,"id":"dndnode_219","type":"genericNode","position":{"x":1319.0884617250285,"y":830.8624396889157},"data":{"type":"Chroma","node":{"template":{"documents":{"required":true,"placeholder":"","show":true,"multiline":false,"password":false,"name":"documents","advanced":false,"type":"TextSplitter","list":false},"embedding":{"required":true,"placeholder":"","show":true,"multiline":false,"password":false,"name":"embedding","advanced":false,"type":"Embeddings","list":false},"_type":"Chroma"},"description":"Wrapper around ChromaDB embeddings platform.","base_classes":["Chroma","VectorStore"]},"id":"dndnode_219","value":null},"selected":false,"positionAbsolute":{"x":1319.0884617250285,"y":830.8624396889157},"dragging":false},{"width":384,"height":399,"id":"dndnode_220","type":"genericNode","position":{"x":1749.0884617250285,"y":164.46243968891588},"data":{"type":"VectorStoreInfo","node":{"template":{"vectorstore":{"required":true,"placeholder":"","show":true,"multiline":false,"password":false,"name":"vectorstore","advanced":false,"type":"VectorStore","list":false},"name":{"required":true,"placeholder":"","show":true,"multiline":false,"password":false,"name":"name","advanced":false,"type":"str","list":false,"value":"state_of_union_address"},"description":{"required":true,"placeholder":"","show":true,"multiline":true,"password":false,"name":"description","advanced":false,"type":"str","list":false,"value":"the most recent state of the Union address\n"},"_type":"VectorStoreInfo"},"description":"Information about a vectorstore.","base_classes":["VectorStoreInfo"]},"id":"dndnode_220","value":null},"selected":false,"positionAbsolute":{"x":1749.0884617250285,"y":164.46243968891588},"dragging":false},{"width":384,"height":399,"id":"dndnode_221","type":"genericNode","position":{"x":1781.0884617250285,"y":766.4624396889159},"data":{"type":"VectorStoreInfo","node":{"template":{"vectorstore":{"required":true,"placeholder":"","show":true,"multiline":false,"password":false,"name":"vectorstore","advanced":false,"type":"VectorStore","list":false},"name":{"required":true,"placeholder":"","show":true,"multiline":false,"password":false,"name":"name","advanced":false,"type":"str","list":false,"value":"ruff"},"description":{"required":true,"placeholder":"","show":true,"multiline":true,"password":false,"name":"description","advanced":false,"type":"str","list":false,"value":"Information about the Ruff python linting library\n"},"_type":"VectorStoreInfo"},"description":"Information about a vectorstore.","base_classes":["VectorStoreInfo"]},"id":"dndnode_221","value":null},"selected":false,"positionAbsolute":{"x":1781.0884617250285,"y":766.4624396889159},"dragging":false},{"width":384,"height":227,"id":"dndnode_222","type":"genericNode","position":{"x":2259.0884617250285,"y":382.4624396889159},"data":{"type":"VectorStoreRouterToolkit","node":{"template":{"vectorstores":{"required":true,"placeholder":"","show":true,"multiline":false,"password":false,"name":"vectorstores","advanced":false,"type":"VectorStoreInfo","list":true},"llm":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"llm","advanced":false,"type":"BaseLanguageModel","list":false},"_type":"VectorStoreRouterToolkit"},"description":"Toolkit for routing between vectorstores.","base_classes":["VectorStoreRouterToolkit","BaseToolkit"]},"id":"dndnode_222","value":null},"selected":false,"positionAbsolute":{"x":2259.0884617250285,"y":382.4624396889159},"dragging":false},{"width":384,"height":597,"id":"dndnode_223","type":"genericNode","position":{"x":2247.0884617250285,"y":686.462439688916},"data":{"type":"OpenAI","node":{"template":{"cache":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"cache","advanced":false,"type":"bool","list":false},"verbose":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"verbose","advanced":false,"type":"bool","list":false},"callbacks":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"callbacks","advanced":false,"type":"langchain.callbacks.base.BaseCallbackHandler","list":true},"client":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"client","advanced":false,"type":"Any","list":false},"model_name":{"required":false,"placeholder":"","show":true,"multiline":false,"value":"text-davinci-003","password":false,"options":["text-davinci-003","text-davinci-002","text-curie-001","text-babbage-001","text-ada-001"],"name":"model_name","advanced":false,"type":"str","list":true},"temperature":{"required":false,"placeholder":"","show":true,"multiline":false,"value":0.7,"password":false,"name":"temperature","advanced":false,"type":"float","list":false},"max_tokens":{"required":false,"placeholder":"","show":true,"multiline":false,"value":256,"password":true,"name":"max_tokens","advanced":false,"type":"int","list":false},"top_p":{"required":false,"placeholder":"","show":false,"multiline":false,"value":1,"password":false,"name":"top_p","advanced":false,"type":"float","list":false},"frequency_penalty":{"required":false,"placeholder":"","show":false,"multiline":false,"value":0,"password":false,"name":"frequency_penalty","advanced":false,"type":"float","list":false},"presence_penalty":{"required":false,"placeholder":"","show":false,"multiline":false,"value":0,"password":false,"name":"presence_penalty","advanced":false,"type":"float","list":false},"n":{"required":false,"placeholder":"","show":false,"multiline":false,"value":1,"password":false,"name":"n","advanced":false,"type":"int","list":false},"best_of":{"required":false,"placeholder":"","show":false,"multiline":false,"value":1,"password":false,"name":"best_of","advanced":false,"type":"int","list":false},"model_kwargs":{"required":false,"placeholder":"","show":true,"multiline":false,"password":false,"name":"model_kwargs","advanced":true,"type":"code","list":false},"openai_api_key":{"required":false,"placeholder":"","show":true,"multiline":false,"value":"","password":true,"name":"openai_api_key","display_name":"OpenAI API Key","advanced":false,"type":"str","list":false},"openai_api_base":{"required":false,"placeholder":"","show":true,"multiline":false,"password":true,"name":"openai_api_base","advanced":false,"type":"str","list":false,"value":""},"openai_organization":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"openai_organization","advanced":false,"type":"str","list":false},"batch_size":{"required":false,"placeholder":"","show":false,"multiline":false,"value":20,"password":false,"name":"batch_size","advanced":false,"type":"int","list":false},"request_timeout":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"request_timeout","advanced":false,"type":"float","list":false},"logit_bias":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"logit_bias","advanced":false,"type":"code","list":false},"max_retries":{"required":false,"placeholder":"","show":false,"multiline":false,"value":6,"password":false,"name":"max_retries","advanced":false,"type":"int","list":false},"streaming":{"required":false,"placeholder":"","show":false,"multiline":false,"value":false,"password":false,"name":"streaming","advanced":false,"type":"bool","list":false},"allowed_special":{"required":false,"placeholder":"","show":false,"multiline":false,"value":[],"password":false,"name":"allowed_special","advanced":false,"type":"Literal'all'","list":true},"disallowed_special":{"required":false,"placeholder":"","show":false,"multiline":false,"value":"all","password":false,"name":"disallowed_special","advanced":false,"type":"Literal'all'","list":false},"_type":"OpenAI"},"description":"Wrapper around OpenAI large language models.","base_classes":["BaseLLM","BaseOpenAI","OpenAI","BaseLanguageModel"]},"id":"dndnode_223","value":null},"selected":false,"positionAbsolute":{"x":2247.0884617250285,"y":686.462439688916},"dragging":false},{"width":384,"height":267,"id":"dndnode_224","type":"genericNode","position":{"x":2741.0884617250285,"y":416.4624396889159},"data":{"type":"VectorStoreRouterAgent","node":{"template":{"vectorstoreroutertoolkit":{"required":true,"placeholder":"","show":true,"multiline":false,"password":false,"name":"vectorstoreroutertoolkit","display_name":"Vector Store Router Toolkit","advanced":false,"type":"VectorStoreRouterToolkit","list":false},"llm":{"required":true,"placeholder":"","show":true,"multiline":false,"password":false,"name":"llm","display_name":"LLM","advanced":false,"type":"BaseLanguageModel","list":false},"_type":"vectorstorerouter_agent"},"description":"Construct an agent from a Vector Store Router.","base_classes":["AgentExecutor"]},"id":"dndnode_224","value":null},"selected":false,"positionAbsolute":{"x":2741.0884617250285,"y":416.4624396889159},"dragging":false}],"edges":[{"source":"dndnode_213","sourceHandle":"TextLoader|dndnode_213|TextLoader|BaseLoader","target":"dndnode_215","targetHandle":"BaseLoader|documents|dndnode_215","className":"animate-pulse","id":"reactflow__edge-dndnode_213TextLoader|dndnode_213|TextLoader|BaseLoader-dndnode_215BaseLoader|documents|dndnode_215","selected":false},{"source":"dndnode_214","sourceHandle":"WebBaseLoader|dndnode_214|WebBaseLoader|BaseLoader","target":"dndnode_216","targetHandle":"BaseLoader|documents|dndnode_216","className":"animate-pulse","id":"reactflow__edge-dndnode_214WebBaseLoader|dndnode_214|WebBaseLoader|BaseLoader-dndnode_216BaseLoader|documents|dndnode_216","selected":false},{"source":"dndnode_215","sourceHandle":"CharacterTextSplitter|dndnode_215|CharacterTextSplitter|BaseDocumentTransformer|TextSplitter","target":"dndnode_217","targetHandle":"TextSplitter|documents|dndnode_217","className":"animate-pulse","id":"reactflow__edge-dndnode_215CharacterTextSplitter|dndnode_215|CharacterTextSplitter|BaseDocumentTransformer|TextSplitter-dndnode_217TextSplitter|documents|dndnode_217","selected":false},{"source":"dndnode_218","sourceHandle":"OpenAIEmbeddings|dndnode_218|OpenAIEmbeddings|Embeddings","target":"dndnode_217","targetHandle":"Embeddings|embedding|dndnode_217","className":"animate-pulse","id":"reactflow__edge-dndnode_218OpenAIEmbeddings|dndnode_218|OpenAIEmbeddings|Embeddings-dndnode_217Embeddings|embedding|dndnode_217","selected":false},{"source":"dndnode_216","sourceHandle":"CharacterTextSplitter|dndnode_216|CharacterTextSplitter|BaseDocumentTransformer|TextSplitter","target":"dndnode_219","targetHandle":"TextSplitter|documents|dndnode_219","className":"animate-pulse","id":"reactflow__edge-dndnode_216CharacterTextSplitter|dndnode_216|CharacterTextSplitter|BaseDocumentTransformer|TextSplitter-dndnode_219TextSplitter|documents|dndnode_219","selected":false},{"source":"dndnode_218","sourceHandle":"OpenAIEmbeddings|dndnode_218|OpenAIEmbeddings|Embeddings","target":"dndnode_219","targetHandle":"Embeddings|embedding|dndnode_219","className":"animate-pulse","id":"reactflow__edge-dndnode_218OpenAIEmbeddings|dndnode_218|OpenAIEmbeddings|Embeddings-dndnode_219Embeddings|embedding|dndnode_219","selected":false},{"source":"dndnode_217","sourceHandle":"Chroma|dndnode_217|Chroma|VectorStore","target":"dndnode_220","targetHandle":"VectorStore|vectorstore|dndnode_220","className":"animate-pulse","id":"reactflow__edge-dndnode_217Chroma|dndnode_217|Chroma|VectorStore-dndnode_220VectorStore|vectorstore|dndnode_220","selected":false},{"source":"dndnode_219","sourceHandle":"Chroma|dndnode_219|Chroma|VectorStore","target":"dndnode_221","targetHandle":"VectorStore|vectorstore|dndnode_221","className":"animate-pulse","id":"reactflow__edge-dndnode_219Chroma|dndnode_219|Chroma|VectorStore-dndnode_221VectorStore|vectorstore|dndnode_221","selected":false},{"source":"dndnode_220","sourceHandle":"VectorStoreInfo|dndnode_220|VectorStoreInfo","target":"dndnode_222","targetHandle":"VectorStoreInfo|vectorstores|dndnode_222","className":"animate-pulse","id":"reactflow__edge-dndnode_220VectorStoreInfo|dndnode_220|VectorStoreInfo-dndnode_222VectorStoreInfo|vectorstores|dndnode_222","selected":false},{"source":"dndnode_221","sourceHandle":"VectorStoreInfo|dndnode_221|VectorStoreInfo","target":"dndnode_222","targetHandle":"VectorStoreInfo|vectorstores|dndnode_222","className":"animate-pulse","id":"reactflow__edge-dndnode_221VectorStoreInfo|dndnode_221|VectorStoreInfo-dndnode_222VectorStoreInfo|vectorstores|dndnode_222","selected":false},{"source":"dndnode_223","sourceHandle":"OpenAI|dndnode_223|BaseLLM|BaseOpenAI|OpenAI|BaseLanguageModel","target":"dndnode_224","targetHandle":"BaseLanguageModel|llm|dndnode_224","className":"animate-pulse","id":"reactflow__edge-dndnode_223OpenAI|dndnode_223|BaseLLM|BaseOpenAI|OpenAI|BaseLanguageModel-dndnode_224BaseLanguageModel|llm|dndnode_224","selected":false},{"source":"dndnode_222","sourceHandle":"VectorStoreRouterToolkit|dndnode_222|VectorStoreRouterToolkit|BaseToolkit","target":"dndnode_224","targetHandle":"VectorStoreRouterToolkit|vectorstoreroutertoolkit|dndnode_224","className":"animate-pulse","id":"reactflow__edge-dndnode_222VectorStoreRouterToolkit|dndnode_222|VectorStoreRouterToolkit|BaseToolkit-dndnode_224VectorStoreRouterToolkit|vectorstoreroutertoolkit|dndnode_224","selected":false}],"viewport":{"x":27.70798566234498,"y":76.92203484317952,"zoom":0.5}}}
\ No newline at end of file
diff --git a/docs/data/News_api.json b/docs/data/News_api.json
new file mode 100644
index 000000000..915fab63a
--- /dev/null
+++ b/docs/data/News_api.json
@@ -0,0 +1 @@
+{"description":"","name":"news_api","id":"53ba777b-ee08-49cc-a45d-b9cea033a910","data":{"nodes":[{"width":384,"height":597,"id":"dndnode_161","type":"genericNode","position":{"x":373.05375840382635,"y":523.1549490482104},"data":{"type":"OpenAI","node":{"template":{"cache":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"cache","advanced":false,"type":"bool","list":false},"verbose":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"verbose","advanced":false,"type":"bool","list":false},"callbacks":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"callbacks","advanced":false,"type":"langchain.callbacks.base.BaseCallbackHandler","list":true},"client":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"client","advanced":false,"type":"Any","list":false},"model_name":{"required":false,"placeholder":"","show":true,"multiline":false,"value":"text-davinci-003","password":false,"options":["text-davinci-003","text-davinci-002","text-curie-001","text-babbage-001","text-ada-001"],"name":"model_name","advanced":false,"type":"str","list":true},"temperature":{"required":false,"placeholder":"","show":true,"multiline":false,"value":0.7,"password":false,"name":"temperature","advanced":false,"type":"float","list":false},"max_tokens":{"required":false,"placeholder":"","show":true,"multiline":false,"value":256,"password":true,"name":"max_tokens","advanced":false,"type":"int","list":false},"top_p":{"required":false,"placeholder":"","show":false,"multiline":false,"value":1,"password":false,"name":"top_p","advanced":false,"type":"float","list":false},"frequency_penalty":{"required":false,"placeholder":"","show":false,"multiline":false,"value":0,"password":false,"name":"frequency_penalty","advanced":false,"type":"float","list":false},"presence_penalty":{"required":false,"placeholder":"","show":false,"multiline":false,"value":0,"password":false,"name":"presence_penalty","advanced":false,"type":"float","list":false},"n":{"required":false,"placeholder":"","show":false,"multiline":false,"value":1,"password":false,"name":"n","advanced":false,"type":"int","list":false},"best_of":{"required":false,"placeholder":"","show":false,"multiline":false,"value":1,"password":false,"name":"best_of","advanced":false,"type":"int","list":false},"model_kwargs":{"required":false,"placeholder":"","show":true,"multiline":false,"password":false,"name":"model_kwargs","advanced":true,"type":"code","list":false},"openai_api_key":{"required":false,"placeholder":"","show":true,"multiline":false,"value":"","password":true,"name":"openai_api_key","display_name":"OpenAI API Key","advanced":false,"type":"str","list":false},"openai_api_base":{"required":false,"placeholder":"","show":true,"multiline":false,"password":true,"name":"openai_api_base","advanced":false,"type":"str","list":false,"value":""},"openai_organization":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"openai_organization","advanced":false,"type":"str","list":false},"batch_size":{"required":false,"placeholder":"","show":false,"multiline":false,"value":20,"password":false,"name":"batch_size","advanced":false,"type":"int","list":false},"request_timeout":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"request_timeout","advanced":false,"type":"float","list":false},"logit_bias":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"logit_bias","advanced":false,"type":"code","list":false},"max_retries":{"required":false,"placeholder":"","show":false,"multiline":false,"value":6,"password":false,"name":"max_retries","advanced":false,"type":"int","list":false},"streaming":{"required":false,"placeholder":"","show":false,"multiline":false,"value":false,"password":false,"name":"streaming","advanced":false,"type":"bool","list":false},"allowed_special":{"required":false,"placeholder":"","show":false,"multiline":false,"value":[],"password":false,"name":"allowed_special","advanced":false,"type":"Literal'all'","list":true},"disallowed_special":{"required":false,"placeholder":"","show":false,"multiline":false,"value":"all","password":false,"name":"disallowed_special","advanced":false,"type":"Literal'all'","list":false},"_type":"OpenAI"},"description":"Wrapper around OpenAI large language models.","base_classes":["OpenAI","BaseOpenAI","BaseLLM","BaseLanguageModel"]},"id":"dndnode_161","value":null},"selected":false,"positionAbsolute":{"x":373.05375840382635,"y":523.1549490482104},"dragging":false},{"width":384,"height":373,"id":"dndnode_162","type":"genericNode","position":{"x":945.1723101025489,"y":641.4497339807061},"data":{"type":"News API","node":{"template":{"llm":{"required":true,"placeholder":"","show":true,"multiline":false,"password":false,"name":"llm","advanced":false,"type":"BaseLanguageModel","list":false},"news_api_key":{"required":false,"placeholder":"","show":true,"multiline":false,"value":"","password":true,"name":"news_api_key","advanced":false,"type":"str","list":false},"_type":"News API"},"description":"Use this when you want to get information about the top headlines of current news stories. The input should be a question in natural language that this API can answer.","base_classes":["Tool"]},"id":"dndnode_162","value":null},"selected":false,"positionAbsolute":{"x":945.1723101025489,"y":641.4497339807061},"dragging":false}],"edges":[{"source":"dndnode_161","sourceHandle":"OpenAI|dndnode_161|OpenAI|BaseOpenAI|BaseLLM|BaseLanguageModel","target":"dndnode_162","targetHandle":"BaseLanguageModel|llm|dndnode_162","className":"animate-pulse","id":"reactflow__edge-dndnode_161OpenAI|dndnode_161|OpenAI|BaseOpenAI|BaseLLM|BaseLanguageModel-dndnode_162BaseLanguageModel|llm|dndnode_162","selected":false}],"viewport":{"x":-125.88529903330328,"y":-377.2488516968368,"zoom":0.9726549474122861}}}
\ No newline at end of file
diff --git a/docs/data/Py_pdf_loader.json b/docs/data/Py_pdf_loader.json
new file mode 100644
index 000000000..d661bec47
--- /dev/null
+++ b/docs/data/Py_pdf_loader.json
@@ -0,0 +1 @@
+{"description":"","name":"New Flow","id":"38dd2d35-d7aa-4099-96db-542cef1b3f4a","data":{"nodes":[{"width":384,"height":489,"id":"dndnode_249","type":"genericNode","position":{"x":542.6168807505579,"y":170.34781931881435},"data":{"type":"CharacterTextSplitter","node":{"template":{"documents":{"required":true,"placeholder":"","show":true,"multiline":false,"password":false,"name":"documents","advanced":false,"type":"BaseLoader","list":false},"separator":{"required":true,"placeholder":"","show":true,"multiline":false,"value":".","password":false,"name":"separator","advanced":false,"type":"str","list":false},"chunk_size":{"required":true,"placeholder":"","show":true,"multiline":false,"value":"2000","password":false,"name":"chunk_size","advanced":false,"type":"int","list":false},"chunk_overlap":{"required":true,"placeholder":"","show":true,"multiline":false,"value":200,"password":false,"name":"chunk_overlap","advanced":false,"type":"int","list":false},"_type":"CharacterTextSplitter"},"description":"Implementation of splitting text that looks at characters.","base_classes":["CharacterTextSplitter","BaseDocumentTransformer","TextSplitter"]},"id":"dndnode_249","value":null},"selected":false,"positionAbsolute":{"x":542.6168807505579,"y":170.34781931881435},"dragging":false},{"width":384,"height":531,"id":"dndnode_251","type":"genericNode","position":{"x":541.0328556358809,"y":677.6804475111904},"data":{"type":"OpenAIEmbeddings","node":{"template":{"client":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"client","advanced":false,"type":"Any","list":false},"model":{"required":false,"placeholder":"","show":false,"multiline":false,"value":"text-embedding-ada-002","password":false,"name":"model","advanced":false,"type":"str","list":false},"deployment":{"required":false,"placeholder":"","show":false,"multiline":false,"value":"text-embedding-ada-002","password":false,"name":"deployment","advanced":false,"type":"str","list":false},"openai_api_version":{"required":false,"placeholder":"","show":true,"multiline":false,"value":"","password":true,"name":"openai_api_version","advanced":false,"type":"str","list":false},"openai_api_base":{"required":false,"placeholder":"","show":true,"multiline":false,"password":true,"name":"openai_api_base","advanced":false,"type":"str","list":false,"value":""},"openai_api_type":{"required":false,"placeholder":"","show":true,"multiline":false,"password":true,"name":"openai_api_type","advanced":false,"type":"str","list":false,"value":""},"embedding_ctx_length":{"required":false,"placeholder":"","show":false,"multiline":false,"value":8191,"password":false,"name":"embedding_ctx_length","advanced":false,"type":"int","list":false},"openai_api_key":{"required":false,"placeholder":"","show":true,"multiline":false,"value":"","password":true,"name":"openai_api_key","display_name":"OpenAI API Key","advanced":false,"type":"str","list":false},"openai_organization":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"openai_organization","advanced":false,"type":"str","list":false},"allowed_special":{"required":false,"placeholder":"","show":false,"multiline":false,"value":[],"password":false,"name":"allowed_special","advanced":false,"type":"Literal'all'","list":true},"disallowed_special":{"required":false,"placeholder":"","show":false,"multiline":false,"value":"all","password":false,"name":"disallowed_special","advanced":false,"type":"Literal'all'","list":true},"chunk_size":{"required":false,"placeholder":"","show":false,"multiline":false,"value":1000,"password":false,"name":"chunk_size","advanced":false,"type":"int","list":false},"max_retries":{"required":false,"placeholder":"","show":false,"multiline":false,"value":6,"password":false,"name":"max_retries","advanced":false,"type":"int","list":false},"_type":"OpenAIEmbeddings"},"description":"Wrapper around OpenAI embedding models.","base_classes":["OpenAIEmbeddings","Embeddings"]},"id":"dndnode_251","value":null},"selected":false,"positionAbsolute":{"x":541.0328556358809,"y":677.6804475111904},"dragging":false},{"width":384,"height":267,"id":"dndnode_252","type":"genericNode","position":{"x":1044.0204407094081,"y":279.9557730573877},"data":{"type":"Chroma","node":{"template":{"documents":{"required":true,"placeholder":"","show":true,"multiline":false,"password":false,"name":"documents","advanced":false,"type":"TextSplitter","list":false},"embedding":{"required":true,"placeholder":"","show":true,"multiline":false,"password":false,"name":"embedding","advanced":false,"type":"Embeddings","list":false},"_type":"Chroma"},"description":"Wrapper around ChromaDB embeddings platform.","base_classes":["Chroma","VectorStore"]},"id":"dndnode_252","value":null},"selected":false,"positionAbsolute":{"x":1044.0204407094081,"y":279.9557730573877},"dragging":false},{"width":384,"height":399,"id":"dndnode_253","type":"genericNode","position":{"x":1539.1220751701976,"y":271.2557189294075},"data":{"type":"VectorStoreInfo","node":{"template":{"vectorstore":{"required":true,"placeholder":"","show":true,"multiline":false,"password":false,"name":"vectorstore","advanced":false,"type":"VectorStore","list":false},"name":{"required":true,"placeholder":"","show":true,"multiline":false,"password":false,"name":"name","advanced":false,"type":"str","list":false,"value":"organizations 100"},"description":{"required":true,"placeholder":"","show":true,"multiline":true,"password":false,"name":"description","advanced":false,"type":"str","list":false,"value":"A table contains 100 companies.\n"},"_type":"VectorStoreInfo"},"description":"Information about a vectorstore.","base_classes":["VectorStoreInfo"]},"id":"dndnode_253","value":null},"selected":false,"positionAbsolute":{"x":1539.1220751701976,"y":271.2557189294075},"dragging":false},{"width":384,"height":597,"id":"dndnode_254","type":"genericNode","position":{"x":1561.137453291623,"y":692.9348844859459},"data":{"type":"OpenAI","node":{"template":{"cache":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"cache","advanced":false,"type":"bool","list":false},"verbose":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"verbose","advanced":false,"type":"bool","list":false},"callbacks":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"callbacks","advanced":false,"type":"langchain.callbacks.base.BaseCallbackHandler","list":true},"client":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"client","advanced":false,"type":"Any","list":false},"model_name":{"required":false,"placeholder":"","show":true,"multiline":false,"value":"text-davinci-003","password":false,"options":["text-davinci-003","text-davinci-002","text-curie-001","text-babbage-001","text-ada-001"],"name":"model_name","advanced":false,"type":"str","list":true},"temperature":{"required":false,"placeholder":"","show":true,"multiline":false,"value":0.7,"password":false,"name":"temperature","advanced":false,"type":"float","list":false},"max_tokens":{"required":false,"placeholder":"","show":true,"multiline":false,"value":256,"password":true,"name":"max_tokens","advanced":false,"type":"int","list":false},"top_p":{"required":false,"placeholder":"","show":false,"multiline":false,"value":1,"password":false,"name":"top_p","advanced":false,"type":"float","list":false},"frequency_penalty":{"required":false,"placeholder":"","show":false,"multiline":false,"value":0,"password":false,"name":"frequency_penalty","advanced":false,"type":"float","list":false},"presence_penalty":{"required":false,"placeholder":"","show":false,"multiline":false,"value":0,"password":false,"name":"presence_penalty","advanced":false,"type":"float","list":false},"n":{"required":false,"placeholder":"","show":false,"multiline":false,"value":1,"password":false,"name":"n","advanced":false,"type":"int","list":false},"best_of":{"required":false,"placeholder":"","show":false,"multiline":false,"value":1,"password":false,"name":"best_of","advanced":false,"type":"int","list":false},"model_kwargs":{"required":false,"placeholder":"","show":true,"multiline":false,"password":false,"name":"model_kwargs","advanced":true,"type":"code","list":false},"openai_api_key":{"required":false,"placeholder":"","show":true,"multiline":false,"value":"","password":true,"name":"openai_api_key","display_name":"OpenAI API Key","advanced":false,"type":"str","list":false},"openai_api_base":{"required":false,"placeholder":"","show":true,"multiline":false,"password":true,"name":"openai_api_base","advanced":false,"type":"str","list":false,"value":""},"openai_organization":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"openai_organization","advanced":false,"type":"str","list":false},"batch_size":{"required":false,"placeholder":"","show":false,"multiline":false,"value":20,"password":false,"name":"batch_size","advanced":false,"type":"int","list":false},"request_timeout":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"request_timeout","advanced":false,"type":"float","list":false},"logit_bias":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"logit_bias","advanced":false,"type":"code","list":false},"max_retries":{"required":false,"placeholder":"","show":false,"multiline":false,"value":6,"password":false,"name":"max_retries","advanced":false,"type":"int","list":false},"streaming":{"required":false,"placeholder":"","show":false,"multiline":false,"value":false,"password":false,"name":"streaming","advanced":false,"type":"bool","list":false},"allowed_special":{"required":false,"placeholder":"","show":false,"multiline":false,"value":[],"password":false,"name":"allowed_special","advanced":false,"type":"Literal'all'","list":true},"disallowed_special":{"required":false,"placeholder":"","show":false,"multiline":false,"value":"all","password":false,"name":"disallowed_special","advanced":false,"type":"Literal'all'","list":false},"_type":"OpenAI"},"description":"Wrapper around OpenAI large language models.","base_classes":["BaseLLM","BaseOpenAI","OpenAI","BaseLanguageModel"]},"id":"dndnode_254","value":null},"selected":false,"positionAbsolute":{"x":1561.137453291623,"y":692.9348844859459},"dragging":false},{"width":384,"height":267,"id":"dndnode_255","type":"genericNode","position":{"x":2158.939643819567,"y":410.12195015686194},"data":{"type":"VectorStoreAgent","node":{"template":{"vectorstoreinfo":{"required":true,"placeholder":"","show":true,"multiline":false,"password":false,"name":"vectorstoreinfo","display_name":"Vector Store Info","advanced":false,"type":"VectorStoreInfo","list":false},"llm":{"required":true,"placeholder":"","show":true,"multiline":false,"password":false,"name":"llm","display_name":"LLM","advanced":false,"type":"BaseLanguageModel","list":false},"_type":"vectorstore_agent"},"description":"Construct an agent from a Vector Store.","base_classes":["AgentExecutor"]},"id":"dndnode_255","value":null},"selected":false,"positionAbsolute":{"x":2158.939643819567,"y":410.12195015686194},"dragging":false},{"width":384,"height":265,"id":"dndnode_267","type":"genericNode","position":{"x":45.46334416270031,"y":240.7728876843567},"data":{"type":"PyPDFLoader","node":{"template":{"file_path":{"required":true,"placeholder":"","show":true,"multiline":false,"value":"example.pdf","suffixes":[".pdf"],"password":false,"name":"file_path","advanced":false,"type":"file","list":false,"fileTypes":["pdf"],"content":"data:application/pdf;base64,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UgovRjQgMTggMCBSPj4KL1hPYmplY3QgPDwvR0kxIDE5IDAgUj4+Ci9Qcm9jU2V0IFsvUERGIC9UZXh0IC9JbWFnZUNdCi9QYXR0ZXJuIDw8L1BhdDEgMjAgMCBSPj4+PgovR3JvdXAgPDwvUyAvVHJhbnNwYXJlbmN5Ci9DUyAvRGV2aWNlUkdCPj4KL0Fubm90cyBbMTAgMCBSIDExIDAgUiAxMiAwIFIgMTMgMCBSIDE0IDAgUiAxNSAwIFJdPj4KZW5kb2JqCgoxMCAwIG9iago8PC9UeXBlIC9Bbm5vdAovUmVjdCBbMjA4LjY5NTAgNjc1LjIwMDAgMjk2Ljc4NTAgNjg3LjIwMDBdCi9Cb3JkZXIgWzAgMCAwXQovU3VidHlwZSAvTGluawovQSA8PC9UeXBlIC9BY3Rpb24KL1MgL1VSSQovVVJJIChodHRwOi8vd3d3LnBuci5pa2kuZmkvY3YuaHRtbCk+Pj4+CmVuZG9iagoKMTEgMCBvYmoKPDwvVHlwZSAvQW5ub3QKL1JlY3QgWzIwOC42OTUwIDY2My4yMDAwIDI5Ni43ODUwIDY3NS4yMDAwXQovQm9yZGVyIFswIDAgMF0KL1N1YnR5cGUgL0xpbmsKL0EgPDwvVHlwZSAvQWN0aW9uCi9TIC9VUkkKL1VSSSAoaHR0cDovL3d3dy5hYWx0by5maSk+Pj4+CmVuZG9iagoKMTIgMCBvYmoKPDwvVHlwZSAvQW5ub3QKL1JlY3QgWzI5Ni43ODUwIDY3NS4yMDAwIDQwMy4zMDUwIDY4Ny4yMDAwXQovQm9yZGVyIFswIDAgMF0KL1N1YnR5cGUgL0xpbmsKL0EgPDwvVHlwZSAvQWN0aW9uCi9TIC9VUkkKL1VSSSAoaHR0cDovL3d3dy5wbnIuaWtpLmZpL2N2Lmh0bWwpPj4+PgplbmRvYmoKCjEzIDAgb2JqCjw8L1R5cGUgL0Fubm90Ci9SZWN0IFsyOTYuNzg1MCA2NjMuMjAwMCA0MDMuMzA1MCA2NzUuMjAwMF0KL0JvcmRlciBbMCAwIDBdCi9TdWJ0eXBlIC9MaW5rCi9BIDw8L1R5cGUgL0FjdGlvbgovUyAvVVJJCi9VUkkgKGh0dHA6Ly93d3cudXNlbml4Lm9yZyk+Pj4+CmVuZG9iagoKMTQgMCBvYmoKPDwvVHlw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QqL22mcYI3QaoZ1WW3m6eN/2DSsWz58ROpE6rxWk4UrjYhL1/RcR+rlITlXb2MbFN2T6nOTl67btLT5VeeXm3dYnXS9ewWmNhNDf+MJqfWeEziPYah/ev+nt6Xzy8N7NuktwGO3ctGpJ/Cx4Gdmb66Mrjc7PxTFmmBD90AjG6OMHaqfBnXb18rkTh3ZvyVyWMDss0BOuNPS+pr6CMB5GQ5/oR0Z//glE716/eN7x6MGd61XlJYfzctakJkaHB3k5WhpqKssyiX4bHkRf/k5EndifPqLDqKOtubG++nxpYf7WtWlJMRHB3ujWByIhAUQ0crgQffk7ERgBERxG1HldX1NRdmRPblb6wtjIYG9na+phRBGNGj5EX74j+otB1NP5uKWpofbCyaKCbdkZyXHTQnycrY21KSIe6u04bIi+fEf05+dPDKKHd+F9fapo77bs5SnwLc3XxYZBRBtuRF9+QISuNCZR8d7t6waIVOUkhYcf0ZcfE3U9af2OiPoGMhyJvgxGBG/Hi6eP7tuxfsWiuVGT/Vxthy/RF0KEjxDhI0T4CBE+5jcQQjR4/V9kCdGg9Rn9NNGI4UfEMELfY9GvIf1E+78mGkv9eI1+dkT/rT9Mif7z1x+f0a8hz58+un/r6qUzx/bv3LBy8bwZoRPQj9djFaRE6ISIEA0eIcJGiLARImyECBshwkaIsBEibIQIGyHCRoiwESJshAgbIcJGiLARImyECBshwkaIsBEibIQIGyHCRoiwESJshAgbIcJGiLARImyECBshwkaIsBEibIQIGyHCRoiwESJshAgbIcJGiLARImyECBshwkaIsBEibIQIGyHCRoiwESJshAgbIcJGiLARImyECBshwkaIsBEibIQIGyHCRoiwESJshAgbIcJGiLARImyECBshwkaIsBEibIQIGyHCRoiwESJshAgbIcJGiLARImyECBshwkaIsBEibIQIGyHCRoiwESJshAgbIcJGiLARImyECBshwkaIsBEibIQIGyHCRoiwESJshAgbIcJGiLARImyECBshwkaIsBEibIQIGyHCRoiwESJshAgbIcJGiLARImyECBshwkaIsBEibIQIGyHCRoiwESJshAgbIcJGiLARImyECBshwkaIsBEibIQIGyHCRoiwESJshAgbIcJGiLARImyECBshwkaIsBEibIQIGyHCRoiwESJs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L1BhdDEwNSAzOSAwIFIKL1BhdDEwNiA0MCAwIFIKL1BhdDEwNyA0MSAwIFIKL1BhdDEwOCA0MiAwIFIKL1BhdDEwOSA0MyAwIFIKL1BhdDExIDQ0IDAgUgovUGF0MTEwIDQ1IDAgUgovUGF0MTExIDQ2IDAgUgovUGF0MTEyIDQ3IDAgUgovUGF0MTEzIDQ4IDAgUgovUGF0MTE0IDQ5IDAgUgovUGF0MTE1IDUwIDAgUgovUGF0MTE2IDUxIDAgUgovUGF0MTE3IDUyIDAgUgovUGF0MTE4IDUzIDAgUgovUGF0MTE5IDU0IDAgUgovUGF0MTIgNTUgMCBSCi9QYXQxMjAgNTYgMCBSCi9QYXQxMjEgNTcgMCBSCi9QYXQxMjIgNTggMCBSCi9QYXQxMjMgNTkgMCBSCi9QYXQxMjQgNjAgMCBSCi9QYXQxMjUgNjEgMCBSCi9QYXQxMjYgNjIgMCBSCi9QYXQxMjcgNjMgMCBSCi9QYXQxMjggNjQgMCBSCi9QYXQxMjkgNjUgMCBSCi9QYXQxMyA2NiAwIFIKL1BhdDEzMCA2NyAwIFIKL1BhdDEzMSA2OCAwIFIKL1BhdDEzMiA2OSAwIFIKL1BhdDEzMyA3MCAwIFIKL1BhdDEzNCA3MSAwIFIKL1BhdDEzNSA3MiAwIFIKL1BhdDEzNiA3MyAwIFIKL1BhdDEzNyA3NCAwIFIKL1BhdDEzOCA3NSAwIFIKL1BhdDEzOSA3NiAwIFIKL1BhdDE0IDc3IDAgUgovUGF0MTQwIDc4IDAgUgovUGF0MTQxIDc5IDAgUgovUGF0MTQyIDgwIDAgUgovUGF0MTQzIDgxIDAgUgovUGF0MTQ0IDgyIDAgUgovUGF0MTQ1IDgzIDAgUgovUGF0MTQ2IDg0IDAgUgovUGF0MTQ3IDg1IDAgUgovUGF0MTQ4IDg2IDAgUgovUGF0MTQ5IDg3IDAgUgovUGF0MTUgODggMCBSCi9QYXQxNTAgODkgMCBSCi9QYXQxNTEgOTAgMCBSCi9QYXQxNTIgOTEgMCBSCi9QYXQxNTMgOTIgMCBSCi9QYXQxNTQgOTMgMCBSCi9QYXQxNTUgOTQgMCBSCi9QYXQxNTYgOTUgMCBSCi9QYXQxNTcgOTYgMCBSCi9QYXQxNTggOTcgMCBSCi9QYXQxNTkgOTggMCBSCi9QYXQxNiA5OSAwIFIKL1BhdDE2MCAxMDAgMCBSCi9QYXQxNjEgMTAxIDAgUgovUGF0MTYyIDEwMiAwIFIKL1BhdDE2MyAxMDMgMCBSCi9QYXQxNjQgMTA0IDAgUgovUGF0MTY1IDEwNSAwIFIKL1BhdDE2NiAxMDYgMCBSCi9QYXQxNjcgMTA3IDAgUgovUGF0MTY4IDEwOCAwIFIKL1BhdDE2OSAxMDkgMCBSCi9QYXQxNyAxMTAgMCBSCi9QYXQxNzAgMTExIDAgUgovUGF0MTcxIDExMiAwIFIKL1BhdDE3MiAxMTMgMCBSCi9QYXQxNzMgMTE0IDAgUgovUGF0MTc0IDExNSAwIFIKL1BhdDE3NSAxMTYgMCBSCi9QYXQxNzYgMTE3IDAgUgovUGF0MTc3IDExOCAwIFIKL1BhdDE3OCAxMTkgMCBSCi9QYXQxNzkgMTIwIDAgUgovUGF0MTggMTIxIDAgUgovUGF0MTgwIDEyMiAwIFIKL1BhdDE4MSAxMjMgMCBSCi9QYXQxODIgMTI0IDAgUgovUGF0MTgzIDEyNSAwIFIKL1BhdDE4NCAxMjYgMCBSCi9QYXQxODUgMTI3IDAgUgovUGF0MTg2IDEyOCAwIFIKL1BhdDE4NyAxMjkgMCBSCi9QYXQxODggMTMwIDAgUgovUGF0MTg5IDEzMSAwIFIKL1BhdDE5IDEzMiAwIFIKL1BhdDE5MCAxMzMgMCBSCi9QYXQxOTEgMTM0IDAgUgovUGF0MTkyIDEzNSAwIFIKL1BhdDE5MyAxMzYgMCBSCi9QYXQxOTQgMTM3IDAgUgovUGF0MTk1IDEzOCAwIFIKL1BhdDE5NiAxMzkgMCBSCi9QYXQxOTcgMTQwIDAgUgovUGF0MTk4IDE0MSAwIFIKL1BhdDE5OSAxNDIgMCBSCi9QYXQyIDE0MyAwIFIKL1BhdDIwIDE0NCAwIFIKL1BhdDIwMCAxNDUgMCBSCi9QYXQyMDEgMTQ2IDAgUgovUGF0MjAyIDE0NyAwIFIKL1BhdDIwMyAxNDggMCBSCi9QYXQyMDQgMTQ5IDAgUgovUGF0MjA1IDE1MCAwIFIKL1BhdDIwNiAxNTEgMCBSCi9QYXQyMDcgMTUyIDAgUgovUGF0MjA4IDE1MyAwIFIKL1BhdDIwOSAxNTQgMCBSCi9QYXQyMSAxNTUgMCBSCi9QYXQyMTAgMTU2IDAgUgovUGF0MjExIDE1NyAwIFIKL1BhdDIxMiAxNTggMCBSCi9QYXQyMTMgMTU5IDAgUgovUGF0MjE0IDE2MCAwIFIKL1BhdDIxNSAxNjEgMCBSCi9QYXQyMTYgMTYyIDAgUgovUGF0MjE3IDE2MyAwIFIKL1BhdDIxOCAxNjQgMCBSCi9QYXQyMTkgMTY1IDAgUgovUGF0MjIgMTY2IDAgUgovUGF0MjIwIDE2NyAwIFIKL1BhdDIyMSAxNjggMCBSCi9QYXQyMjIgMTY5IDAgUgovUGF0MjIzIDE3MCAwIFIKL1BhdDIyNCAxNzEgMCBSCi9QYXQyMjUgMTcyIDAgUgovUGF0MjI2IDE3MyAwIFIKL1BhdDIyNyAxNzQgMCBSCi9QYXQyMjggMTc1IDAgUgovUGF0MjI5IDE3NiAwIFIKL1BhdDIzIDE3NyAwIFIKL1BhdDIzMCAxNzggMCBSCi9QYXQyMzEgMTc5IDAgUgovUGF0MjMyIDE4MCAwIFIKL1BhdDIzMyAxODEgMCBSCi9QYXQyMzQgMTgyIDAgUgovUGF0MjM1IDE4MyAwIFIKL1BhdDIzNiAxODQgMCBSCi9QYXQyMzcgMTg1IDAgUgovUGF0MjM4IDE4NiAwIFIKL1BhdDIzOSAxODcgMCBSCi9QYXQyNCAxODggMCBSCi9QYXQyNDAgMTg5IDAgUgovUGF0MjQxIDE5MCAwIFIKL1BhdDI0MiAxOTEgMCBSCi9QYXQyNDMgMTkyIDAgUgovUGF0MjQ0IDE5MyAwIFIKL1BhdDI0NSAxOTQgMCBSCi9QYXQyNDYgMTk1IDAgUgovUGF0MjQ3IDE5NiAwIFIKL1BhdDI0OCAxOTcgMCBSCi9QYXQyNDkgMTk4IDAgUgovUGF0MjUgMTk5IDAgUgovUGF0MjUwIDIwMCAwIFIKL1BhdDI1MSAyMDEgMCBSCi9QYXQyNTIgMjAyIDAgUgovUGF0MjUzIDIwMyAwIFIKL1BhdDI1NCAyMDQgMCBSCi9QYXQyNTUgMjA1IDAgUgovUGF0MjU2IDIwNiAwIFIKL1BhdDI1NyAyMDcgMCBSCi9QYXQyNTggMjA4IDAgUgovUGF0MjU5IDIwOSAwIFIKL1BhdDI2IDIxMCAwIFIKL1BhdDI2MCAyMTEgMCBSCi9QYXQyNjEgMjEyIDAgUgovUGF0MjYyIDIxMyAwIFIKL1BhdDI2MyAyMTQgMCBSCi9QYXQyNjQgMjE1IDAgUgovUGF0MjY1IDIxNiAwIFIKL1BhdDI2NiAyMTcgMCBSCi9QYXQyNjcgMjE4IDAgUgovUGF0MjY4IDIxOSAwIFIKL1BhdDI2OSAyMjAgMCBSCi9QYXQyNyAyMjEgMCBSCi9QYXQyNzAgMjIyIDAgUgovUGF0MjcxIDIyMyAwIFIKL1BhdDI3MiAyMjQgMCBSCi9QYXQyNzMgMjI1IDAgUgovUGF0Mjc0IDIyNiAwIFIKL1BhdDI3NSAyMjcgMCBSCi9QYXQyNzYgMjI4IDAgUgovUGF0Mjc3IDIyOSAwIFIKL1BhdDI3OCAyMzAgMCBSCi9QYXQyNzkgMjMxIDAgUgovUGF0MjggMjMyIDAgUgovUGF0MjgwIDIzMyAwIFIKL1BhdDI4MSAyMzQgMCBSCi9QYXQyODIgMjM1IDAgUgovUGF0MjgzIDIzNiAwIFIKL1BhdDI4NCAyMzcgMCBSCi9QYXQyODUgMjM4IDAgUgovUGF0Mjg2IDIzOSAwIFIKL1BhdDI4NyAyNDAgMCBSCi9QYXQyODggMjQxIDAgUgovUGF0Mjg5IDI0MiAwIFIKL1BhdDI5IDI0MyAwIFIKL1BhdDI5MCAyNDQgMCBSCi9QYXQyOTEgMjQ1IDAgUgovUGF0MjkyIDI0NiAwIFIKL1BhdDI5MyAyNDcgMCBSCi9QYXQyOTQgMjQ4IDAgUgovUGF0Mjk1IDI0OSAwIFIKL1BhdDI5NiAyNTAgMCBSCi9QYXQyOTcgMjUxIDAgUgovUGF0Mjk4IDI1MiAwIFIKL1BhdDI5OSAyNTMgMCBSCi9QYXQzIDI1NCAwIFIKL1BhdDMwIDI1NSAwIFIKL1BhdDMwMCAyNTYgMCBSCi9QYXQzMDEgMjU3IDAgUgovUGF0MzAyIDI1OCAwIFIKL1BhdDMwMyAyNTkgMCBSCi9QYXQzMDQgMjYwIDAgUgovUGF0MzA1IDI2MSAwIFIKL1BhdDMwNiAyNjIgMCBSCi9QYXQzMDcgMjYzIDAgUgovUGF0MzA4IDI2NCAwIFIKL1BhdDMwOSAyNjUgMCBSCi9QYXQzMSAyNjYgMCBSCi9QYXQzMTAgMjY3IDAgUgovUGF0MzExIDI2OCAwIFIKL1BhdDMxMiAyNjkgMCBSCi9QYXQzMTMgMjcwIDAgUgovUGF0MzE0IDI3MSAwIFIKL1BhdDMxNSAyNzIgMCBSCi9QYXQzMTYgMjczIDAgUgovUGF0MzE3IDI3NCAwIFIKL1BhdDMxOCAyNzUgMCBSCi9QYXQzMTkgMjc2IDAgUgovUGF0MzIgMjc3IDAgUgovUGF0MzIwIDI3OCAwIFIKL1BhdDMyMSAyNzkgMCBSCi9QYXQzMjIgMjgwIDAgUgovUGF0MzIzIDI4MSAwIFIKL1BhdDMyNCAyODIgMCBSCi9QYXQzMjUgMjgzIDAgUgovUGF0MzI2IDI4NCAwIFIKL1BhdDMyNyAyODUgMCBSCi9QYXQzMjggMjg2IDAgUgovUGF0MzI5IDI4NyAwIFIKL1BhdDMzIDI4OCAwIFIKL1BhdDMzMCAyODkgMCBSCi9QYXQzMzEgMjkwIDAgUgovUGF0MzMyIDI5MSAwIFIKL1BhdDMzMyAyOTIgMCBSCi9QYXQzMzQgMjkzIDAgUgovUGF0MzM1IDI5NCAwIFIKL1BhdDMzNiAyOTUgMCBSCi9QYXQzMzcgMjk2IDAgUgovUGF0MzM4IDI5NyAwIFIKL1BhdDMzOSAyOTggMCBSCi9QYXQzNCAyOTkgMCBSCi9QYXQzNDAgMzAwIDAgUgovUGF0MzQxIDMwMSAwIFIKL1BhdDM0MiAzMDIgMCBSCi9QYXQzNDMgMzAzIDAgUgovUGF0MzQ0IDMwNCAwIFIKL1BhdDM0NSAzMDUgMCBSCi9QYXQzNDYgMzA2IDAgUgovUGF0MzQ3IDMwNyAwIFIKL1BhdDM0OCAzMDggMCBSCi9QYXQzNDkgMzA5IDAgUgovUGF0MzUgMzEwIDAgUgovUGF0MzUwIDMxMSAwIFIKL1BhdDM1MSAzMTIgMCBSCi9QYXQzNTIgMzEzIDAgUgovUGF0MzUzIDMxNCAwIFIKL1BhdDM1NCAzMTUgMCBSCi9QYXQzNTUgMzE2IDAgUgovUGF0MzU2IDMxNyAwIFIKL1BhdDM1NyAzMTggMCBSCi9QYXQzNTggMzE5IDAgUgovUGF0MzU5IDMyMCAwIFIKL1BhdDM2IDMyMSAwIFIKL1BhdDM2MCAzMjIgMCBSCi9QYXQzNjEgMzIzIDAgUgovUGF0MzYyIDMyNCAwIFIKL1BhdDM2MyAzMjUgMCBSCi9QYXQzNjQgMzI2IDAgUgovUGF0MzY1IDMyNyAwIFIKL1BhdDM2NiAzMjggMCBSCi9QYXQzNjcgMzI5IDAgUgovUGF0MzY4IDMzMCAwIFIKL1BhdDM2OSAzMzEgMCBSCi9QYXQzNyAzMzIgMCBSCi9QYXQzNzAgMzMzIDAgUgovUGF0MzcxIDMzNCAwIFIKL1BhdDM3MiAzMzUgMCBSCi9QYXQzNzMgMzM2IDAgUgovUGF0Mzc0IDMzNyAwIFIKL1BhdDM3NSAzMzggMCBSCi9QYXQzNzYgMzM5IDAgUgovUGF0Mzc3IDM0MCAwIFIKL1BhdDM3OCAzNDEgMCBSCi9QYXQzNzkgMzQyIDAgUgovUGF0MzggMzQzIDAgUgovUGF0MzgwIDM0NCAwIFIKL1BhdDM4MSAzNDUgMCBSCi9QYXQzODIgMzQ2IDAgUgovUGF0MzgzIDM0NyAwIFIKL1BhdDM4NCAzNDggMCBSCi9QYXQzODUgMzQ5IDAgUgovUGF0Mzg2IDM1MCAwIFIKL1BhdDM4NyAzNTEgMCBSCi9QYXQzODggMzUyIDAgUgovUGF0Mzg5IDM1MyAwIFIKL1BhdDM5IDM1NCAwIFIKL1BhdDM5MCAzNTUgMCBSCi9QYXQzOTEgMzU2IDAgUgovUGF0MzkyIDM1NyAwIFIKL1BhdDM5MyAzNTggMCBSCi9QYXQzOTQgMzU5IDAgUgovUGF0Mzk1IDM2MCAwIFIKL1BhdDM5NiAzNjEgMCBSCi9QYXQzOTcgMzYyIDAgUgovUGF0Mzk4IDM2MyAwIFIKL1BhdDM5OSAzNjQgMCBSCi9QYXQ0IDM2NSAwIFIKL1BhdDQwIDM2NiAwIFIKL1BhdDQwMCAzNjcgMCBSCi9QYXQ0MDEgMzY4IDAgUgovUGF0NDAyIDM2OSAwIFIKL1BhdDQwMyAzNzAgMCBSCi9QYXQ0MDQgMzcxIDAgUgovUGF0NDA1IDM3MiAwIFIKL1BhdDQwNiAzNzMgMCBSCi9QYXQ0MDcgMzc0IDAgUgovUGF0NDA4IDM3NSAwIFIKL1BhdDQwOSAzNzYgMCBSCi9QYXQ0MSAzNzcgMCBSCi9QYXQ0MTAgMzc4IDAgUgovUGF0NDExIDM3OSAwIFIKL1BhdDQxMiAzODAgMCBSCi9QYXQ0MTMgMzgxIDAgUgovUGF0NDE0IDM4MiAwIFIKL1BhdDQxNSAzODMgMCBSCi9QYXQ0MTYgMzg0IDAgUgovUGF0NDE3IDM4NSAwIFIKL1BhdDQxOCAzODYgMCBSCi9QYXQ0MTkgMzg3IDAgUgovUGF0NDIgMzg4IDAgUgovUGF0NDIwIDM4OSAwIFIKL1BhdDQyMSAzOTAgMCBSCi9QYXQ0MjIgMzkxIDAgUgovUGF0NDIzIDM5MiAwIFIKL1BhdDQyNCAzOTMgMCBSCi9QYXQ0MjUgMzk0IDAgUgovUGF0NDI2IDM5NSAwIFIKL1BhdDQyNyAzOTYgMCBSCi9QYXQ0MjggMzk3IDAgUgovUGF0NDI5IDM5OCAwIFIKL1BhdDQzIDM5OSAwIFIKL1BhdDQzMCA0MDAgMCBSCi9QYXQ0MzEgNDAxIDAgUgovUGF0NDMyIDQwMiAwIFIKL1BhdDQzMyA0MDMgMCBSCi9QYXQ0MzQgNDA0IDAgUgovUGF0NDM1IDQwNSAwIFIKL1BhdDQzNiA0MDYgMCBSCi9QYXQ0MzcgNDA3IDAgUgovUGF0NDM4IDQwOCAwIFIKL1BhdDQzOSA0MDkgMCBSCi9QYXQ0NCA0MTAgMCBSCi9QYXQ0NSA0MTEgMCBSCi9QYXQ0NiA0MTIgMCBSCi9QYXQ0NyA0MTMgMCBSCi9QYXQ0OCA0MTQgMCBSCi9QYXQ0OSA0MTUgMCBSCi9QYXQ1IDQxNiAwIFIKL1BhdDUwIDQxNyAwIFIKL1BhdDUxIDQxOCAwIFIKL1BhdDUyIDQxOSAwIFIKL1BhdDUzIDQyMCAwIFIKL1BhdDU0IDQyMSAwIFIKL1BhdDU1IDQyMiAwIFIKL1BhdDU2IDQyMyAwIFIKL1BhdDU3IDQyNCAwIFIKL1BhdDU4IDQyNSAwIFIKL1BhdDU5IDQyNiAwIFIKL1BhdDYgNDI3IDAgUgovUGF0NjAgNDI4IDAgUgovUGF0NjEgNDI5IDAgUgovUGF0NjIgNDMwIDAgUgovUGF0NjMgNDMxIDAgUgovUGF0NjQgNDMyIDAgUgovUGF0NjUgNDMzIDAgUgovUGF0NjYgNDM0IDAgUgovUGF0NjcgNDM1IDAgUgovUGF0NjggNDM2IDAgUgovUGF0NjkgNDM3IDAgUgovUGF0NyA0MzggMCBSCi9QYXQ3MCA0MzkgMCBSCi9QYXQ3MSA0NDAgMCBSCi9QYXQ3MiA0NDEgMCBSCi9QYXQ3MyA0NDIgMCBSCi9QYXQ3NCA0NDMgMCBSCi9QYXQ3NSA0NDQgMCBSCi9QYXQ3NiA0NDUgMCBSCi9QYXQ3NyA0NDYgMCBSCi9QYXQ3OCA0NDcgMCBSCi9QYXQ3OSA0NDggMCBSCi9QYXQ4IDQ0OSAwIFIKL1BhdDgwIDQ1MCAwIFIKL1BhdDgxIDQ1MSAwIFIKL1BhdDgyIDQ1MiAwIFIKL1BhdDgzIDQ1MyAwIFIKL1BhdDg0IDQ1NCAwIFIKL1BhdDg1IDQ1NSAwIFIKL1BhdDg2IDQ1NiAwIFIKL1BhdDg3IDQ1NyAwIFIKL1BhdDg4IDQ1OCAwIFIKL1BhdDg5IDQ1OSAwIFIKL1BhdDkgNDYwIDAgUgovUGF0OTAgNDYxIDAgUgovUGF0OTEgNDYyIDAgUgovUGF0OTIgNDYzIDAgUgovUGF0OTMgNDY0IDAgUgovUGF0OTQgNDY1IDAgUgovUGF0OTUgNDY2IDAgUgovUGF0OTYgNDY3IDAgUgovUGF0OTcgNDY4IDAgUgovUGF0OTggNDY5IDAgUgovUGF0OTkgNDcwIDAgUj4+Pj4KL0Fubm90cyBbMjYgMCBSIDI3IDAgUiAyOCAwIFIgMjkgMCBSIDMwIDAgUl0+PgplbmRvYmoKCjI2IDAgb2JqCjw8L1R5cGUgL0Fubm90Ci9SZWN0IFszNTUuOTYwMiAxMzUuMTAyMSA0MzYuMTYwMiAxNDguMzUyMV0KL0JvcmRlciBbMCAwIDBdCi9TdWJ0eXBlIC9MaW5rCi9BIDw8L1R5cGUgL0FjdGlvbgovUyAvVVJJCi9VUkkgKGh0dHA6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvWF9XaW5kb3dfU3lzdGVtKT4+Pj4KZW5kb2JqCgoyNyAwIG9iago8PC9UeXBlIC9Bbm5vdAovUmVjdCBbMzU1Ljk2MDIgMTE4LjUzOTYgNDMwLjE4MDIgMTMxLjc4OTZdCi9Cb3JkZXIgWzAgMCAwXQovU3VidHlwZSAvTGluawovQSA8PC9UeXBlIC9BY3Rpb24KL1MgL1VSSQovVVJJIChodHRwOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL1RpbV9CZXJuZXJzLUxlZSk+Pj4+CmVuZG9iagoKMjggMCBvYmoKPDwvVHlw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MiAwIG9iagoyMDgzCmVuZG9iagoKNSAwIG9iago8PC9UeXBlIC9QYWdlCi9QYXJlbnQgMiAwIFIKL01lZGlhQm94IFswIDAgNjEyIDc5Ml0KL0NvbnRlbnRzIDQ3MSAwIFIKL1Jlc291cmNlcyA8PC9Gb250IDw8L0YyIDE2IDAgUgovRjQgMTggMCBSPj4KL1Byb2NTZXQgWy9QREYgL1RleHRdPj4KL0Fubm90cyBbNDczIDAgUiA0NzQgMCBSIDQ3NSAwIFIgNDc2IDAgUiA0NzcgMCBSXT4+CmVuZG9iagoKNDczIDAgb2JqCjw8L1R5cGUgL0Fubm90Ci9SZWN0IFsxMTIuOTYwMiA3MDQuODEyNSAyMzIuMDAwMiA3MTguMDYyNV0KL0JvcmRlciBbMCAwIDBdCi9TdWJ0eXBlIC9MaW5rCi9BIDw8L1R5cGUgL0FjdGlvbgovUyAvVVJJCi9VUkkgKGh0dHA6Ly9lbi53aWtpcGVkaWEub3JnL3cvaW5kZXgucGhwP3RpdGxlPVRoZV9Tb2Z0d2FyZV9Ub29sc19Qcm9qZWN0JmFjdGlvbj1lZGl0JnJlZGxpbms9MSk+Pj4+CmVuZG9iagoKNDc0IDAgb2JqCjw8L1R5cGUgL0Fubm90Ci9SZWN0IFsxODQuODQwMiA2ODguMjUwMCAyMjIuMDcwMiA3MDEuNTAwMF0KL0JvcmRlciBbMCAwIDBdCi9TdWJ0eXBlIC9MaW5rCi9BIDw8L1R5cGUgL0FjdGlvbgovUyAvVVJJCi9VUkkgKGh0dHA6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvVVNFTkVUKT4+Pj4KZW5kb2JqCgo0NzUgMCBvYmoKPDwvVHlwZSAvQW5ub3QKL1JlY3QgWzExMi45NjAyIDY1NS4xMjUwIDE3Ny42NTAyIDY2OC4zNzUwXQovQm9yZGVyIFswIDAgMF0KL1N1YnR5cGUgL0xpbmsKL0EgPDwvVHlwZSAvQWN0aW9uCi9TIC9VUkkKL1VSSSAoaHR0cDovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9CZXJrZWxleV9VTklYKT4+Pj4KZW5kb2JqCgo0NzYgMCBvYmoKPDwvVHlwZSAvQW5ub3QKL1JlY3QgWzEyNi4xNDI1IDYyNi41NjI1IDE2Mi44MDI1IDYzOS44MTI1XQovQm9yZGVyIFswIDAgMF0KL1N1YnR5cGUgL0xpbmsKL0EgPDwvVHlwZSAvQWN0aW9uCi9TIC9VUkkKL1VSSSAoaHR0cDovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9KaW1fRWxsaXNfXChjb21wdXRpbmdcKSk+Pj4+CmVuZG9iagoKNDc3IDAgb2JqCjw8L1R5cGUgL0Fubm90Ci9SZWN0IFsxODQuMjAyNSA2MjYuNTYyNSAyNDMuNDYyNSA2MzkuODEyNV0KL0JvcmRlciBbMCAwIDBdCi9TdWJ0eXBlIC9MaW5rCi9BIDw8L1R5cGUgL0FjdGlvbgovUyAvVVJJCi9VUkkgKGh0dHA6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvVG9tX1RydXNjb3R0KT4+Pj4KZW5kb2JqCgo0NzggMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0K5ubmgICACmVuZHN0cmVhbQplbmRvYmoKCjIwIDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzMwLjAwMDAgMTIuNTAwMCA3MC4wMDAwIDM3LjUwMDBdCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDQ3OCAwIFI+PgovTWF0cml4IFsyLjY0NzEgMC4wMDAwIDAuMDAwMCAtMi42NDcxIDI4OC41Mjk0IDY2My4wNTI5XT4+CmVuZG9iagoKNDc5IDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCtjY2LGxsQplbmRzdHJlYW0KZW5kb2JqCgozNzAgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbMjc1LjcyNjggNTcxLjkwNTUgMzUyLjI3MjUgNTcxLjkwNTVdCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDQ3OSAwIFI+PgovTWF0cml4IFswLjAzNTMgMC4wMDAwIDAuMDAwMCAtMC4wODI4IDEwOC43Njk2IDY2NC40NDU4XT4+CmVuZG9iagoKNDgwIDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCtjY2LGxsQplbmRzdHJlYW0KZW5kb2JqCgo1OSAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFsyNzUuNzI2OCA1NzEuOTA1NSAzNTIuMjcyNSA1NzEuOTA1NV0KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gNDgwIDAgUj4+Ci9NYXRyaXggWzAuMDcxMCAwLjAwMDAgMC4wMDAwIC0wLjA3MDggODAuODcxOCA2OTYuNzM3N10+PgplbmRvYmoKCjQ4MSAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrY2NixsbEKZW5kc3RyZWFtCmVuZG9iagoKNDIyIDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzI3NS43MjY4IDU3MS45MDU1IDM1Mi4yNzI1IDU3MS45MDU1XQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA0ODEgMCBSPj4KL01hdHJpeCBbMC4wNzEwIDAuMDAwMCAwLjAwMDAgLTAuMDcwOCA4MS4zMTQwIDcxOS41ODgzXT4+CmVuZG9iagoKNDgyIDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCtjY2LGxsQplbmRzdHJlYW0KZW5kb2JqCgo2MyAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFsyNzUuNzI2OCA1NzEuOTA1NSAzNTIuMjcyNSA1NzEuOTA1NV0KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gNDgyIDAgUj4+Ci9NYXRyaXggWzAuMDcxMCAwLjAwMDAgMC4wMDAwIC0wLjA3MDggOTkuODIzMiA2OTYuNzM3N10+PgplbmRvYmoKCjQ4MyAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrY2NixsbEKZW5kc3RyZWFtCmVuZG9iagoKMjI0IDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzI3NS43MjY4IDU3MS45MDU1IDM1Mi4yNzI1IDU3MS45MDU1XQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA0ODMgMCBSPj4KL01hdHJpeCBbMC4wNzEwIDAuMDAwMCAwLjAwMDAgLTAuMDcwOCAxMDMuNTM3OCA2MzkuNDk1MV0+PgplbmRvYmoKCjQ4NCAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrY2NixsbEKZW5kc3RyZWFtCmVuZG9iagoKMTE3IDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzI3NS43MjY4IDU3MS45MDU1IDM1Mi4yNzI1IDU3MS45MDU1XQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA0ODQgMCBSPj4KL01hdHJpeCBbMC4wNzEwIDAuMDAwMCAwLjAwMDAgLTAuMDcwOCAxMTAuMDMzMCA2NzcuODI5Nl0+PgplbmRvYmoKCjQ4NSAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrY2NixsbEKZW5kc3RyZWFtCmVuZG9iagoKMTcxIDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzI3NS43MjY4IDU3MS45MDU1IDM1Mi4yNzI1IDU3MS45MDU1XQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA0ODUgMCBSPj4KL01hdHJpeCBbMC4wNzEwIDAuMDAwMCAwLjAwMDAgLTAuMDcwOCAxMTMuNjc5NCA2NTguNzQ2OV0+PgplbmRvYmoKCjQ4NiAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrY2NixsbEKZW5kc3RyZWFtCmVuZG9iagoKNjggMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbMjc1LjcyNjggNTcxLjkwNTUgMzUyLjI3MjUgNTcxLjkwNTVdCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDQ4NiAwIFI+PgovTWF0cml4IFswLjA3MTAgMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDExOC43NzQ1IDY5Ni43Mzc3XT4+CmVuZG9iagoKNDg3IDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCtjY2LGxsQplbmRzdHJlYW0KZW5kb2JqCgo0MzggMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbMjc1LjcyNjggNTcxLjkwNTUgMzUyLjI3MjUgNTcxLjkwNTVdCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDQ4NyAwIFI+PgovTWF0cml4IFswLjA3MTAgMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDExOC43ODY0IDcxOS41ODgzXT4+CmVuZG9iagoKNDg4IDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCtjY2LGxsQplbmRzdHJlYW0KZW5kb2JqCgoyMjggMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbMjc1LjcyNjggNTcxLjkwNTUgMzUyLjI3MjUgNTcxLjkwNTVdCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDQ4OCAwIFI+PgovTWF0cml4IFswLjA3MTAgMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDEyMi40ODkyIDYzOS40OTUxXT4+CmVuZG9iagoKNDg5IDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCtjY2LGxsQplbmRzdHJlYW0KZW5kb2JqCgoxMjIgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbMjc1LjcyNjggNTcxLjkwNTUgMzUyLjI3MjUgNTcxLjkwNTVdCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDQ4OSAwIFI+PgovTWF0cml4IFswLjA3MTAgMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDEyOC45ODQ0IDY3Ny44Mjk2XT4+CmVuZG9iagoKNDkwIDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCtjY2LGxsQplbmRzdHJlYW0KZW5kb2JqCgoxNzUgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbMjc1LjcyNjggNTcxLjkwNTUgMzUyLjI3MjUgNTcxLjkwNTVdCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDQ5MCAwIFI+PgovTWF0cml4IFswLjA3MTAgMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDEzMi42MzA3IDY1OC43NDY5XT4+CmVuZG9iagoKNDkxIDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCtjY2LGxsQplbmRzdHJlYW0KZW5kb2JqCgo3MiAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFsyNzUuNzI2OCA1NzEuOTA1NSAzNTIuMjcyNSA1NzEuOTA1NV0KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gNDkxIDAgUj4+Ci9NYXRyaXggWzAuMDcxMCAwLjAwMDAgMC4wMDAwIC0wLjA3MDggMTM3LjcyNTkgNjk2LjczNzddPj4KZW5kb2JqCgo0OTIgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0K2NjYsbGxCmVuZHN0cmVhbQplbmRvYmoKCjQ0IDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzI3NS43MjY4IDU3MS45MDU1IDM1Mi4yNzI1IDU3MS45MDU1XQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA0OTIgMCBSPj4KL01hdHJpeCBbMC4wNzEwIDAuMDAwMCAwLjAwMDAgLTAuMDcwOCAxMzcuNzgyMiA3MTkuNTg4M10+PgplbmRvYmoKCjQ5MyAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrY2NixsbEKZW5kc3RyZWFtCmVuZG9iagoKMjMzIDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzI3NS43MjY4IDU3MS45MDU1IDM1Mi4yNzI1IDU3MS45MDU1XQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA0OTMgMCBSPj4KL01hdHJpeCBbMC4wNzEwIDAuMDAwMCAwLjAwMDAgLTAuMDcwOCAxNDEuNDQwNSA2MzkuNDk1MV0+PgplbmRvYmoKCjQ5NCAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrY2NixsbEKZW5kc3RyZWFtCmVuZG9iagoKMTI2IDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzI3NS43MjY4IDU3MS45MDU1IDM1Mi4yNzI1IDU3MS45MDU1XQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA0OTQgMCBSPj4KL01hdHJpeCBbMC4wNzEwIDAuMDAwMCAwLjAwMDAgLTAuMDcwOCAxNDcuOTM1NyA2NzcuODI5Nl0+PgplbmRvYmoKCjQ5NSAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrY2NixsbEKZW5kc3RyZWFtCmVuZG9iagoKMTgwIDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzI3NS43MjY4IDU3MS45MDU1IDM1Mi4yNzI1IDU3MS45MDU1XQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA0OTUgMCBSPj4KL01hdHJpeCBbMC4wNzEwIDAuMDAwMCAwLjAwMDAgLTAuMDcwOCAxNTEuNTgyMSA2NTguNzQ2OV0+PgplbmRvYmoKCjQ5NiAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrY2NixsbEKZW5kc3RyZWFtCmVuZG9iagoKNzYgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbMjc1LjcyNjggNTcxLjkwNTUgMzUyLjI3MjUgNTcxLjkwNTVdCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDQ5NiAwIFI+PgovTWF0cml4IFswLjA3MTAgMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDE1Ni42NzcyIDY5Ni43Mzc3XT4+CmVuZG9iagoKNDk3IDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCtjY2LGxsQplbmRzdHJlYW0KZW5kb2JqCgo4OCAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFsyNzUuNzI2OCA1NzEuOTA1NSAzNTIuMjcyNSA1NzEuOTA1NV0KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gNDk3IDAgUj4+Ci9NYXRyaXggWzAuMDcxMCAwLjAwMDAgMC4wMDAwIC0wLjA3MDggMTU2Ljc3ODAgNzE5LjU4ODNdPj4KZW5kb2JqCgo0OTggMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0K2NjYsbGxCmVuZHN0cmVhbQplbmRvYmoKCjIzNyAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFsyNzUuNzI2OCA1NzEuOTA1NSAzNTIuMjcyNSA1NzEuOTA1NV0KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gNDk4IDAgUj4+Ci9NYXRyaXggWzAuMDcxMCAwLjAwMDAgMC4wMDAwIC0wLjA3MDggMTYwLjM5MTggNjM5LjQ5NTFdPj4KZW5kb2JqCgo0OTkgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0K2NjYsbGxCmVuZHN0cmVhbQplbmRvYmoKCjEzMCAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFsyNzUuNzI2OCA1NzEuOTA1NSAzNTIuMjcyNSA1NzEuOTA1NV0KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gNDk5IDAgUj4+Ci9NYXRyaXggWzAuMDcxMCAwLjAwMDAgMC4wMDAwIC0wLjA3MDggMTY2Ljg4NzEgNjc3LjgyOTZdPj4KZW5kb2JqCgo1MDAgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0K2NjYsbGxCmVuZHN0cmVhbQplbmRvYmoKCjE4NCAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFsyNzUuNzI2OCA1NzEuOTA1NSAzNTIuMjcyNSA1NzEuOTA1NV0KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gNTAwIDAgUj4+Ci9NYXRyaXggWzAuMDcxMCAwLjAwMDAgMC4wMDAwIC0wLjA3MDggMTcwLjUzMzQgNjU4Ljc0NjldPj4KZW5kb2JqCgo1MDEgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0K2NjYsbGxCmVuZHN0cmVhbQplbmRvYmoKCjgxIDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzI3NS43MjY4IDU3MS45MDU1IDM1Mi4yNzI1IDU3MS45MDU1XQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA1MDEgMCBSPj4KL01hdHJpeCBbMC4wNzEwIDAuMDAwMCAwLjAwMDAgLTAuMDcwOCAxNzUuNjI4NiA2OTYuNzM3N10+PgplbmRvYmoKCjUwMiAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrY2NixsbEKZW5kc3RyZWFtCmVuZG9iagoKMTMyIDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzI3NS43MjY4IDU3MS45MDU1IDM1Mi4yNzI1IDU3MS45MDU1XQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA1MDIgMCBSPj4KL01hdHJpeCBbMC4wNzEwIDAuMDAwMCAwLjAwMDAgLTAuMDcwOCAxNzUuNzczOCA3MTkuNTg4M10+PgplbmRvYmoKCjUwMyAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrY2NixsbEKZW5kc3RyZWFtCmVuZG9iagoKMjQxIDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzI3NS43MjY4IDU3MS45MDU1IDM1Mi4yNzI1IDU3MS45MDU1XQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA1MDMgMCBSPj4KL01hdHJpeCBbMC4wNzEwIDAuMDAwMCAwLjAwMDAgLTAuMDcwOCAxNzkuMzQzMiA2MzkuNDk1MV0+PgplbmRvYmoKCjUwNCAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrY2NixsbEKZW5kc3RyZWFtCmVuZG9iagoKMTM1IDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzI3NS43MjY4IDU3MS45MDU1IDM1Mi4yNzI1IDU3MS45MDU1XQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA1MDQgMCBSPj4KL01hdHJpeCBbMC4wNzEwIDAuMDAwMCAwLjAwMDAgLTAuMDcwOCAxODUuODM4NCA2NzcuODI5Nl0+PgplbmRvYmoKCjUwNSAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrY2NixsbEKZW5kc3RyZWFtCmVuZG9iagoKMTg5IDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzI3NS43MjY4IDU3MS45MDU1IDM1Mi4yNzI1IDU3MS45MDU1XQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA1MDUgMCBSPj4KL01hdHJpeCBbMC4wNzEwIDAuMDAwMCAwLjAwMDAgLTAuMDcwOCAxODkuNDg0OCA2NTguNzQ2OV0+PgplbmRvYmoKCjUwNiAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrY2NixsbEKZW5kc3RyZWFtCmVuZG9iagoKODUgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbMjc1LjcyNjggNTcxLjkwNTUgMzUyLjI3MjUgNTcxLjkwNTVdCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDUwNiAwIFI+PgovTWF0cml4IFswLjA3MTAgMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDE5NC41Nzk5IDY5Ni43Mzc3XT4+CmVuZG9iagoKNTA3IDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCtjY2LGxsQplbmRzdHJlYW0KZW5kb2JqCgoyNDYgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbMjc1LjcyNjggNTcxLjkwNTUgMzUyLjI3MjUgNTcxLjkwNTVdCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDUwNyAwIFI+PgovTWF0cml4IFswLjA3MTAgMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDE5OC4yOTQ1IDYzOS40OTUxXT4+CmVuZG9iagoKNTA4IDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCtjY2LGxsQplbmRzdHJlYW0KZW5kb2JqCgoxMzkgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbMjc1LjcyNjggNTcxLjkwNTUgMzUyLjI3MjUgNTcxLjkwNTVdCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDUwOCAwIFI+PgovTWF0cml4IFswLjA3MTAgMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDIwNC43ODk3IDY3Ny44Mjk2XT4+CmVuZG9iagoKNTA5IDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCtjY2LGxsQplbmRzdHJlYW0KZW5kb2JqCgoxNzcgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbMjc1LjcyNjggNTcxLjkwNTUgMzUyLjI3MjUgNTcxLjkwNTVdCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDUwOSAwIFI+PgovTWF0cml4IFswLjA3MTAgMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDIwNC44NDA3IDcxOS41ODgzXT4+CmVuZG9iagoKNTEwIDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCtjY2LGxsQplbmRzdHJlYW0KZW5kb2JqCgoxOTMgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbMjc1LjcyNjggNTcxLjkwNTUgMzUyLjI3MjUgNTcxLjkwNTVdCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDUxMCAwIFI+PgovTWF0cml4IFswLjA3MTAgMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDIwOC40MzYxIDY1OC43NDY5XT4+CmVuZG9iagoKNTExIDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCtjY2LGxsQplbmRzdHJlYW0KZW5kb2JqCgo5MCAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFsyNzUuNzI2OCA1NzEuOTA1NSAzNTIuMjcyNSA1NzEuOTA1NV0KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gNTExIDAgUj4+Ci9NYXRyaXggWzAuMDcxMCAwLjAwMDAgMC4wMDAwIC0wLjA3MDggMjEzLjUzMTIgNjk2LjczNzddPj4KZW5kb2JqCgo1MTIgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0K2NjYsbGxCmVuZHN0cmVhbQplbmRvYmoKCjI1MCAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFsyNzUuNzI2OCA1NzEuOTA1NSAzNTIuMjcyNSA1NzEuOTA1NV0KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gNTEyIDAgUj4+Ci9NYXRyaXggWzAuMDcxMCAwLjAwMDAgMC4wMDAwIC0wLjA3MDggMjE3LjI0NTggNjM5LjQ5NTFdPj4KZW5kb2JqCgo1MTMgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0K2NjYsbGxCmVuZHN0cmVhbQplbmRvYmoKCjE0NSAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFsyNzUuNzI2OCA1NzEuOTA1NSAzNTIuMjcyNSA1NzEuOTA1NV0KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gNTEzIDAgUj4+Ci9NYXRyaXggWzAuMDcxMCAwLjAwMDAgMC4wMDAwIC0wLjA3MDggMjIzLjc0MTEgNjc3LjgyOTZdPj4KZW5kb2JqCgo1MTQgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0K2NjYsbGxCmVuZHN0cmVhbQplbmRvYmoKCjIyMSAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFsyNzUuNzI2OCA1NzEuOTA1NSAzNTIuMjcyNSA1NzEuOTA1NV0KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gNTE0IDAgUj4+Ci9NYXRyaXggWzAuMDcxMCAwLjAwMDAgMC4wMDAwIC0wLjA3MDggMjIzLjgzNjUgNzE5LjU4ODNdPj4KZW5kb2JqCgo1MTUgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0K2NjYsbGxCmVuZHN0cmVhbQplbmRvYmoKCjE5NyAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFsyNzUuNzI2OCA1NzEuOTA1NSAzNTIuMjcyNSA1NzEuOTA1NV0KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gNTE1IDAgUj4+Ci9NYXRyaXggWzAuMDcxMCAwLjAwMDAgMC4wMDAwIC0wLjA3MDggMjI3LjM4NzQgNjU4Ljc0NjldPj4KZW5kb2JqCgo1MTYgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0K2NjYsbGxCmVuZHN0cmVhbQplbmRvYmoKCjk0IDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzI3NS43MjY4IDU3MS45MDU1IDM1Mi4yNzI1IDU3MS45MDU1XQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA1MTYgMCBSPj4KL01hdHJpeCBbMC4wNzEwIDAuMDAwMCAwLjAwMDAgLTAuMDcwOCAyMzIuNDgyNiA2OTYuNzM3N10+PgplbmRvYmoKCjUxNyAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrY2NixsbEKZW5kc3RyZWFtCmVuZG9iagoKMjU2IDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzI3NS43MjY4IDU3MS45MDU1IDM1Mi4yNzI1IDU3MS45MDU1XQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA1MTcgMCBSPj4KL01hdHJpeCBbMC4wNzEwIDAuMDAwMCAwLjAwMDAgLTAuMDcwOCAyMzYuMTk3MiA2MzkuNDk1MV0+PgplbmRvYmoKCjUxOCAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrY2NixsbEKZW5kc3RyZWFtCmVuZG9iagoKMTQ5IDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzI3NS43MjY4IDU3MS45MDU1IDM1Mi4yNzI1IDU3MS45MDU1XQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA1MTggMCBSPj4KL01hdHJpeCBbMC4wNzEwIDAuMDAwMCAwLjAwMDAgLTAuMDcwOCAyNDIuNjkyNCA2NzcuODI5Nl0+PgplbmRvYmoKCjUxOSAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrY2NixsbEKZW5kc3RyZWFtCmVuZG9iagoKMjY2IDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzI3NS43MjY4IDU3MS45MDU1IDM1Mi4yNzI1IDU3MS45MDU1XQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA1MTkgMCBSPj4KL01hdHJpeCBbMC4wNzEwIDAuMDAwMCAwLjAwMDAgLTAuMDcwOCAyNDIuODMyMyA3MTkuNTg4M10+PgplbmRvYmoKCjUyMCAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrY2NixsbEKZW5kc3RyZWFtCmVuZG9iagoKMjAyIDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzI3NS43MjY4IDU3MS45MDU1IDM1Mi4yNzI1IDU3MS45MDU1XQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA1MjAgMCBSPj4KL01hdHJpeCBbMC4wNzEwIDAuMDAwMCAwLjAwMDAgLTAuMDcwOCAyNDYuMzM4OCA2NTguNzQ2OV0+PgplbmRvYmoKCjUyMSAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrY2NixsbEKZW5kc3RyZWFtCmVuZG9iagoKOTggMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbMjc1LjcyNjggNTcxLjkwNTUgMzUyLjI3MjUgNTcxLjkwNTVdCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDUyMSAwIFI+PgovTWF0cml4IFswLjA3MTAgMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDI1MS40MzM5IDY5Ni43Mzc3XT4+CmVuZG9iagoKNTIyIDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCtjY2LGxsQplbmRzdHJlYW0KZW5kb2JqCgoyNjAgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbMjc1LjcyNjggNTcxLjkwNTUgMzUyLjI3MjUgNTcxLjkwNTVdCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDUyMiAwIFI+PgovTWF0cml4IFswLjA3MTAgMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDI1NS4xNDg1IDYzOS40OTUxXT4+CmVuZG9iagoKNTIzIDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCtjY2LGxsQplbmRzdHJlYW0KZW5kb2JqCgoxNTMgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbMjc1LjcyNjggNTcxLjkwNTUgMzUyLjI3MjUgNTcxLjkwNTVdCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDUyMyAwIFI+PgovTWF0cml4IFswLjA3MTAgMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDI2MS42NDM3IDY3Ny44Mjk2XT4+CmVuZG9iagoKNTI0IDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCtjY2LGxsQplbmRzdHJlYW0KZW5kb2JqCgozMTAgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbMjc1LjcyNjggNTcxLjkwNTUgMzUyLjI3MjUgNTcxLjkwNTVdCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDUyNCAwIFI+PgovTWF0cml4IFswLjA3MTAgMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDI2MS44MjgxIDcxOS41ODgzXT4+CmVuZG9iagoKNTI1IDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCtjY2LGxsQplbmRzdHJlYW0KZW5kb2JqCgoyMDYgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbMjc1LjcyNjggNTcxLjkwNTUgMzUyLjI3MjUgNTcxLjkwNTVdCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDUyNSAwIFI+PgovTWF0cml4IFswLjA3MTAgMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDI2NS4yOTAxIDY1OC43NDY5XT4+CmVuZG9iagoKNTI2IDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCtjY2LGxsQplbmRzdHJlYW0KZW5kb2JqCgoxMDMgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbMjc1LjcyNjggNTcxLjkwNTUgMzUyLjI3MjUgNTcxLjkwNTVdCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDUyNiAwIFI+PgovTWF0cml4IFswLjA3MTAgMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDI3MC4zODUyIDY5Ni43Mzc3XT4+CmVuZG9iagoKNTI3IDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCtjY2LGxsQplbmRzdHJlYW0KZW5kb2JqCgoyNjQgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbMjc1LjcyNjggNTcxLjkwNTUgMzUyLjI3MjUgNTcxLjkwNTVdCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDUyNyAwIFI+PgovTWF0cml4IFswLjA3MTAgMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDI3NC4wOTk5IDYzOS40OTUxXT4+CmVuZG9iagoKNTI4IDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCtjY2LGxsQplbmRzdHJlYW0KZW5kb2JqCgoxNTggMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbMjc1LjcyNjggNTcxLjkwNTUgMzUyLjI3MjUgNTcxLjkwNTVdCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDUyOCAwIFI+PgovTWF0cml4IFswLjA3MTAgMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDI4MC41OTUxIDY3Ny44Mjk2XT4+CmVuZG9iagoKNTI5IDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCtjY2LGxsQplbmRzdHJlYW0KZW5kb2JqCgoyMTEgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbMjc1LjcyNjggNTcxLjkwNTUgMzUyLjI3MjUgNTcxLjkwNTVdCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDUyOSAwIFI+PgovTWF0cml4IFswLjA3MTAgMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDI4NC4yNDE1IDY1OC43NDY5XT4+CmVuZG9iagoKNTMwIDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCtjY2LGxsQplbmRzdHJlYW0KZW5kb2JqCgoxMDcgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbMjc1LjcyNjggNTcxLjkwNTUgMzUyLjI3MjUgNTcxLjkwNTVdCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDUzMCAwIFI+PgovTWF0cml4IFswLjA3MTAgMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDI4OS4zMzY2IDY5Ni43Mzc3XT4+CmVuZG9iagoKNTMxIDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCtjY2LGxsQplbmRzdHJlYW0KZW5kb2JqCgozNTQgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbMjc1LjcyNjggNTcxLjkwNTUgMzUyLjI3MjUgNTcxLjkwNTVdCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDUzMSAwIFI+PgovTWF0cml4IFswLjA3MTAgMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDI4OS40MzY1IDcxOS41ODgzXT4+CmVuZG9iagoKNTMyIDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCtjY2LGxsQplbmRzdHJlYW0KZW5kb2JqCgoyNjkgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbMjc1LjcyNjggNTcxLjkwNTUgMzUyLjI3MjUgNTcxLjkwNTVdCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDUzMiAwIFI+PgovTWF0cml4IFswLjA3MTAgMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDI5My4wNTEyIDYzOS40OTUxXT4+CmVuZG9iagoKNTMzIDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCtjY2LGxsQplbmRzdHJlYW0KZW5kb2JqCgoxNjIgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbMjc1LjcyNjggNTcxLjkwNTUgMzUyLjI3MjUgNTcxLjkwNTVdCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDUzMyAwIFI+PgovTWF0cml4IFswLjA3MTAgMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDI5OS41NDY0IDY3Ny44Mjk2XT4+CmVuZG9iagoKNTM0IDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCtjY2LGxsQplbmRzdHJlYW0KZW5kb2JqCgoyMTUgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbMjc1LjcyNjggNTcxLjkwNTUgMzUyLjI3MjUgNTcxLjkwNTVdCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDUzNCAwIFI+PgovTWF0cml4IFswLjA3MTAgMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDMwMy4xOTI4IDY1OC43NDY5XT4+CmVuZG9iagoKNTM1IDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCtjY2LGxsQplbmRzdHJlYW0KZW5kb2JqCgoxMTIgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbMjc1LjcyNjggNTcxLjkwNTUgMzUyLjI3MjUgNTcxLjkwNTVdCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDUzNSAwIFI+PgovTWF0cml4IFswLjA3MTAgMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDMwOC4yODc5IDY5Ni43Mzc3XT4+CmVuZG9iagoKNTM2IDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCtjY2LGxsQplbmRzdHJlYW0KZW5kb2JqCgozOTkgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbMjc1LjcyNjggNTcxLjkwNTUgMzUyLjI3MjUgNTcxLjkwNTVdCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDUzNiAwIFI+PgovTWF0cml4IFswLjA3MTAgMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDMwOC40MzIzIDcxOS41ODgzXT4+CmVuZG9iagoKNTM3IDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCtjY2LGxsQplbmRzdHJlYW0KZW5kb2JqCgoxNjcgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbMjc1LjcyNjggNTcxLjkwNTUgMzUyLjI3MjUgNTcxLjkwNTVdCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDUzNyAwIFI+PgovTWF0cml4IFswLjA3MTAgMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDMxOC40OTc3IDY3Ny44Mjk2XT4+CmVuZG9iagoKNTM4IDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCtjY2LGxsQplbmRzdHJlYW0KZW5kb2JqCgoyMTkgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbMjc1LjcyNjggNTcxLjkwNTUgMzUyLjI3MjUgNTcxLjkwNTVdCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDUzOCAwIFI+PgovTWF0cml4IFswLjA3MTAgMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDMyMi4xNDQxIDY1OC43NDY5XT4+CmVuZG9iagoKNTM5IDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCtjY2LGxsQplbmRzdHJlYW0KZW5kb2JqCgo0MTMgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbMjc1LjcyNjggNTcxLjkwNTUgMzUyLjI3MjUgNTcxLjkwNTVdCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDUzOSAwIFI+PgovTWF0cml4IFswLjA3MTAgMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDMyNy40MjgxIDcxOS41ODgzXT4+CmVuZG9iagoKNTQwIDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCtjY2LGxsQplbmRzdHJlYW0KZW5kb2JqCgo0MTggMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbMjc1LjcyNjggNTcxLjkwNTUgMzUyLjI3MjUgNTcxLjkwNTVdCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDU0MCAwIFI+PgovTWF0cml4IFswLjA3MTAgMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDM0Ni40MjM5IDcxOS41ODgzXT4+CmVuZG9iagoKNTQxIDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCtjY2LGxsQplbmRzdHJlYW0KZW5kb2JqCgo0NDAgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbMjc1LjcyNjggNTcxLjkwNTUgMzUyLjI3MjUgNTcxLjkwNTVdCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDU0MSAwIFI+PgovTWF0cml4IFswLjA3MTAgMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDM2OC45NjIwIDY5Ni43Mzc3XT4+CmVuZG9iagoKNTQyIDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCtjY2LGxsQplbmRzdHJlYW0KZW5kb2JqCgo0NTMgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbMjc1LjcyNjggNTcxLjkwNTUgMzUyLjI3MjUgNTcxLjkwNTVdCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDU0MiAwIFI+PgovTWF0cml4IFswLjA3MTAgMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDM2OC45NjIwIDY3Ny43NzY2XT4+CmVuZG9iagoKNTQzIDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCtjY2LGxsQplbmRzdHJlYW0KZW5kb2JqCgo0NjYgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbMjc1LjcyNjggNTcxLjkwNTUgMzUyLjI3MjUgNTcxLjkwNTVdCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDU0MyAwIFI+PgovTWF0cml4IFswLjA3MTAgMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDM2OC45NjIwIDY1OC44MTU0XT4+CmVuZG9iagoKNTQ0IDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCtjY2LGxsQplbmRzdHJlYW0KZW5kb2JqCgo0MSAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFsyNzUuNzI2OCA1NzEuOTA1NSAzNTIuMjcyNSA1NzEuOTA1NV0KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gNTQ0IDAgUj4+Ci9NYXRyaXggWzAuMDcxMCAwLjAwMDAgMC4wMDAwIC0wLjA3MDggMzY4Ljk2MjAgNjIwLjY1MDFdPj4KZW5kb2JqCgo1NDUgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0K2NjYsbGxCmVuZHN0cmVhbQplbmRvYmoKCjQyNiAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFsyNzUuNzI2OCA1NzEuOTA1NSAzNTIuMjcyNSA1NzEuOTA1NV0KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gNTQ1IDAgUj4+Ci9NYXRyaXggWzAuMDcxMCAwLjAwMDAgMC4wMDAwIC0wLjA3MDggMzY5LjIwNTEgNzE5LjU4ODNdPj4KZW5kb2JqCgo1NDYgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0K2NjYsbGxCmVuZHN0cmVhbQplbmRvYmoKCjQ0NCAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFsyNzUuNzI2OCA1NzEuOTA1NSAzNTIuMjcyNSA1NzEuOTA1NV0KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gNTQ2IDAgUj4+Ci9NYXRyaXggWzAuMDcxMCAwLjAwMDAgMC4wMDAwIC0wLjA3MDggMzg3Ljk1NzggNjk2LjczNzddPj4KZW5kb2JqCgo1NDcgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0K2NjYsbGxCmVuZHN0cmVhbQplbmRvYmoKCjQ1NyAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFsyNzUuNzI2OCA1NzEuOTA1NSAzNTIuMjcyNSA1NzEuOTA1NV0KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gNTQ3IDAgUj4+Ci9NYXRyaXggWzAuMDcxMCAwLjAwMDAgMC4wMDAwIC0wLjA3MDggMzg3Ljk1NzggNjc3Ljc3NjZdPj4KZW5kb2JqCgo1NDggMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0K2NjYsbGxCmVuZHN0cmVhbQplbmRvYmoKCjQ3MCAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFsyNzUuNzI2OCA1NzEuOTA1NSAzNTIuMjcyNSA1NzEuOTA1NV0KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gNTQ4IDAgUj4+Ci9NYXRyaXggWzAuMDcxMCAwLjAwMDAgMC4wMDAwIC0wLjA3MDggMzg3Ljk1NzggNjU4LjgxNTRdPj4KZW5kb2JqCgo1NDkgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0K2NjYsbGxCmVuZHN0cmVhbQplbmRvYmoKCjU0IDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzI3NS43MjY4IDU3MS45MDU1IDM1Mi4yNzI1IDU3MS45MDU1XQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA1NDkgMCBSPj4KL01hdHJpeCBbMC4wNzEwIDAuMDAwMCAwLjAwMDAgLTAuMDcwOCAzODcuOTU3OCA2NDAuMDk3NF0+PgplbmRvYmoKCjU1MCAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrY2NixsbEKZW5kc3RyZWFtCmVuZG9iagoKNDYgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbMjc1LjcyNjggNTcxLjkwNTUgMzUyLjI3MjUgNTcxLjkwNTVdCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDU1MCAwIFI+PgovTWF0cml4IFswLjA3MTAgMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDM4Ny45NTc4IDYyMC42NTAxXT4+CmVuZG9iagoKNTUxIDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCtjY2LGxsQplbmRzdHJlYW0KZW5kb2JqCgo0MzEgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbMjc1LjcyNjggNTcxLjkwNTUgMzUyLjI3MjUgNTcxLjkwNTVdCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDU1MSAwIFI+PgovTWF0cml4IFswLjA3MTAgMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDM4OC4yMDA5IDcxOS41ODgzXT4+CmVuZG9iagoKNTUyIDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCtjY2LGxsQplbmRzdHJlYW0KZW5kb2JqCgo0NDggMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbMjc1LjcyNjggNTcxLjkwNTUgMzUyLjI3MjUgNTcxLjkwNTVdCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDU1MiAwIFI+PgovTWF0cml4IFswLjA3MTAgMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDQwNi45NTM3IDY5Ni43Mzc3XT4+CmVuZG9iagoKNTUzIDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCtjY2LGxsQplbmRzdHJlYW0KZW5kb2JqCgo0NjIgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbMjc1LjcyNjggNTcxLjkwNTUgMzUyLjI3MjUgNTcxLjkwNTVdCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDU1MyAwIFI+PgovTWF0cml4IFswLjA3MTAgMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDQwNi45NTM3IDY3Ny43NzY2XT4+CmVuZG9iagoKNTU0IDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCtjY2LGxsQplbmRzdHJlYW0KZW5kb2JqCgozNyAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFsyNzUuNzI2OCA1NzEuOTA1NSAzNTIuMjcyNSA1NzEuOTA1NV0KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gNTU0IDAgUj4+Ci9NYXRyaXggWzAuMDcxMCAwLjAwMDAgMC4wMDAwIC0wLjA3MDggNDA2Ljk1MzcgNjU4LjgxNTRdPj4KZW5kb2JqCgo1NTUgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0K2NjYsbGxCmVuZHN0cmVhbQplbmRvYmoKCjUwIDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzI3NS43MjY4IDU3MS45MDU1IDM1Mi4yNzI1IDU3MS45MDU1XQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA1NTUgMCBSPj4KL01hdHJpeCBbMC4wNzEwIDAuMDAwMCAwLjAwMDAgLTAuMDcwOCA0MDYuOTUzNyA2MjAuNjUwMV0+PgplbmRvYmoKCjU1NiAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrY2NixsbEKZW5kc3RyZWFtCmVuZG9iagoKNDM1IDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzI3NS43MjY4IDU3MS45MDU1IDM1Mi4yNzI1IDU3MS45MDU1XQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA1NTYgMCBSPj4KL01hdHJpeCBbMC4wNzEwIDAuMDAwMCAwLjAwMDAgLTAuMDcwOCA0MDcuMTk2NyA3MTkuNTg4M10+PgplbmRvYmoKCjU1NyAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrY2NixsbEKZW5kc3RyZWFtCmVuZG9iagoKMjc4IDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzI3NS43MjY4IDU3MS45MDU1IDM1Mi4yNzI1IDU3MS45MDU1XQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA1NTcgMCBSPj4KL01hdHJpeCBbMC4wNzEwIDAuMDAwMCAwLjAwMDAgLTAuMDcwOCA0MzAuNDY0MSA2OTYuNzM3N10+PgplbmRvYmoKCjU1OCAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrY2NixsbEKZW5kc3RyZWFtCmVuZG9iagoKMjk1IDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzI3NS43MjY4IDU3MS45MDU1IDM1Mi4yNzI1IDU3MS45MDU1XQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA1NTggMCBSPj4KL01hdHJpeCBbMC4wNzEwIDAuMDAwMCAwLjAwMDAgLTAuMDcwOCA0MzAuNDY0MSA2NzcuNzE1OF0+PgplbmRvYmoKCjU1OSAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrY2NixsbEKZW5kc3RyZWFtCmVuZG9iagoKMzA4IDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzI3NS43MjY4IDU3MS45MDU1IDM1Mi4yNzI1IDU3MS45MDU1XQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA1NTkgMCBSPj4KL01hdHJpeCBbMC4wNzEwIDAuMDAwMCAwLjAwMDAgLTAuMDcwOCA0MzAuNDY0MSA2NTguNjkzOV0+PgplbmRvYmoKCjU2MCAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrY2NixsbEKZW5kc3RyZWFtCmVuZG9iagoKMzI2IDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzI3NS43MjY4IDU3MS45MDU1IDM1Mi4yNzI1IDU3MS45MDU1XQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA1NjAgMCBSPj4KL01hdHJpeCBbMC4wNzEwIDAuMDAwMCAwLjAwMDAgLTAuMDcwOCA0MzAuNDY0MSA2MzkuNjcyMF0+PgplbmRvYmoKCjU2MSAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrY2NixsbEKZW5kc3RyZWFtCmVuZG9iagoKMjgyIDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzI3NS43MjY4IDU3MS45MDU1IDM1Mi4yNzI1IDU3MS45MDU1XQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA1NjEgMCBSPj4KL01hdHJpeCBbMC4wNzEwIDAuMDAwMCAwLjAwMDAgLTAuMDcwOCA0NDkuMjA1MyA2OTYuNzM3N10+PgplbmRvYmoKCjU2MiAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrY2NixsbEKZW5kc3RyZWFtCmVuZG9iagoKMzAwIDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzI3NS43MjY4IDU3MS45MDU1IDM1Mi4yNzI1IDU3MS45MDU1XQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA1NjIgMCBSPj4KL01hdHJpeCBbMC4wNzEwIDAuMDAwMCAwLjAwMDAgLTAuMDcwOCA0NDkuMjA1MyA2NzcuNzE1OF0+PgplbmRvYmoKCjU2MyAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrY2NixsbEKZW5kc3RyZWFtCmVuZG9iagoKMzEzIDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzI3NS43MjY4IDU3MS45MDU1IDM1Mi4yNzI1IDU3MS45MDU1XQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA1NjMgMCBSPj4KL01hdHJpeCBbMC4wNzEwIDAuMDAwMCAwLjAwMDAgLTAuMDcwOCA0NDkuMjA1MyA2NTguNjkzOV0+PgplbmRvYmoKCjU2NCAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrY2NixsbEKZW5kc3RyZWFtCmVuZG9iagoKMzMwIDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzI3NS43MjY4IDU3MS45MDU1IDM1Mi4yNzI1IDU3MS45MDU1XQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA1NjQgMCBSPj4KL01hdHJpeCBbMC4wNzEwIDAuMDAwMCAwLjAwMDAgLTAuMDcwOCA0NDkuMjA1MyA2MzkuNjcyMF0+PgplbmRvYmoKCjU2NSAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrY2NixsbEKZW5kc3RyZWFtCmVuZG9iagoKMjg2IDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzI3NS43MjY4IDU3MS45MDU1IDM1Mi4yNzI1IDU3MS45MDU1XQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA1NjUgMCBSPj4KL01hdHJpeCBbMC4wNzEwIDAuMDAwMCAwLjAwMDAgLTAuMDcwOCA0NjcuOTQ2NCA2OTYuNzM3N10+PgplbmRvYmoKCjU2NiAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrY2NixsbEKZW5kc3RyZWFtCmVuZG9iagoKMzA0IDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzI3NS43MjY4IDU3MS45MDU1IDM1Mi4yNzI1IDU3MS45MDU1XQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA1NjYgMCBSPj4KL01hdHJpeCBbMC4wNzEwIDAuMDAwMCAwLjAwMDAgLTAuMDcwOCA0NjcuOTQ2NCA2NzcuNzE1OF0+PgplbmRvYmoKCjU2NyAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrY2NixsbEKZW5kc3RyZWFtCmVuZG9iagoKMzE3IDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzI3NS43MjY4IDU3MS45MDU1IDM1Mi4yNzI1IDU3MS45MDU1XQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA1NjcgMCBSPj4KL01hdHJpeCBbMC4wNzEwIDAuMDAwMCAwLjAwMDAgLTAuMDcwOCA0NjcuOTQ2NCA2NTguNjkzOV0+PgplbmRvYmoKCjU2OCAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrY2NixsbEKZW5kc3RyZWFtCmVuZG9iagoKMzM1IDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzI3NS43MjY4IDU3MS45MDU1IDM1Mi4yNzI1IDU3MS45MDU1XQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA1NjggMCBSPj4KL01hdHJpeCBbMC4wNzEwIDAuMDAwMCAwLjAwMDAgLTAuMDcwOCA0NjcuOTQ2NCA2MzkuNjcyMF0+PgplbmRvYmoKCjU2OSAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrY2NixsbEKZW5kc3RyZWFtCmVuZG9iagoKMzQ0IDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzI3NS43MjY4IDU3MS45MDU1IDM1Mi4yNzI1IDU3MS45MDU1XQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA1NjkgMCBSPj4KL01hdHJpeCBbMC4wNzEwIDAuMDAwMCAwLjAwMDAgLTAuMDcwOCA0NjcuOTQ2NCA2MjAuNjUwMV0+PgplbmRvYmoKCjU3MCAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrY2NixsbEKZW5kc3RyZWFtCmVuZG9iagoKMjkxIDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzI3NS43MjY4IDU3MS45MDU1IDM1Mi4yNzI1IDU3MS45MDU1XQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA1NzAgMCBSPj4KL01hdHJpeCBbMC4wNzEwIDAuMDAwMCAwLjAwMDAgLTAuMDcwOCA0ODYuNjg3NiA2OTYuNzM3N10+PgplbmRvYmoKCjU3MSAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrY2NixsbEKZW5kc3RyZWFtCmVuZG9iagoKMzQ4IDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzI3NS43MjY4IDU3MS45MDU1IDM1Mi4yNzI1IDU3MS45MDU1XQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA1NzEgMCBSPj4KL01hdHJpeCBbMC4wNzEwIDAuMDAwMCAwLjAwMDAgLTAuMTY4OCA0ODYuNjg3NiA2ODYuMTc2M10+PgplbmRvYmoKCjU3MiAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrY2NixsbEKZW5kc3RyZWFtCmVuZG9iagoKMzIyIDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzI3NS43MjY4IDU3MS45MDU1IDM1Mi4yNzI1IDU3MS45MDU1XQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA1NzIgMCBSPj4KL01hdHJpeCBbMC4wNzEwIDAuMDAwMCAwLjAwMDAgLTAuMTY5MSA0ODYuNjg3NiA3MjQuNDMwMV0+PgplbmRvYmoKCjU3MyAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrY2NixsbEKZW5kc3RyZWFtCmVuZG9iagoKMzc4IDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzI3NS43MjY4IDU3MS45MDU1IDM1Mi4yNzI1IDU3MS45MDU1XQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA1NzMgMCBSPj4KL01hdHJpeCBbMC4wOTE1IDAuMDAwMCAwLjAwMDAgLTAuMDcwOCA3Ni40OTA2IDYyMC41ODcwXT4+CmVuZG9iagoKNTc0IDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCtjY2LGxsQplbmRzdHJlYW0KZW5kb2JqCgozODIgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbMjc1LjcyNjggNTcxLjkwNTUgMzUyLjI3MjUgNTcxLjkwNTVdCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDU3NCAwIFI+PgovTWF0cml4IFswLjA5MTUgMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDk5LjQ2MjcgNjIwLjU4NzBdPj4KZW5kb2JqCgo1NzUgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0K2NjYsbGxCmVuZHN0cmVhbQplbmRvYmoKCjM4NiAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFsyNzUuNzI2OCA1NzEuOTA1NSAzNTIuMjcyNSA1NzEuOTA1NV0KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gNTc1IDAgUj4+Ci9NYXRyaXggWzAuMDkxNSAwLjAwMDAgMC4wMDAwIC0wLjA3MDggMTIyLjY3NzkgNjIwLjU4NzBdPj4KZW5kb2JqCgo1NzYgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0K2NjYsbGxCmVuZHN0cmVhbQplbmRvYmoKCjM5NSAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFsyNzUuNzI2OCA1NzEuOTA1NSAzNTIuMjcyNSA1NzEuOTA1NV0KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gNTc2IDAgUj4+Ci9NYXRyaXggWzAuMDkxNSAwLjAwMDAgMC4wMDAwIC0wLjA3MDggMjY4Ljc3NTggNjIwLjU4NzBdPj4KZW5kb2JqCgo1NzcgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0K2NjYsbGxCmVuZHN0cmVhbQplbmRvYmoKCjQwOCAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFsyNzUuNzI2OCA1NzEuOTA1NSAzNTIuMjcyNSA1NzEuOTA1NV0KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gNTc3IDAgUj4+Ci9NYXRyaXggWzAuMDkxNSAwLjAwMDAgMC4wMDAwIC0wLjA3MDggMjkxLjc5MTEgNjIwLjU4NzBdPj4KZW5kb2JqCgo1NzggMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0K2NjYsbGxCmVuZHN0cmVhbQplbmRvYmoKCjQwNCAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFsyNzUuNzI2OCA1NzEuOTA1NSAzNTIuMjcyNSA1NzEuOTA1NV0KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gNTc4IDAgUj4+Ci9NYXRyaXggWzAuMDkxNSAwLjAwMDAgMC4wMDAwIC0wLjA3MDggMzE0LjkwNDQgNjIwLjU4NzBdPj4KZW5kb2JqCgo1NzkgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0K2NjYsbGxCmVuZHN0cmVhbQplbmRvYmoKCjQwMCAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFsyNzUuNzI2OCA1NzEuOTA1NSAzNTIuMjcyNSA1NzEuOTA1NV0KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gNTc5IDAgUj4+Ci9NYXRyaXggWzAuMDkxNSAwLjAwMDAgMC4wMDAwIC0wLjA3MDggMzM4LjAxNzcgNjIwLjU4NzBdPj4KZW5kb2JqCgo1ODAgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0K2NjYsbGxCmVuZHN0cmVhbQplbmRvYmoKCjM1OCAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFsyNzUuNzI2OCA1NzEuOTA1NSAzNTIuMjcyNSA1NzEuOTA1NV0KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gNTgwIDAgUj4+Ci9NYXRyaXggWzAuMDkyNyAwLjAwMDAgMC4wMDAwIC0wLjA3MDggNzYuMDYyMyA2MzkuNDk1MV0+PgplbmRvYmoKCjU4MSAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrY2NixsbEKZW5kc3RyZWFtCmVuZG9iagoKMzY5IDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzI3NS43MjY4IDU3MS45MDU1IDM1Mi4yNzI1IDU3MS45MDU1XQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA1ODEgMCBSPj4KL01hdHJpeCBbMC4wOTQ2IDAuMDAwMCAwLjAwMDAgLTAuMTY4OCAzMzcuMDQ5MyA3MjQuMzk0Nl0+PgplbmRvYmoKCjU4MiAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrY2NixsbEKZW5kc3RyZWFtCmVuZG9iagoKMzczIDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzI3NS43MjY4IDU3MS45MDU1IDM1Mi4yNzI1IDU3MS45MDU1XQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA1ODIgMCBSPj4KL01hdHJpeCBbMC4xMTA3IDAuMDAwMCAwLjAwMDAgLTAuMDcwOCA3Mi4wMTk3IDY1OC43NDY5XT4+CmVuZG9iagoKNTgzIDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCtjY2LGxsQplbmRzdHJlYW0KZW5kb2JqCgozNTIgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbMjc1LjcyNjggNTcxLjkwNTUgMzUyLjI3MjUgNTcxLjkwNTVdCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDU4MyAwIFI+PgovTWF0cml4IFswLjEyNTQgMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDY4Ljc3MTUgNjc3LjgyOTZdPj4KZW5kb2JqCgo1ODQgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0K2NjYsbGxCmVuZHN0cmVhbQplbmRvYmoKCjMzOSAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFsyNzUuNzI2OCA1NzEuOTA1NSAzNTIuMjcyNSA1NzEuOTA1NV0KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gNTg0IDAgUj4+Ci9NYXRyaXggWzAuMTc5MCAwLjAwMDAgMC4wMDAwIC0wLjA3MDggNDA2LjI4NjQgNjIwLjY1MDFdPj4KZW5kb2JqCgo1ODUgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0K2NjYsbGxCmVuZHN0cmVhbQplbmRvYmoKCjM2MiAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFsyNzUuNzI2OCA1NzEuOTA1NSAzNTIuMjcyNSA1NzEuOTA1NV0KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gNTg1IDAgUj4+Ci9NYXRyaXggWzAuMTgxNyAwLjAwMDAgMC4wMDAwIC0wLjA3MDggMzAyLjg4ODggNjk2LjczNzddPj4KZW5kb2JqCgo1ODYgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0K2NjYsbGxCmVuZHN0cmVhbQplbmRvYmoKCjI3MyAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFsyNzUuNzI2OCA1NzEuOTA1NSAzNTIuMjcyNSA1NzEuOTA1NV0KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gNTg2IDAgUj4+Ci9NYXRyaXggWzAuMjcyMiAwLjAwMDAgMC4wMDAwIC0wLjA3MDggMjY2Ljk0MDkgNjM5LjQ5NTFdPj4KZW5kb2JqCgo1ODcgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0K2NjYsbGxCmVuZHN0cmVhbQplbmRvYmoKCjM5MSAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFsyNzUuNzI2OCA1NzEuOTA1NSAzNTIuMjcyNSA1NzEuOTA1NV0KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gNTg3IDAgUj4+Ci9NYXRyaXggWzAuNjc5NCAwLjAwMDAgMC4wMDAwIC0wLjA3MDggMTQuMTExMyA2MjAuNTg3MF0+PgplbmRvYmoKCjU4OCAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQplZWWTk5MKZW5kc3RyZWFtCmVuZG9iagoKMzYzIDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzMzMi45MTYwIDUyMC4zMzMxIDM1NS44MTg2IDUzNS45OTA0XQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA1ODggMCBSPj4KL01hdHJpeCBbLTAuMDcxMCAtMC4wMDAwIDAuMDAwMCAwLjAzNDIgMzgxLjA5NjggNjA5LjI4MDFdPj4KZW5kb2JqCgo1ODkgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0KZWVlk5OTCmVuZHN0cmVhbQplbmRvYmoKCjExMyAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFszMzIuOTE2MCA1MjAuMzMzMSAzNTUuODE4NiA1MzUuOTkwNF0KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gNTg5IDAgUj4+Ci9NYXRyaXggWzAuMDcxMCAwLjAwMDAgMC4wMDAwIC0wLjAzNDIgMzI4LjM4NjYgNjQ1Ljk4ODRdPj4KZW5kb2JqCgo1OTAgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0KZWVlk5OTCmVuZHN0cmVhbQplbmRvYmoKCjM3NiAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFszMzIuOTE2MCA1MjAuMzMzMSAzNTUuODE4NiA1MzUuOTkwNF0KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gNTkwIDAgUj4+Ci9NYXRyaXggWzAuMDcxMCAwLjAwMDAgMC4wMDAwIC0wLjA3MDggNzEuNzMyMyA2MDkuNDM3NF0+PgplbmRvYmoKCjU5MSAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQplZWWTk5MKZW5kc3RyZWFtCmVuZG9iagoKNTggMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbMzMyLjkxNjAgNTIwLjMzMzEgMzU1LjgxODYgNTM1Ljk5MDRdCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDU5MSAwIFI+PgovTWF0cml4IFswLjA3MTAgMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDcxLjc3NDkgNjg1LjU4ODBdPj4KZW5kb2JqCgo1OTIgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0KZWVlk5OTCmVuZHN0cmVhbQplbmRvYmoKCjM1NyAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFszMzIuOTE2MCA1MjAuMzMzMSAzNTUuODE4NiA1MzUuOTkwNF0KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gNTkyIDAgUj4+Ci9NYXRyaXggWzAuMDcxMCAwLjAwMDAgMC4wMDAwIC0wLjA3MDggNzEuODA4OSA2MjguMzQ1NV0+PgplbmRvYmoKCjU5MyAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQplZWWTk5MKZW5kc3RyZWFtCmVuZG9iagoKMzUzIDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzMzMi45MTYwIDUyMC4zMzMxIDM1NS44MTg2IDUzNS45OTA0XQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA1OTMgMCBSPj4KL01hdHJpeCBbMC4wNzEwIDAuMDAwMCAwLjAwMDAgLTAuMDcwOCA3MS44MDkyIDY0Ny41OTczXT4+CmVuZG9iagoKNTk0IDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCmVlZZOTkwplbmRzdHJlYW0KZW5kb2JqCgozNTEgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbMzMyLjkxNjAgNTIwLjMzMzEgMzU1LjgxODYgNTM1Ljk5MDRdCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDU5NCAwIFI+PgovTWF0cml4IFswLjA3MTAgMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDcxLjg0MzQgNjY2LjY4MDBdPj4KZW5kb2JqCgo1OTUgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0KZWVlk5OTCmVuZHN0cmVhbQplbmRvYmoKCjQyMSAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFszMzIuOTE2MCA1MjAuMzMzMSAzNTUuODE4NiA1MzUuOTkwNF0KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gNTk1IDAgUj4+Ci9NYXRyaXggWzAuMDcxMCAwLjAwMDAgMC4wMDAwIC0wLjA3MDggNzIuMjE3MSA3MDguNDM4Nl0+PgplbmRvYmoKCjU5NiAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQplZWWTk5MKZW5kc3RyZWFtCmVuZG9iagoKNjIgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbMzMyLjkxNjAgNTIwLjMzMzEgMzU1LjgxODYgNTM1Ljk5MDRdCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDU5NiAwIFI+PgovTWF0cml4IFswLjA3MTAgMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDkwLjcyNjIgNjg1LjU4ODBdPj4KZW5kb2JqCgo1OTcgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0KZWVlk5OTCmVuZHN0cmVhbQplbmRvYmoKCjIyMyAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFszMzIuOTE2MCA1MjAuMzMzMSAzNTUuODE4NiA1MzUuOTkwNF0KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gNTk3IDAgUj4+Ci9NYXRyaXggWzAuMDcxMCAwLjAwMDAgMC4wMDAwIC0wLjA3MDggOTQuNDQwOCA2MjguMzQ1NV0+PgplbmRvYmoKCjU5OCAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQplZWWTk5MKZW5kc3RyZWFtCmVuZG9iagoKMzgxIDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzMzMi45MTYwIDUyMC4zMzMxIDM1NS44MTg2IDUzNS45OTA0XQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA1OTggMCBSPj4KL01hdHJpeCBbMC4wNzEwIDAuMDAwMCAwLjAwMDAgLTAuMDcwOCA5NC43MDQ1IDYwOS40Mzc0XT4+CmVuZG9iagoKNTk5IDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCmVlZZOTkwplbmRzdHJlYW0KZW5kb2JqCgoxMTYgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbMzMyLjkxNjAgNTIwLjMzMzEgMzU1LjgxODYgNTM1Ljk5MDRdCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDU5OSAwIFI+PgovTWF0cml4IFswLjA3MTAgMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDEwMC45MzYxIDY2Ni42ODAwXT4+CmVuZG9iagoKNjAwIDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCmVlZZOTkwplbmRzdHJlYW0KZW5kb2JqCgoxNzAgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbMzMyLjkxNjAgNTIwLjMzMzEgMzU1LjgxODYgNTM1Ljk5MDRdCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDYwMCAwIFI+PgovTWF0cml4IFswLjA3MTAgMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDEwNC41ODI0IDY0Ny41OTczXT4+CmVuZG9iagoKNjAxIDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCmVlZZOTkwplbmRzdHJlYW0KZW5kb2JqCgo2NyAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFszMzIuOTE2MCA1MjAuMzMzMSAzNTUuODE4NiA1MzUuOTkwNF0KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gNjAxIDAgUj4+Ci9NYXRyaXggWzAuMDcxMCAwLjAwMDAgMC4wMDAwIC0wLjA3MDggMTA5LjY3NzYgNjg1LjU4ODBdPj4KZW5kb2JqCgo2MDIgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0KZWVlk5OTCmVuZHN0cmVhbQplbmRvYmoKCjQyNyAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFszMzIuOTE2MCA1MjAuMzMzMSAzNTUuODE4NiA1MzUuOTkwNF0KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gNjAyIDAgUj4+Ci9NYXRyaXggWzAuMDcxMCAwLjAwMDAgMC4wMDAwIC0wLjA3MDggMTA5LjY4OTQgNzA4LjQzODZdPj4KZW5kb2JqCgo2MDMgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0KZWVlk5OTCmVuZHN0cmVhbQplbmRvYmoKCjIyNyAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFszMzIuOTE2MCA1MjAuMzMzMSAzNTUuODE4NiA1MzUuOTkwNF0KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gNjAzIDAgUj4+Ci9NYXRyaXggWzAuMDcxMCAwLjAwMDAgMC4wMDAwIC0wLjA3MDggMTEzLjM5MjIgNjI4LjM0NTVdPj4KZW5kb2JqCgo2MDQgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0KZWVlk5OTCmVuZHN0cmVhbQplbmRvYmoKCjM4NSAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFszMzIuOTE2MCA1MjAuMzMzMSAzNTUuODE4NiA1MzUuOTkwNF0KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gNjA0IDAgUj4+Ci9NYXRyaXggWzAuMDcxMCAwLjAwMDAgMC4wMDAwIC0wLjA3MDggMTE3LjkxOTcgNjA5LjQzNzRdPj4KZW5kb2JqCgo2MDUgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0KZWVlk5OTCmVuZHN0cmVhbQplbmRvYmoKCjEyMCAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFszMzIuOTE2MCA1MjAuMzMzMSAzNTUuODE4NiA1MzUuOTkwNF0KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gNjA1IDAgUj4+Ci9NYXRyaXggWzAuMDcxMCAwLjAwMDAgMC4wMDAwIC0wLjA3MDggMTE5Ljg4NzQgNjY2LjY4MDBdPj4KZW5kb2JqCgo2MDYgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0KZWVlk5OTCmVuZHN0cmVhbQplbmRvYmoKCjE3NCAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFszMzIuOTE2MCA1MjAuMzMzMSAzNTUuODE4NiA1MzUuOTkwNF0KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gNjA2IDAgUj4+Ci9NYXRyaXggWzAuMDcxMCAwLjAwMDAgMC4wMDAwIC0wLjA3MDggMTIzLjUzMzggNjQ3LjU5NzNdPj4KZW5kb2JqCgo2MDcgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0KZWVlk5OTCmVuZHN0cmVhbQplbmRvYmoKCjcxIDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzMzMi45MTYwIDUyMC4zMzMxIDM1NS44MTg2IDUzNS45OTA0XQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA2MDcgMCBSPj4KL01hdHJpeCBbMC4wNzEwIDAuMDAwMCAwLjAwMDAgLTAuMDcwOCAxMjguNjI4OSA2ODUuNTg4MF0+PgplbmRvYmoKCjYwOCAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQplZWWTk5MKZW5kc3RyZWFtCmVuZG9iagoKMzMgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbMzMyLjkxNjAgNTIwLjMzMzEgMzU1LjgxODYgNTM1Ljk5MDRdCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDYwOCAwIFI+PgovTWF0cml4IFswLjA3MTAgMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDEyOC42ODUyIDcwOC40Mzg2XT4+CmVuZG9iagoKNjA5IDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCmVlZZOTkwplbmRzdHJlYW0KZW5kb2JqCgoyMzEgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbMzMyLjkxNjAgNTIwLjMzMzEgMzU1LjgxODYgNTM1Ljk5MDRdCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDYwOSAwIFI+PgovTWF0cml4IFswLjA3MTAgMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDEzMi4zNDM1IDYyOC4zNDU1XT4+CmVuZG9iagoKNjEwIDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCmVlZZOTkwplbmRzdHJlYW0KZW5kb2JqCgoxMjUgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbMzMyLjkxNjAgNTIwLjMzMzEgMzU1LjgxODYgNTM1Ljk5MDRdCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDYxMCAwIFI+PgovTWF0cml4IFswLjA3MTAgMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDEzOC44Mzg4IDY2Ni42ODAwXT4+CmVuZG9iagoKNjExIDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCmVlZZOTkwplbmRzdHJlYW0KZW5kb2JqCgozOTAgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbMzMyLjkxNjAgNTIwLjMzMzEgMzU1LjgxODYgNTM1Ljk5MDRdCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDYxMSAwIFI+PgovTWF0cml4IFswLjA3MTAgMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDE0MS4wMTM0IDYwOS40Mzc0XT4+CmVuZG9iagoKNjEyIDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCmVlZZOTkwplbmRzdHJlYW0KZW5kb2JqCgoxNzkgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbMzMyLjkxNjAgNTIwLjMzMzEgMzU1LjgxODYgNTM1Ljk5MDRdCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDYxMiAwIFI+PgovTWF0cml4IFswLjA3MTAgMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDE0Mi40ODUxIDY0Ny41OTczXT4+CmVuZG9iagoKNjEzIDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCmVlZZOTkwplbmRzdHJlYW0KZW5kb2JqCgo3NSAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFszMzIuOTE2MCA1MjAuMzMzMSAzNTUuODE4NiA1MzUuOTkwNF0KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gNjEzIDAgUj4+Ci9NYXRyaXggWzAuMDcxMCAwLjAwMDAgMC4wMDAwIC0wLjA3MDggMTQ3LjU4MDMgNjg1LjU4ODBdPj4KZW5kb2JqCgo2MTQgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0KZWVlk5OTCmVuZHN0cmVhbQplbmRvYmoKCjc3IDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzMzMi45MTYwIDUyMC4zMzMxIDM1NS44MTg2IDUzNS45OTA0XQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA2MTQgMCBSPj4KL01hdHJpeCBbMC4wNzEwIDAuMDAwMCAwLjAwMDAgLTAuMDcwOCAxNDcuNjgxMSA3MDguNDM4Nl0+PgplbmRvYmoKCjYxNSAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQplZWWTk5MKZW5kc3RyZWFtCmVuZG9iagoKMjM2IDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzMzMi45MTYwIDUyMC4zMzMxIDM1NS44MTg2IDUzNS45OTA0XQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA2MTUgMCBSPj4KL01hdHJpeCBbMC4wNzEwIDAuMDAwMCAwLjAwMDAgLTAuMDcwOCAxNTEuMjk0OSA2MjguMzQ1NV0+PgplbmRvYmoKCjYxNiAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQplZWWTk5MKZW5kc3RyZWFtCmVuZG9iagoKMTI5IDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzMzMi45MTYwIDUyMC4zMzMxIDM1NS44MTg2IDUzNS45OTA0XQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA2MTYgMCBSPj4KL01hdHJpeCBbMC4wNzEwIDAuMDAwMCAwLjAwMDAgLTAuMDcwOCAxNTcuNzkwMSA2NjYuNjgwMF0+PgplbmRvYmoKCjYxNyAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQplZWWTk5MKZW5kc3RyZWFtCmVuZG9iagoKMTgzIDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzMzMi45MTYwIDUyMC4zMzMxIDM1NS44MTg2IDUzNS45OTA0XQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA2MTcgMCBSPj4KL01hdHJpeCBbMC4wNzEwIDAuMDAwMCAwLjAwMDAgLTAuMDcwOCAxNjEuNDM2NSA2NDcuNTk3M10+PgplbmRvYmoKCjYxOCAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQplZWWTk5MKZW5kc3RyZWFtCmVuZG9iagoKODAgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbMzMyLjkxNjAgNTIwLjMzMzEgMzU1LjgxODYgNTM1Ljk5MDRdCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDYxOCAwIFI+PgovTWF0cml4IFswLjA3MTAgMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDE2Ni41MzE2IDY4NS41ODgwXT4+CmVuZG9iagoKNjE5IDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCmVlZZOTkwplbmRzdHJlYW0KZW5kb2JqCgoxMjEgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbMzMyLjkxNjAgNTIwLjMzMzEgMzU1LjgxODYgNTM1Ljk5MDRdCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDYxOSAwIFI+PgovTWF0cml4IFswLjA3MTAgMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDE2Ni42NzY5IDcwOC40Mzg2XT4+CmVuZG9iagoKNjIwIDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCmVlZZOTkwplbmRzdHJlYW0KZW5kb2JqCgoyNDAgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbMzMyLjkxNjAgNTIwLjMzMzEgMzU1LjgxODYgNTM1Ljk5MDRdCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDYyMCAwIFI+PgovTWF0cml4IFswLjA3MTAgMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDE3MC4yNDYyIDYyOC4zNDU1XT4+CmVuZG9iagoKNjIxIDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCmVlZZOTkwplbmRzdHJlYW0KZW5kb2JqCgoxMzQgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbMzMyLjkxNjAgNTIwLjMzMzEgMzU1LjgxODYgNTM1Ljk5MDRdCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDYyMSAwIFI+PgovTWF0cml4IFswLjA3MTAgMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDE3Ni43NDE0IDY2Ni42ODAwXT4+CmVuZG9iagoKNjIyIDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCmVlZZOTkwplbmRzdHJlYW0KZW5kb2JqCgoxODcgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbMzMyLjkxNjAgNTIwLjMzMzEgMzU1LjgxODYgNTM1Ljk5MDRdCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDYyMiAwIFI+PgovTWF0cml4IFswLjA3MTAgMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDE4MC4zODc4IDY0Ny41OTczXT4+CmVuZG9iagoKNjIzIDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCmVlZZOTkwplbmRzdHJlYW0KZW5kb2JqCgo4NCAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFszMzIuOTE2MCA1MjAuMzMzMSAzNTUuODE4NiA1MzUuOTkwNF0KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gNjIzIDAgUj4+Ci9NYXRyaXggWzAuMDcxMCAwLjAwMDAgMC4wMDAwIC0wLjA3MDggMTg1LjQ4MjkgNjg1LjU4ODBdPj4KZW5kb2JqCgo2MjQgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0KZWVlk5OTCmVuZHN0cmVhbQplbmRvYmoKCjI0NSAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFszMzIuOTE2MCA1MjAuMzMzMSAzNTUuODE4NiA1MzUuOTkwNF0KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gNjI0IDAgUj4+Ci9NYXRyaXggWzAuMDcxMCAwLjAwMDAgMC4wMDAwIC0wLjA3MDggMTg5LjE5NzUgNjI4LjM0NTVdPj4KZW5kb2JqCgo2MjUgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0KZWVlk5OTCmVuZHN0cmVhbQplbmRvYmoKCjEzOCAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFszMzIuOTE2MCA1MjAuMzMzMSAzNTUuODE4NiA1MzUuOTkwNF0KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gNjI1IDAgUj4+Ci9NYXRyaXggWzAuMDcxMCAwLjAwMDAgMC4wMDAwIC0wLjA3MDggMTk1LjY5MjggNjY2LjY4MDBdPj4KZW5kb2JqCgo2MjYgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0KZWVlk5OTCmVuZHN0cmVhbQplbmRvYmoKCjE2NiAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFszMzIuOTE2MCA1MjAuMzMzMSAzNTUuODE4NiA1MzUuOTkwNF0KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gNjI2IDAgUj4+Ci9NYXRyaXggWzAuMDcxMCAwLjAwMDAgMC4wMDAwIC0wLjA3MDggMTk1Ljc0MzcgNzA4LjQzODZdPj4KZW5kb2JqCgo2MjcgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0KZWVlk5OTCmVuZHN0cmVhbQplbmRvYmoKCjE5MiAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFszMzIuOTE2MCA1MjAuMzMzMSAzNTUuODE4NiA1MzUuOTkwNF0KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gNjI3IDAgUj4+Ci9NYXRyaXggWzAuMDcxMCAwLjAwMDAgMC4wMDAwIC0wLjA3MDggMTk5LjMzOTEgNjQ3LjU5NzNdPj4KZW5kb2JqCgo2MjggMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0KZWVlk5OTCmVuZHN0cmVhbQplbmRvYmoKCjg5IDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzMzMi45MTYwIDUyMC4zMzMxIDM1NS44MTg2IDUzNS45OTA0XQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA2MjggMCBSPj4KL01hdHJpeCBbMC4wNzEwIDAuMDAwMCAwLjAwMDAgLTAuMDcwOCAyMDQuNDM0MyA2ODUuNTg4MF0+PgplbmRvYmoKCjYyOSAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQplZWWTk5MKZW5kc3RyZWFtCmVuZG9iagoKMjQ5IDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzMzMi45MTYwIDUyMC4zMzMxIDM1NS44MTg2IDUzNS45OTA0XQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA2MjkgMCBSPj4KL01hdHJpeCBbMC4wNzEwIDAuMDAwMCAwLjAwMDAgLTAuMDcwOCAyMDguMTQ4OSA2MjguMzQ1NV0+PgplbmRvYmoKCjYzMCAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQplZWWTk5MKZW5kc3RyZWFtCmVuZG9iagoKMTQyIDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzMzMi45MTYwIDUyMC4zMzMxIDM1NS44MTg2IDUzNS45OTA0XQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA2MzAgMCBSPj4KL01hdHJpeCBbMC4wNzEwIDAuMDAwMCAwLjAwMDAgLTAuMDcwOCAyMTQuNjQ0MSA2NjYuNjgwMF0+PgplbmRvYmoKCjYzMSAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQplZWWTk5MKZW5kc3RyZWFtCmVuZG9iagoKMjEwIDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzMzMi45MTYwIDUyMC4zMzMxIDM1NS44MTg2IDUzNS45OTA0XQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA2MzEgMCBSPj4KL01hdHJpeCBbMC4wNzEwIDAuMDAwMCAwLjAwMDAgLTAuMDcwOCAyMTQuNzM5NSA3MDguNDM4Nl0+PgplbmRvYmoKCjYzMiAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQplZWWTk5MKZW5kc3RyZWFtCmVuZG9iagoKMTk2IDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzMzMi45MTYwIDUyMC4zMzMxIDM1NS44MTg2IDUzNS45OTA0XQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA2MzIgMCBSPj4KL01hdHJpeCBbMC4wNzEwIDAuMDAwMCAwLjAwMDAgLTAuMDcwOCAyMTguMjkwNSA2NDcuNTk3M10+PgplbmRvYmoKCjYzMyAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQplZWWTk5MKZW5kc3RyZWFtCmVuZG9iagoKOTMgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbMzMyLjkxNjAgNTIwLjMzMzEgMzU1LjgxODYgNTM1Ljk5MDRdCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDYzMyAwIFI+PgovTWF0cml4IFswLjA3MTAgMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDIyMy4zODU2IDY4NS41ODgwXT4+CmVuZG9iagoKNjM0IDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCmVlZZOTkwplbmRzdHJlYW0KZW5kb2JqCgoyNTMgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbMzMyLjkxNjAgNTIwLjMzMzEgMzU1LjgxODYgNTM1Ljk5MDRdCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDYzNCAwIFI+PgovTWF0cml4IFswLjA3MTAgMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDIyNy4xMDAyIDYyOC4zNDU1XT4+CmVuZG9iagoKNjM1IDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCmVlZZOTkwplbmRzdHJlYW0KZW5kb2JqCgoxNDggMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbMzMyLjkxNjAgNTIwLjMzMzEgMzU1LjgxODYgNTM1Ljk5MDRdCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDYzNSAwIFI+PgovTWF0cml4IFswLjA3MTAgMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDIzMy41OTU0IDY2Ni42ODAwXT4+CmVuZG9iagoKNjM2IDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCmVlZZOTkwplbmRzdHJlYW0KZW5kb2JqCgoyNTUgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbMzMyLjkxNjAgNTIwLjMzMzEgMzU1LjgxODYgNTM1Ljk5MDRdCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDYzNiAwIFI+PgovTWF0cml4IFswLjA3MTAgMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDIzMy43MzU0IDcwOC40Mzg2XT4+CmVuZG9iagoKNjM3IDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCmVlZZOTkwplbmRzdHJlYW0KZW5kb2JqCgoyMDEgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbMzMyLjkxNjAgNTIwLjMzMzEgMzU1LjgxODYgNTM1Ljk5MDRdCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDYzNyAwIFI+PgovTWF0cml4IFswLjA3MTAgMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDIzNy4yNDE4IDY0Ny41OTczXT4+CmVuZG9iagoKNjM4IDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCmVlZZOTkwplbmRzdHJlYW0KZW5kb2JqCgo5NyAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFszMzIuOTE2MCA1MjAuMzMzMSAzNTUuODE4NiA1MzUuOTkwNF0KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gNjM4IDAgUj4+Ci9NYXRyaXggWzAuMDcxMCAwLjAwMDAgMC4wMDAwIC0wLjA3MDggMjQyLjMzNjkgNjg1LjU4ODBdPj4KZW5kb2JqCgo2MzkgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0KZWVlk5OTCmVuZHN0cmVhbQplbmRvYmoKCjI1OSAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFszMzIuOTE2MCA1MjAuMzMzMSAzNTUuODE4NiA1MzUuOTkwNF0KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gNjM5IDAgUj4+Ci9NYXRyaXggWzAuMDcxMCAwLjAwMDAgMC4wMDAwIC0wLjA3MDggMjQ2LjA1MTUgNjI4LjM0NTVdPj4KZW5kb2JqCgo2NDAgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0KZWVlk5OTCmVuZHN0cmVhbQplbmRvYmoKCjE1MiAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFszMzIuOTE2MCA1MjAuMzMzMSAzNTUuODE4NiA1MzUuOTkwNF0KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gNjQwIDAgUj4+Ci9NYXRyaXggWzAuMDcxMCAwLjAwMDAgMC4wMDAwIC0wLjA3MDggMjUyLjU0NjggNjY2LjY4MDBdPj4KZW5kb2JqCgo2NDEgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0KZWVlk5OTCmVuZHN0cmVhbQplbmRvYmoKCjI5OSAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFszMzIuOTE2MCA1MjAuMzMzMSAzNTUuODE4NiA1MzUuOTkwNF0KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gNjQxIDAgUj4+Ci9NYXRyaXggWzAuMDcxMCAwLjAwMDAgMC4wMDAwIC0wLjA3MDggMjUyLjczMTIgNzA4LjQzODZdPj4KZW5kb2JqCgo2NDIgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0KZWVlk5OTCmVuZHN0cmVhbQplbmRvYmoKCjIwNSAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFszMzIuOTE2MCA1MjAuMzMzMSAzNTUuODE4NiA1MzUuOTkwNF0KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gNjQyIDAgUj4+Ci9NYXRyaXggWzAuMDcxMCAwLjAwMDAgMC4wMDAwIC0wLjA3MDggMjU2LjE5MzEgNjQ3LjU5NzNdPj4KZW5kb2JqCgo2NDMgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0KZWVlk5OTCmVuZHN0cmVhbQplbmRvYmoKCjEwMiAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFszMzIuOTE2MCA1MjAuMzMzMSAzNTUuODE4NiA1MzUuOTkwNF0KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gNjQzIDAgUj4+Ci9NYXRyaXggWzAuMDcxMCAwLjAwMDAgMC4wMDAwIC0wLjA3MDggMjYxLjI4ODMgNjg1LjU4ODBdPj4KZW5kb2JqCgo2NDQgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0KZWVlk5OTCmVuZHN0cmVhbQplbmRvYmoKCjM5NCAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFszMzIuOTE2MCA1MjAuMzMzMSAzNTUuODE4NiA1MzUuOTkwNF0KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gNjQ0IDAgUj4+Ci9NYXRyaXggWzAuMDcxMCAwLjAwMDAgMC4wMDAwIC0wLjA3MDggMjY0LjAxNzYgNjA5LjQzNzRdPj4KZW5kb2JqCgo2NDUgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0KZWVlk5OTCmVuZHN0cmVhbQplbmRvYmoKCjI2MyAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFszMzIuOTE2MCA1MjAuMzMzMSAzNTUuODE4NiA1MzUuOTkwNF0KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gNjQ1IDAgUj4+Ci9NYXRyaXggWzAuMDcxMCAwLjAwMDAgMC4wMDAwIC0wLjA3MDggMjY1LjAwMjkgNjI4LjM0NTVdPj4KZW5kb2JqCgo2NDYgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0KZWVlk5OTCmVuZHN0cmVhbQplbmRvYmoKCjE1NyAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFszMzIuOTE2MCA1MjAuMzMzMSAzNTUuODE4NiA1MzUuOTkwNF0KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gNjQ2IDAgUj4+Ci9NYXRyaXggWzAuMDcxMCAwLjAwMDAgMC4wMDAwIC0wLjA3MDggMjcxLjQ5ODEgNjY2LjY4MDBdPj4KZW5kb2JqCgo2NDcgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0KZWVlk5OTCmVuZHN0cmVhbQplbmRvYmoKCjIwOSAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFszMzIuOTE2MCA1MjAuMzMzMSAzNTUuODE4NiA1MzUuOTkwNF0KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gNjQ3IDAgUj4+Ci9NYXRyaXggWzAuMDcxMCAwLjAwMDAgMC4wMDAwIC0wLjA3MDggMjc1LjE0NDUgNjQ3LjU5NzNdPj4KZW5kb2JqCgo2NDggMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0KZWVlk5OTCmVuZHN0cmVhbQplbmRvYmoKCjEwNiAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFszMzIuOTE2MCA1MjAuMzMzMSAzNTUuODE4NiA1MzUuOTkwNF0KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gNjQ4IDAgUj4+Ci9NYXRyaXggWzAuMDcxMCAwLjAwMDAgMC4wMDAwIC0wLjA3MDggMjgwLjIzOTYgNjg1LjU4ODBdPj4KZW5kb2JqCgo2NDkgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0KZWVlk5OTCmVuZHN0cmVhbQplbmRvYmoKCjM0MyAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFszMzIuOTE2MCA1MjAuMzMzMSAzNTUuODE4NiA1MzUuOTkwNF0KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gNjQ5IDAgUj4+Ci9NYXRyaXggWzAuMDcxMCAwLjAwMDAgMC4wMDAwIC0wLjA3MDggMjgwLjMzOTUgNzA4LjQzODZdPj4KZW5kb2JqCgo2NTAgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0KZWVlk5OTCmVuZHN0cmVhbQplbmRvYmoKCjI2OCAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFszMzIuOTE2MCA1MjAuMzMzMSAzNTUuODE4NiA1MzUuOTkwNF0KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gNjUwIDAgUj4+Ci9NYXRyaXggWzAuMDcxMCAwLjAwMDAgMC4wMDAwIC0wLjA3MDggMjgzLjk1NDIgNjI4LjM0NTVdPj4KZW5kb2JqCgo2NTEgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0KZWVlk5OTCmVuZHN0cmVhbQplbmRvYmoKCjQwNyAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFszMzIuOTE2MCA1MjAuMzMzMSAzNTUuODE4NiA1MzUuOTkwNF0KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gNjUxIDAgUj4+Ci9NYXRyaXggWzAuMDcxMCAwLjAwMDAgMC4wMDAwIC0wLjA3MDggMjg3LjAzMjggNjA5LjQzNzRdPj4KZW5kb2JqCgo2NTIgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0KZWVlk5OTCmVuZHN0cmVhbQplbmRvYmoKCjE2MSAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFszMzIuOTE2MCA1MjAuMzMzMSAzNTUuODE4NiA1MzUuOTkwNF0KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gNjUyIDAgUj4+Ci9NYXRyaXggWzAuMDcxMCAwLjAwMDAgMC4wMDAwIC0wLjA3MDggMjkwLjQ0OTUgNjY2LjY4MDBdPj4KZW5kb2JqCgo2NTMgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0KZWVlk5OTCmVuZHN0cmVhbQplbmRvYmoKCjIxNCAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFszMzIuOTE2MCA1MjAuMzMzMSAzNTUuODE4NiA1MzUuOTkwNF0KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gNjUzIDAgUj4+Ci9NYXRyaXggWzAuMDcxMCAwLjAwMDAgMC4wMDAwIC0wLjA3MDggMjk0LjA5NTggNjQ3LjU5NzNdPj4KZW5kb2JqCgo2NTQgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0KZWVlk5OTCmVuZHN0cmVhbQplbmRvYmoKCjExMSAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFszMzIuOTE2MCA1MjAuMzMzMSAzNTUuODE4NiA1MzUuOTkwNF0KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gNjU0IDAgUj4+Ci9NYXRyaXggWzAuMDcxMCAwLjAwMDAgMC4wMDAwIC0wLjA3MDggMjk5LjE5MTAgNjg1LjU4ODBdPj4KZW5kb2JqCgo2NTUgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0KZWVlk5OTCmVuZHN0cmVhbQplbmRvYmoKCjM4OCAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFszMzIuOTE2MCA1MjAuMzMzMSAzNTUuODE4NiA1MzUuOTkwNF0KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gNjU1IDAgUj4+Ci9NYXRyaXggWzAuMDcxMCAwLjAwMDAgMC4wMDAwIC0wLjA3MDggMjk5LjMzNTMgNzA4LjQzODZdPj4KZW5kb2JqCgo2NTYgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0KZWVlk5OTCmVuZHN0cmVhbQplbmRvYmoKCjI3MiAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFszMzIuOTE2MCA1MjAuMzMzMSAzNTUuODE4NiA1MzUuOTkwNF0KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gNjU2IDAgUj4+Ci9NYXRyaXggWzAuMDcxMCAwLjAwMDAgMC4wMDAwIC0wLjA3MDggMzAyLjkwNTYgNjI4LjM0NTVdPj4KZW5kb2JqCgo2NTcgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0KZWVlk5OTCmVuZHN0cmVhbQplbmRvYmoKCjE2NSAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFszMzIuOTE2MCA1MjAuMzMzMSAzNTUuODE4NiA1MzUuOTkwNF0KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gNjU3IDAgUj4+Ci9NYXRyaXggWzAuMDcxMCAwLjAwMDAgMC4wMDAwIC0wLjA3MDggMzA5LjQwMDggNjY2LjY4MDBdPj4KZW5kb2JqCgo2NTggMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0KZWVlk5OTCmVuZHN0cmVhbQplbmRvYmoKCjQwMyAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFszMzIuOTE2MCA1MjAuMzMzMSAzNTUuODE4NiA1MzUuOTkwNF0KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gNjU4IDAgUj4+Ci9NYXRyaXggWzAuMDcxMCAwLjAwMDAgMC4wMDAwIC0wLjA3MDggMzEwLjE0NjEgNjA5LjQzNzRdPj4KZW5kb2JqCgo2NTkgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0KZWVlk5OTCmVuZHN0cmVhbQplbmRvYmoKCjIxOCAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFszMzIuOTE2MCA1MjAuMzMzMSAzNTUuODE4NiA1MzUuOTkwNF0KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gNjU5IDAgUj4+Ci9NYXRyaXggWzAuMDcxMCAwLjAwMDAgMC4wMDAwIC0wLjA3MDggMzEzLjA0NzIgNjQ3LjU5NzNdPj4KZW5kb2JqCgo2NjAgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0KZWVlk5OTCmVuZHN0cmVhbQplbmRvYmoKCjQxMiAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFszMzIuOTE2MCA1MjAuMzMzMSAzNTUuODE4NiA1MzUuOTkwNF0KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gNjYwIDAgUj4+Ci9NYXRyaXggWzAuMDcxMCAwLjAwMDAgMC4wMDAwIC0wLjA3MDggMzE4LjMzMTEgNzA4LjQzODZdPj4KZW5kb2JqCgo2NjEgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0KZWVlk5OTCmVuZHN0cmVhbQplbmRvYmoKCjM2MSAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFszMzIuOTE2MCA1MjAuMzMzMSAzNTUuODE4NiA1MzUuOTkwNF0KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gNjYxIDAgUj4+Ci9NYXRyaXggWzAuMDcxMCAwLjAwMDAgMC4wMDAwIC0wLjA3MDggMzE4LjQxNTEgNjg1LjU4ODBdPj4KZW5kb2JqCgo2NjIgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0KZWVlk5OTCmVuZHN0cmVhbQplbmRvYmoKCjM2OCAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFszMzIuOTE2MCA1MjAuMzMzMSAzNTUuODE4NiA1MzUuOTkwNF0KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gNjYyIDAgUj4+Ci9NYXRyaXggWzAuMDcxMCAwLjAwMDAgMC4wMDAwIC0wLjA3MDggMzMzLjIzNjIgNjQ3LjY3OTldPj4KZW5kb2JqCgo2NjMgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0KZWVlk5OTCmVuZHN0cmVhbQplbmRvYmoKCjM5OCAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFszMzIuOTE2MCA1MjAuMzMzMSAzNTUuODE4NiA1MzUuOTkwNF0KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gNjYzIDAgUj4+Ci9NYXRyaXggWzAuMDcxMCAwLjAwMDAgMC4wMDAwIC0wLjA3MDggMzMzLjI1OTQgNjA5LjQzNzRdPj4KZW5kb2JqCgo2NjQgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0KZWVlk5OTCmVuZHN0cmVhbQplbmRvYmoKCjQxNyAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFszMzIuOTE2MCA1MjAuMzMzMSAzNTUuODE4NiA1MzUuOTkwNF0KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gNjY0IDAgUj4+Ci9NYXRyaXggWzAuMDcxMCAwLjAwMDAgMC4wMDAwIC0wLjA3MDggMzM3LjMyNzAgNzA4LjQzODZdPj4KZW5kb2JqCgo2NjUgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0KZWVlk5OTCmVuZHN0cmVhbQplbmRvYmoKCjQzOSAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFszMzIuOTE2MCA1MjAuMzMzMSAzNTUuODE4NiA1MzUuOTkwNF0KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gNjY1IDAgUj4+Ci9NYXRyaXggWzAuMDcxMCAwLjAwMDAgMC4wMDAwIC0wLjA3MDggMzU5Ljg2NTEgNjg1LjU4ODBdPj4KZW5kb2JqCgo2NjYgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0KZWVlk5OTCmVuZHN0cmVhbQplbmRvYmoKCjQ1MiAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFszMzIuOTE2MCA1MjAuMzMzMSAzNTUuODE4NiA1MzUuOTkwNF0KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gNjY2IDAgUj4+Ci9NYXRyaXggWzAuMDcxMCAwLjAwMDAgMC4wMDAwIC0wLjA3MDggMzU5Ljg2NTEgNjY2LjYyNjldPj4KZW5kb2JqCgo2NjcgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0KZWVlk5OTCmVuZHN0cmVhbQplbmRvYmoKCjQ2NSAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFszMzIuOTE2MCA1MjAuMzMzMSAzNTUuODE4NiA1MzUuOTkwNF0KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gNjY3IDAgUj4+Ci9NYXRyaXggWzAuMDcxMCAwLjAwMDAgMC4wMDAwIC0wLjA3MDggMzU5Ljg2NTEgNjQ3LjY2NThdPj4KZW5kb2JqCgo2NjggMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0KZWVlk5OTCmVuZHN0cmVhbQplbmRvYmoKCjQwIDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzMzMi45MTYwIDUyMC4zMzMxIDM1NS44MTg2IDUzNS45OTA0XQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA2NjggMCBSPj4KL01hdHJpeCBbMC4wNzEwIDAuMDAwMCAwLjAwMDAgLTAuMDcwOCAzNTkuODY1MSA2MDkuNTAwNV0+PgplbmRvYmoKCjY2OSAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQplZWWTk5MKZW5kc3RyZWFtCmVuZG9iagoKNDI1IDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzMzMi45MTYwIDUyMC4zMzMxIDM1NS44MTg2IDUzNS45OTA0XQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA2NjkgMCBSPj4KL01hdHJpeCBbMC4wNzEwIDAuMDAwMCAwLjAwMDAgLTAuMDcwOCAzNjAuMTA4MSA3MDguNDM4Nl0+PgplbmRvYmoKCjY3MCAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQplZWWTk5MKZW5kc3RyZWFtCmVuZG9iagoKNDQzIDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzMzMi45MTYwIDUyMC4zMzMxIDM1NS44MTg2IDUzNS45OTA0XQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA2NzAgMCBSPj4KL01hdHJpeCBbMC4wNzEwIDAuMDAwMCAwLjAwMDAgLTAuMDcwOCAzNzguODYwOSA2ODUuNTg4MF0+PgplbmRvYmoKCjY3MSAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQplZWWTk5MKZW5kc3RyZWFtCmVuZG9iagoKNDU2IDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzMzMi45MTYwIDUyMC4zMzMxIDM1NS44MTg2IDUzNS45OTA0XQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA2NzEgMCBSPj4KL01hdHJpeCBbMC4wNzEwIDAuMDAwMCAwLjAwMDAgLTAuMDcwOCAzNzguODYwOSA2NjYuNjI2OV0+PgplbmRvYmoKCjY3MiAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQplZWWTk5MKZW5kc3RyZWFtCmVuZG9iagoKNDY5IDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzMzMi45MTYwIDUyMC4zMzMxIDM1NS44MTg2IDUzNS45OTA0XQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA2NzIgMCBSPj4KL01hdHJpeCBbMC4wNzEwIDAuMDAwMCAwLjAwMDAgLTAuMDcwOCAzNzguODYwOSA2NDcuNjY1OF0+PgplbmRvYmoKCjY3MyAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQplZWWTk5MKZW5kc3RyZWFtCmVuZG9iagoKNTMgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbMzMyLjkxNjAgNTIwLjMzMzEgMzU1LjgxODYgNTM1Ljk5MDRdCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDY3MyAwIFI+PgovTWF0cml4IFswLjA3MTAgMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDM3OC44NjA5IDYyOC45NDc4XT4+CmVuZG9iagoKNjc0IDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCmVlZZOTkwplbmRzdHJlYW0KZW5kb2JqCgo0NSAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFszMzIuOTE2MCA1MjAuMzMzMSAzNTUuODE4NiA1MzUuOTkwNF0KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gNjc0IDAgUj4+Ci9NYXRyaXggWzAuMDcxMCAwLjAwMDAgMC4wMDAwIC0wLjA3MDggMzc4Ljg2MDkgNjA5LjUwMDVdPj4KZW5kb2JqCgo2NzUgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0KZWVlk5OTCmVuZHN0cmVhbQplbmRvYmoKCjQzMCAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFszMzIuOTE2MCA1MjAuMzMzMSAzNTUuODE4NiA1MzUuOTkwNF0KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gNjc1IDAgUj4+Ci9NYXRyaXggWzAuMDcxMCAwLjAwMDAgMC4wMDAwIC0wLjA3MDggMzc5LjEwNDAgNzA4LjQzODZdPj4KZW5kb2JqCgo2NzYgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0KZWVlk5OTCmVuZHN0cmVhbQplbmRvYmoKCjQ0NyAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFszMzIuOTE2MCA1MjAuMzMzMSAzNTUuODE4NiA1MzUuOTkwNF0KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gNjc2IDAgUj4+Ci9NYXRyaXggWzAuMDcxMCAwLjAwMDAgMC4wMDAwIC0wLjA3MDggMzk3Ljg1NjcgNjg1LjU4ODBdPj4KZW5kb2JqCgo2NzcgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0KZWVlk5OTCmVuZHN0cmVhbQplbmRvYmoKCjQ2MSAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFszMzIuOTE2MCA1MjAuMzMzMSAzNTUuODE4NiA1MzUuOTkwNF0KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gNjc3IDAgUj4+Ci9NYXRyaXggWzAuMDcxMCAwLjAwMDAgMC4wMDAwIC0wLjA3MDggMzk3Ljg1NjcgNjY2LjYyNjldPj4KZW5kb2JqCgo2NzggMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0KZWVlk5OTCmVuZHN0cmVhbQplbmRvYmoKCjM2IDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzMzMi45MTYwIDUyMC4zMzMxIDM1NS44MTg2IDUzNS45OTA0XQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA2NzggMCBSPj4KL01hdHJpeCBbMC4wNzEwIDAuMDAwMCAwLjAwMDAgLTAuMDcwOCAzOTcuODU2NyA2NDcuNjY1OF0+PgplbmRvYmoKCjY3OSAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQplZWWTk5MKZW5kc3RyZWFtCmVuZG9iagoKNDkgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbMzMyLjkxNjAgNTIwLjMzMzEgMzU1LjgxODYgNTM1Ljk5MDRdCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDY3OSAwIFI+PgovTWF0cml4IFswLjA3MTAgMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDM5Ny44NTY3IDYwOS41MDA1XT4+CmVuZG9iagoKNjgwIDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCmVlZZOTkwplbmRzdHJlYW0KZW5kb2JqCgo0MzQgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbMzMyLjkxNjAgNTIwLjMzMzEgMzU1LjgxODYgNTM1Ljk5MDRdCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDY4MCAwIFI+PgovTWF0cml4IFswLjA3MTAgMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDM5OC4wOTk4IDcwOC40Mzg2XT4+CmVuZG9iagoKNjgxIDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCmVlZZOTkwplbmRzdHJlYW0KZW5kb2JqCgoyNzYgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbMzMyLjkxNjAgNTIwLjMzMzEgMzU1LjgxODYgNTM1Ljk5MDRdCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDY4MSAwIFI+PgovTWF0cml4IFswLjA3MTAgMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDQyMS4zNjcyIDY4NS41ODgwXT4+CmVuZG9iagoKNjgyIDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCmVlZZOTkwplbmRzdHJlYW0KZW5kb2JqCgoyOTQgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbMzMyLjkxNjAgNTIwLjMzMzEgMzU1LjgxODYgNTM1Ljk5MDRdCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDY4MiAwIFI+PgovTWF0cml4IFswLjA3MTAgMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDQyMS4zNjcyIDY2Ni41NjYyXT4+CmVuZG9iagoKNjgzIDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCmVlZZOTkwplbmRzdHJlYW0KZW5kb2JqCgozMDcgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbMzMyLjkxNjAgNTIwLjMzMzEgMzU1LjgxODYgNTM1Ljk5MDRdCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDY4MyAwIFI+PgovTWF0cml4IFswLjA3MTAgMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDQyMS4zNjcyIDY0Ny41NDQzXT4+CmVuZG9iagoKNjg0IDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCmVlZZOTkwplbmRzdHJlYW0KZW5kb2JqCgozMjUgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbMzMyLjkxNjAgNTIwLjMzMzEgMzU1LjgxODYgNTM1Ljk5MDRdCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDY4NCAwIFI+PgovTWF0cml4IFswLjA3MTAgMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDQyMS4zNjcyIDYyOC41MjI0XT4+CmVuZG9iagoKNjg1IDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCmVlZZOTkwplbmRzdHJlYW0KZW5kb2JqCgozMzggMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbMzMyLjkxNjAgNTIwLjMzMzEgMzU1LjgxODYgNTM1Ljk5MDRdCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDY4NSAwIFI+PgovTWF0cml4IFswLjA3MTAgMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDQyMS4zNjcyIDYwOS41MDA1XT4+CmVuZG9iagoKNjg2IDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCmVlZZOTkwplbmRzdHJlYW0KZW5kb2JqCgoyODEgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbMzMyLjkxNjAgNTIwLjMzMzEgMzU1LjgxODYgNTM1Ljk5MDRdCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDY4NiAwIFI+PgovTWF0cml4IFswLjA3MTAgMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDQ0MC4xMDgzIDY4NS41ODgwXT4+CmVuZG9iagoKNjg3IDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCmVlZZOTkwplbmRzdHJlYW0KZW5kb2JqCgoyOTggMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbMzMyLjkxNjAgNTIwLjMzMzEgMzU1LjgxODYgNTM1Ljk5MDRdCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDY4NyAwIFI+PgovTWF0cml4IFswLjA3MTAgMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDQ0MC4xMDgzIDY2Ni41NjYyXT4+CmVuZG9iagoKNjg4IDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCmVlZZOTkwplbmRzdHJlYW0KZW5kb2JqCgozMTIgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbMzMyLjkxNjAgNTIwLjMzMzEgMzU1LjgxODYgNTM1Ljk5MDRdCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDY4OCAwIFI+PgovTWF0cml4IFswLjA3MTAgMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDQ0MC4xMDgzIDY0Ny41NDQzXT4+CmVuZG9iagoKNjg5IDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCmVlZZOTkwplbmRzdHJlYW0KZW5kb2JqCgozMjkgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbMzMyLjkxNjAgNTIwLjMzMzEgMzU1LjgxODYgNTM1Ljk5MDRdCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDY4OSAwIFI+PgovTWF0cml4IFswLjA3MTAgMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDQ0MC4xMDgzIDYyOC41MjI0XT4+CmVuZG9iagoKNjkwIDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCmVlZZOTkwplbmRzdHJlYW0KZW5kb2JqCgoyODUgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbMzMyLjkxNjAgNTIwLjMzMzEgMzU1LjgxODYgNTM1Ljk5MDRdCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDY5MCAwIFI+PgovTWF0cml4IFswLjA3MTAgMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDQ1OC44NDk1IDY4NS41ODgwXT4+CmVuZG9iagoKNjkxIDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCmVlZZOTkwplbmRzdHJlYW0KZW5kb2JqCgozMDMgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbMzMyLjkxNjAgNTIwLjMzMzEgMzU1LjgxODYgNTM1Ljk5MDRdCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDY5MSAwIFI+PgovTWF0cml4IFswLjA3MTAgMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDQ1OC44NDk1IDY2Ni41NjYyXT4+CmVuZG9iagoKNjkyIDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCmVlZZOTkwplbmRzdHJlYW0KZW5kb2JqCgozMTYgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbMzMyLjkxNjAgNTIwLjMzMzEgMzU1LjgxODYgNTM1Ljk5MDRdCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDY5MiAwIFI+PgovTWF0cml4IFswLjA3MTAgMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDQ1OC44NDk1IDY0Ny41NDQzXT4+CmVuZG9iagoKNjkzIDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCmVlZZOTkwplbmRzdHJlYW0KZW5kb2JqCgozMzQgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbMzMyLjkxNjAgNTIwLjMzMzEgMzU1LjgxODYgNTM1Ljk5MDRdCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDY5MyAwIFI+PgovTWF0cml4IFswLjA3MTAgMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDQ1OC44NDk1IDYyOC41MjI0XT4+CmVuZG9iagoKNjk0IDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCmVlZZOTkwplbmRzdHJlYW0KZW5kb2JqCgozNDIgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbMzMyLjkxNjAgNTIwLjMzMzEgMzU1LjgxODYgNTM1Ljk5MDRdCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDY5NCAwIFI+PgovTWF0cml4IFswLjA3MTAgMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDQ1OC44NDk1IDYwOS41MDA1XT4+CmVuZG9iagoKNjk1IDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCmVlZZOTkwplbmRzdHJlYW0KZW5kb2JqCgoyOTAgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbMzMyLjkxNjAgNTIwLjMzMzEgMzU1LjgxODYgNTM1Ljk5MDRdCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDY5NSAwIFI+PgovTWF0cml4IFswLjA3MTAgMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDQ3Ny41OTA2IDY4NS41ODgwXT4+CmVuZG9iagoKNjk2IDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCmVlZZOTkwplbmRzdHJlYW0KZW5kb2JqCgozMjAgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbMzMyLjkxNjAgNTIwLjMzMzEgMzU1LjgxODYgNTM1Ljk5MDRdCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDY5NiAwIFI+PgovTWF0cml4IFswLjA3MTAgMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDQ3Ny41OTA2IDY0Ny41NDQzXT4+CmVuZG9iagoKNjk3IDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCmVlZZOTkwplbmRzdHJlYW0KZW5kb2JqCgozNDcgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbMzMyLjkxNjAgNTIwLjMzMzEgMzU1LjgxODYgNTM1Ljk5MDRdCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDY5NyAwIFI+PgovTWF0cml4IFswLjA3MTAgMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDQ3Ny41OTA2IDYwOS41MDA1XT4+CmVuZG9iagoKNjk4IDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCtbW1pOTkwplbmRzdHJlYW0KZW5kb2JqCgo1NyAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFszMzguNjMwMyA1MjIuNDc2MCAzNTguNjc1OCA1MzguMTMzM10KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gNjk4IDAgUj4+Ci9NYXRyaXggWy0wLjA3MTAgLTAuMDAwMCAwLjAwMDAgLTAuMDcwOCAxMzQuNjk2NSA2ODUuNTg4MF0+PgplbmRvYmoKCjY5OSAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrW1taTk5MKZW5kc3RyZWFtCmVuZG9iagoKNDIwIDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzMzOC42MzAzIDUyMi40NzYwIDM1OC42NzU4IDUzOC4xMzMzXQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA2OTkgMCBSPj4KL01hdHJpeCBbLTAuMDcxMCAtMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDEzNS4xMzg2IDcwOC40Mzg2XT4+CmVuZG9iagoKNzAwIDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCtbW1pOTkwplbmRzdHJlYW0KZW5kb2JqCgozNTYgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbMzM4LjYzMDMgNTIyLjQ3NjAgMzU4LjY3NTggNTM4LjEzMzNdCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDcwMCAwIFI+PgovTWF0cml4IFstMC4wNzEwIC0wLjAwMDAgMC4wMDAwIC0wLjA3MDggMTM4LjQ5ODQgNjI4LjM0NTVdPj4KZW5kb2JqCgo3MDEgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0K1tbWk5OTCmVuZHN0cmVhbQplbmRvYmoKCjM3NSAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFszMzguNjMwMyA1MjIuNDc2MCAzNTguNjc1OCA1MzguMTMzM10KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gNzAxIDAgUj4+Ci9NYXRyaXggWy0wLjA3MTAgLTAuMDAwMCAwLjAwMDAgLTAuMDcwOCAxMzguODI1NSA2MDkuNDM3NF0+PgplbmRvYmoKCjcwMiAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrW1taTk5MKZW5kc3RyZWFtCmVuZG9iagoKMzcyIDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzMzOC42MzAzIDUyMi40NzYwIDM1OC42NzU4IDUzOC4xMzMzXQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA3MDIgMCBSPj4KL01hdHJpeCBbLTAuMDcxMCAtMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDE0Mi40NjU5IDY0Ny41OTczXT4+CmVuZG9iagoKNzAzIDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCtbW1pOTkwplbmRzdHJlYW0KZW5kb2JqCgozNTAgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbMzM4LjYzMDMgNTIyLjQ3NjAgMzU4LjY3NTggNTM4LjEzMzNdCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDcwMyAwIFI+PgovTWF0cml4IFstMC4wNzEwIC0wLjAwMDAgMC4wMDAwIC0wLjA3MDggMTQ0LjEyNDAgNjY2LjY4MDBdPj4KZW5kb2JqCgo3MDQgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0K1tbWk5OTCmVuZHN0cmVhbQplbmRvYmoKCjYxIDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzMzOC42MzAzIDUyMi40NzYwIDM1OC42NzU4IDUzOC4xMzMzXQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA3MDQgMCBSPj4KL01hdHJpeCBbLTAuMDcxMCAtMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDE1My42NDc4IDY4NS41ODgwXT4+CmVuZG9iagoKNzA1IDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCtbW1pOTkwplbmRzdHJlYW0KZW5kb2JqCgoyMjIgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbMzM4LjYzMDMgNTIyLjQ3NjAgMzU4LjY3NTggNTM4LjEzMzNdCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDcwNSAwIFI+PgovTWF0cml4IFstMC4wNzEwIC0wLjAwMDAgMC4wMDAwIC0wLjA3MDggMTU3LjM2MjQgNjI4LjM0NTVdPj4KZW5kb2JqCgo3MDYgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0K1tbWk5OTCmVuZHN0cmVhbQplbmRvYmoKCjM4MCAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFszMzguNjMwMyA1MjIuNDc2MCAzNTguNjc1OCA1MzguMTMzM10KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gNzA2IDAgUj4+Ci9NYXRyaXggWy0wLjA3MTAgLTAuMDAwMCAwLjAwMDAgLTAuMDcwOCAxNjEuNzk3NiA2MDkuNDM3NF0+PgplbmRvYmoKCjcwNyAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrW1taTk5MKZW5kc3RyZWFtCmVuZG9iagoKMTE1IDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzMzOC42MzAzIDUyMi40NzYwIDM1OC42NzU4IDUzOC4xMzMzXQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA3MDcgMCBSPj4KL01hdHJpeCBbLTAuMDcxMCAtMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDE2My44NTc2IDY2Ni42ODAwXT4+CmVuZG9iagoKNzA4IDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCtbW1pOTkwplbmRzdHJlYW0KZW5kb2JqCgoxNjkgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbMzM4LjYzMDMgNTIyLjQ3NjAgMzU4LjY3NTggNTM4LjEzMzNdCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDcwOCAwIFI+PgovTWF0cml4IFstMC4wNzEwIC0wLjAwMDAgMC4wMDAwIC0wLjA3MDggMTY3LjUwNDAgNjQ3LjU5NzNdPj4KZW5kb2JqCgo3MDkgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0K1tbWk5OTCmVuZHN0cmVhbQplbmRvYmoKCjY1IDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzMzOC42MzAzIDUyMi40NzYwIDM1OC42NzU4IDUzOC4xMzMzXQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA3MDkgMCBSPj4KL01hdHJpeCBbLTAuMDcxMCAtMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDE3Mi41OTkxIDY4NS41ODgwXT4+CmVuZG9iagoKNzEwIDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCtbW1pOTkwplbmRzdHJlYW0KZW5kb2JqCgo0MTYgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbMzM4LjYzMDMgNTIyLjQ3NjAgMzU4LjY3NTggNTM4LjEzMzNdCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDcxMCAwIFI+PgovTWF0cml4IFstMC4wNzEwIC0wLjAwMDAgMC4wMDAwIC0wLjA3MDggMTcyLjYxMTAgNzA4LjQzODZdPj4KZW5kb2JqCgo3MTEgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0K1tbWk5OTCmVuZHN0cmVhbQplbmRvYmoKCjIyNiAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFszMzguNjMwMyA1MjIuNDc2MCAzNTguNjc1OCA1MzguMTMzM10KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gNzExIDAgUj4+Ci9NYXRyaXggWy0wLjA3MTAgLTAuMDAwMCAwLjAwMDAgLTAuMDcwOCAxNzYuMzEzOCA2MjguMzQ1NV0+PgplbmRvYmoKCjcxMiAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrW1taTk5MKZW5kc3RyZWFtCmVuZG9iagoKMTE5IDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzMzOC42MzAzIDUyMi40NzYwIDM1OC42NzU4IDUzOC4xMzMzXQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA3MTIgMCBSPj4KL01hdHJpeCBbLTAuMDcxMCAtMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDE4Mi44MDkwIDY2Ni42ODAwXT4+CmVuZG9iagoKNzEzIDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCtbW1pOTkwplbmRzdHJlYW0KZW5kb2JqCgozODQgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbMzM4LjYzMDMgNTIyLjQ3NjAgMzU4LjY3NTggNTM4LjEzMzNdCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDcxMyAwIFI+PgovTWF0cml4IFstMC4wNzEwIC0wLjAwMDAgMC4wMDAwIC0wLjA3MDggMTg1LjAxMjkgNjA5LjQzNzRdPj4KZW5kb2JqCgo3MTQgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0K1tbWk5OTCmVuZHN0cmVhbQplbmRvYmoKCjE3MyAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFszMzguNjMwMyA1MjIuNDc2MCAzNTguNjc1OCA1MzguMTMzM10KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gNzE0IDAgUj4+Ci9NYXRyaXggWy0wLjA3MTAgLTAuMDAwMCAwLjAwMDAgLTAuMDcwOCAxODYuNDU1NCA2NDcuNTk3M10+PgplbmRvYmoKCjcxNSAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrW1taTk5MKZW5kc3RyZWFtCmVuZG9iagoKNzAgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbMzM4LjYzMDMgNTIyLjQ3NjAgMzU4LjY3NTggNTM4LjEzMzNdCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDcxNSAwIFI+PgovTWF0cml4IFstMC4wNzEwIC0wLjAwMDAgMC4wMDAwIC0wLjA3MDggMTkxLjU1MDUgNjg1LjU4ODBdPj4KZW5kb2JqCgo3MTYgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0K1tbWk5OTCmVuZHN0cmVhbQplbmRvYmoKCjQ2MCAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFszMzguNjMwMyA1MjIuNDc2MCAzNTguNjc1OCA1MzguMTMzM10KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gNzE2IDAgUj4+Ci9NYXRyaXggWy0wLjA3MTAgLTAuMDAwMCAwLjAwMDAgLTAuMDcwOCAxOTEuNjA2OCA3MDguNDM4Nl0+PgplbmRvYmoKCjcxNyAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrW1taTk5MKZW5kc3RyZWFtCmVuZG9iagoKMjMwIDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzMzOC42MzAzIDUyMi40NzYwIDM1OC42NzU4IDUzOC4xMzMzXQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA3MTcgMCBSPj4KL01hdHJpeCBbLTAuMDcxMCAtMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDE5NS4yNjUxIDYyOC4zNDU1XT4+CmVuZG9iagoKNzE4IDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCtbW1pOTkwplbmRzdHJlYW0KZW5kb2JqCgoxMjQgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbMzM4LjYzMDMgNTIyLjQ3NjAgMzU4LjY3NTggNTM4LjEzMzNdCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDcxOCAwIFI+PgovTWF0cml4IFstMC4wNzEwIC0wLjAwMDAgMC4wMDAwIC0wLjA3MDggMjAxLjc2MDMgNjY2LjY4MDBdPj4KZW5kb2JqCgo3MTkgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0K1tbWk5OTCmVuZHN0cmVhbQplbmRvYmoKCjE3OCAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFszMzguNjMwMyA1MjIuNDc2MCAzNTguNjc1OCA1MzguMTMzM10KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gNzE5IDAgUj4+Ci9NYXRyaXggWy0wLjA3MTAgLTAuMDAwMCAwLjAwMDAgLTAuMDcwOCAyMDUuNDA2NyA2NDcuNTk3M10+PgplbmRvYmoKCjcyMCAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrW1taTk5MKZW5kc3RyZWFtCmVuZG9iagoKNzQgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbMzM4LjYzMDMgNTIyLjQ3NjAgMzU4LjY3NTggNTM4LjEzMzNdCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDcyMCAwIFI+PgovTWF0cml4IFstMC4wNzEwIC0wLjAwMDAgMC4wMDAwIC0wLjA3MDggMjEwLjUwMTggNjg1LjU4ODBdPj4KZW5kb2JqCgo3MjEgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0K1tbWk5OTCmVuZHN0cmVhbQplbmRvYmoKCjY2IDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzMzOC42MzAzIDUyMi40NzYwIDM1OC42NzU4IDUzOC4xMzMzXQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA3MjEgMCBSPj4KL01hdHJpeCBbLTAuMDcxMCAtMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDIxMC42MDI2IDcwOC40Mzg2XT4+CmVuZG9iagoKNzIyIDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCtbW1pOTkwplbmRzdHJlYW0KZW5kb2JqCgoyMzUgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbMzM4LjYzMDMgNTIyLjQ3NjAgMzU4LjY3NTggNTM4LjEzMzNdCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDcyMiAwIFI+PgovTWF0cml4IFstMC4wNzEwIC0wLjAwMDAgMC4wMDAwIC0wLjA3MDggMjE0LjIxNjQgNjI4LjM0NTVdPj4KZW5kb2JqCgo3MjMgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0K1tbWk5OTCmVuZHN0cmVhbQplbmRvYmoKCjEyOCAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFszMzguNjMwMyA1MjIuNDc2MCAzNTguNjc1OCA1MzguMTMzM10KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gNzIzIDAgUj4+Ci9NYXRyaXggWy0wLjA3MTAgLTAuMDAwMCAwLjAwMDAgLTAuMDcwOCAyMjAuNzExNyA2NjYuNjgwMF0+PgplbmRvYmoKCjcyNCAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrW1taTk5MKZW5kc3RyZWFtCmVuZG9iagoKMTgyIDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzMzOC42MzAzIDUyMi40NzYwIDM1OC42NzU4IDUzOC4xMzMzXQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA3MjQgMCBSPj4KL01hdHJpeCBbLTAuMDcxMCAtMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDIyNC4zNTgwIDY0Ny41OTczXT4+CmVuZG9iagoKNzI1IDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCtbW1pOTkwplbmRzdHJlYW0KZW5kb2JqCgo3OSAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFszMzguNjMwMyA1MjIuNDc2MCAzNTguNjc1OCA1MzguMTMzM10KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gNzI1IDAgUj4+Ci9NYXRyaXggWy0wLjA3MTAgLTAuMDAwMCAwLjAwMDAgLTAuMDcwOCAyMjkuNDUzMiA2ODUuNTg4MF0+PgplbmRvYmoKCjcyNiAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrW1taTk5MKZW5kc3RyZWFtCmVuZG9iagoKMTEwIDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzMzOC42MzAzIDUyMi40NzYwIDM1OC42NzU4IDUzOC4xMzMzXQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA3MjYgMCBSPj4KL01hdHJpeCBbLTAuMDcxMCAtMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDIyOS41OTg0IDcwOC40Mzg2XT4+CmVuZG9iagoKNzI3IDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCtbW1pOTkwplbmRzdHJlYW0KZW5kb2JqCgoyMzkgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbMzM4LjYzMDMgNTIyLjQ3NjAgMzU4LjY3NTggNTM4LjEzMzNdCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDcyNyAwIFI+PgovTWF0cml4IFstMC4wNzEwIC0wLjAwMDAgMC4wMDAwIC0wLjA3MDggMjMzLjE2NzggNjI4LjM0NTVdPj4KZW5kb2JqCgo3MjggMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0K1tbWk5OTCmVuZHN0cmVhbQplbmRvYmoKCjEzMyAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFszMzguNjMwMyA1MjIuNDc2MCAzNTguNjc1OCA1MzguMTMzM10KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gNzI4IDAgUj4+Ci9NYXRyaXggWy0wLjA3MTAgLTAuMDAwMCAwLjAwMDAgLTAuMDcwOCAyMzkuNjYzMCA2NjYuNjgwMF0+PgplbmRvYmoKCjcyOSAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrW1taTk5MKZW5kc3RyZWFtCmVuZG9iagoKMTg2IDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzMzOC42MzAzIDUyMi40NzYwIDM1OC42NzU4IDUzOC4xMzMzXQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA3MjkgMCBSPj4KL01hdHJpeCBbLTAuMDcxMCAtMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDI0My4zMDk0IDY0Ny41OTczXT4+CmVuZG9iagoKNzMwIDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCtbW1pOTkwplbmRzdHJlYW0KZW5kb2JqCgo4MyAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFszMzguNjMwMyA1MjIuNDc2MCAzNTguNjc1OCA1MzguMTMzM10KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gNzMwIDAgUj4+Ci9NYXRyaXggWy0wLjA3MTAgLTAuMDAwMCAwLjAwMDAgLTAuMDcwOCAyNDguNDA0NSA2ODUuNTg4MF0+PgplbmRvYmoKCjczMSAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrW1taTk5MKZW5kc3RyZWFtCmVuZG9iagoKMjQ0IDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzMzOC42MzAzIDUyMi40NzYwIDM1OC42NzU4IDUzOC4xMzMzXQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA3MzEgMCBSPj4KL01hdHJpeCBbLTAuMDcxMCAtMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDI1Mi4xMTkxIDYyOC4zNDU1XT4+CmVuZG9iagoKNzMyIDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCtbW1pOTkwplbmRzdHJlYW0KZW5kb2JqCgoxMzcgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbMzM4LjYzMDMgNTIyLjQ3NjAgMzU4LjY3NTggNTM4LjEzMzNdCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDczMiAwIFI+PgovTWF0cml4IFstMC4wNzEwIC0wLjAwMDAgMC4wMDAwIC0wLjA3MDggMjU4LjYxNDMgNjY2LjY4MDBdPj4KZW5kb2JqCgo3MzMgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0K1tbWk5OTCmVuZHN0cmVhbQplbmRvYmoKCjE1NSAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFszMzguNjMwMyA1MjIuNDc2MCAzNTguNjc1OCA1MzguMTMzM10KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gNzMzIDAgUj4+Ci9NYXRyaXggWy0wLjA3MTAgLTAuMDAwMCAwLjAwMDAgLTAuMDcwOCAyNTguNjY1MyA3MDguNDM4Nl0+PgplbmRvYmoKCjczNCAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrW1taTk5MKZW5kc3RyZWFtCmVuZG9iagoKMTkxIDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzMzOC42MzAzIDUyMi40NzYwIDM1OC42NzU4IDUzOC4xMzMzXQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA3MzQgMCBSPj4KL01hdHJpeCBbLTAuMDcxMCAtMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDI2Mi4yNjA3IDY0Ny41OTczXT4+CmVuZG9iagoKNzM1IDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCtbW1pOTkwplbmRzdHJlYW0KZW5kb2JqCgo4NyAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFszMzguNjMwMyA1MjIuNDc2MCAzNTguNjc1OCA1MzguMTMzM10KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gNzM1IDAgUj4+Ci9NYXRyaXggWy0wLjA3MTAgLTAuMDAwMCAwLjAwMDAgLTAuMDcwOCAyNjcuMzU1OCA2ODUuNTg4MF0+PgplbmRvYmoKCjczNiAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrW1taTk5MKZW5kc3RyZWFtCmVuZG9iagoKMjQ4IDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzMzOC42MzAzIDUyMi40NzYwIDM1OC42NzU4IDUzOC4xMzMzXQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA3MzYgMCBSPj4KL01hdHJpeCBbLTAuMDcxMCAtMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDI3MS4wNzA0IDYyOC4zNDU1XT4+CmVuZG9iagoKNzM3IDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCtbW1pOTkwplbmRzdHJlYW0KZW5kb2JqCgoxNDEgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbMzM4LjYzMDMgNTIyLjQ3NjAgMzU4LjY3NTggNTM4LjEzMzNdCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDczNyAwIFI+PgovTWF0cml4IFstMC4wNzEwIC0wLjAwMDAgMC4wMDAwIC0wLjA3MDggMjc3LjU2NTcgNjY2LjY4MDBdPj4KZW5kb2JqCgo3MzggMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0K1tbWk5OTCmVuZHN0cmVhbQplbmRvYmoKCjE5OSAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFszMzguNjMwMyA1MjIuNDc2MCAzNTguNjc1OCA1MzguMTMzM10KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gNzM4IDAgUj4+Ci9NYXRyaXggWy0wLjA3MTAgLTAuMDAwMCAwLjAwMDAgLTAuMDcwOCAyNzcuNjYxMSA3MDguNDM4Nl0+PgplbmRvYmoKCjczOSAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrW1taTk5MKZW5kc3RyZWFtCmVuZG9iagoKMTk1IDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzMzOC42MzAzIDUyMi40NzYwIDM1OC42NzU4IDUzOC4xMzMzXQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA3MzkgMCBSPj4KL01hdHJpeCBbLTAuMDcxMCAtMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDI4MS4yMTIwIDY0Ny41OTczXT4+CmVuZG9iagoKNzQwIDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCtbW1pOTkwplbmRzdHJlYW0KZW5kb2JqCgo5MiAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFszMzguNjMwMyA1MjIuNDc2MCAzNTguNjc1OCA1MzguMTMzM10KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gNzQwIDAgUj4+Ci9NYXRyaXggWy0wLjA3MTAgLTAuMDAwMCAwLjAwMDAgLTAuMDcwOCAyODYuMzA3MiA2ODUuNTg4MF0+PgplbmRvYmoKCjc0MSAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrW1taTk5MKZW5kc3RyZWFtCmVuZG9iagoKMjUyIDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzMzOC42MzAzIDUyMi40NzYwIDM1OC42NzU4IDUzOC4xMzMzXQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA3NDEgMCBSPj4KL01hdHJpeCBbLTAuMDcxMCAtMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDI5MC4wMjE4IDYyOC4zNDU1XT4+CmVuZG9iagoKNzQyIDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCtbW1pOTkwplbmRzdHJlYW0KZW5kb2JqCgoxNDcgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbMzM4LjYzMDMgNTIyLjQ3NjAgMzU4LjY3NTggNTM4LjEzMzNdCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDc0MiAwIFI+PgovTWF0cml4IFstMC4wNzEwIC0wLjAwMDAgMC4wMDAwIC0wLjA3MDggMjk2LjUxNzAgNjY2LjY4MDBdPj4KZW5kb2JqCgo3NDMgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0K1tbWk5OTCmVuZHN0cmVhbQplbmRvYmoKCjI0MyAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFszMzguNjMwMyA1MjIuNDc2MCAzNTguNjc1OCA1MzguMTMzM10KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gNzQzIDAgUj4+Ci9NYXRyaXggWy0wLjA3MTAgLTAuMDAwMCAwLjAwMDAgLTAuMDcwOCAyOTYuNjU2OSA3MDguNDM4Nl0+PgplbmRvYmoKCjc0NCAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrW1taTk5MKZW5kc3RyZWFtCmVuZG9iagoKMjAwIDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzMzOC42MzAzIDUyMi40NzYwIDM1OC42NzU4IDUzOC4xMzMzXQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA3NDQgMCBSPj4KL01hdHJpeCBbLTAuMDcxMCAtMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDMwMC4xNjM0IDY0Ny41OTczXT4+CmVuZG9iagoKNzQ1IDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCtbW1pOTkwplbmRzdHJlYW0KZW5kb2JqCgo5NiAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFszMzguNjMwMyA1MjIuNDc2MCAzNTguNjc1OCA1MzguMTMzM10KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gNzQ1IDAgUj4+Ci9NYXRyaXggWy0wLjA3MTAgLTAuMDAwMCAwLjAwMDAgLTAuMDcwOCAzMDUuMjU4NSA2ODUuNTg4MF0+PgplbmRvYmoKCjc0NiAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrW1taTk5MKZW5kc3RyZWFtCmVuZG9iagoKMzg5IDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzMzOC42MzAzIDUyMi40NzYwIDM1OC42NzU4IDUzOC4xMzMzXQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA3NDYgMCBSPj4KL01hdHJpeCBbLTAuMDcxMCAtMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDMwOC4xOTk0IDYwOS42ODA1XT4+CmVuZG9iagoKNzQ3IDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCtbW1pOTkwplbmRzdHJlYW0KZW5kb2JqCgoyNTggMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbMzM4LjYzMDMgNTIyLjQ3NjAgMzU4LjY3NTggNTM4LjEzMzNdCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDc0NyAwIFI+PgovTWF0cml4IFstMC4wNzEwIC0wLjAwMDAgMC4wMDAwIC0wLjA3MDggMzA4Ljk3MzEgNjI4LjM0NTVdPj4KZW5kb2JqCgo3NDggMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0K1tbWk5OTCmVuZHN0cmVhbQplbmRvYmoKCjE1MSAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFszMzguNjMwMyA1MjIuNDc2MCAzNTguNjc1OCA1MzguMTMzM10KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gNzQ4IDAgUj4+Ci9NYXRyaXggWy0wLjA3MTAgLTAuMDAwMCAwLjAwMDAgLTAuMDcwOCAzMTUuNDY4MyA2NjYuNjgwMF0+PgplbmRvYmoKCjc0OSAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrW1taTk5MKZW5kc3RyZWFtCmVuZG9iagoKMjg4IDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzMzOC42MzAzIDUyMi40NzYwIDM1OC42NzU4IDUzOC4xMzMzXQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA3NDkgMCBSPj4KL01hdHJpeCBbLTAuMDcxMCAtMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDMxNS42NTI4IDcwOC40Mzg2XT4+CmVuZG9iagoKNzUwIDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCtbW1pOTkwplbmRzdHJlYW0KZW5kb2JqCgoyMDQgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbMzM4LjYzMDMgNTIyLjQ3NjAgMzU4LjY3NTggNTM4LjEzMzNdCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDc1MCAwIFI+PgovTWF0cml4IFstMC4wNzEwIC0wLjAwMDAgMC4wMDAwIC0wLjA3MDggMzE5LjExNDcgNjQ3LjU5NzNdPj4KZW5kb2JqCgo3NTEgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0K1tbWk5OTCmVuZHN0cmVhbQplbmRvYmoKCjEwMSAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFszMzguNjMwMyA1MjIuNDc2MCAzNTguNjc1OCA1MzguMTMzM10KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gNzUxIDAgUj4+Ci9NYXRyaXggWy0wLjA3MTAgLTAuMDAwMCAwLjAwMDAgLTAuMDcwOCAzMjQuMjA5OCA2ODUuNTg4MF0+PgplbmRvYmoKCjc1MiAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrW1taTk5MKZW5kc3RyZWFtCmVuZG9iagoKMjYyIDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzMzOC42MzAzIDUyMi40NzYwIDM1OC42NzU4IDUzOC4xMzMzXQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA3NTIgMCBSPj4KL01hdHJpeCBbLTAuMDcxMCAtMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDMyNy45MjQ1IDYyOC4zNDU1XT4+CmVuZG9iagoKNzUzIDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCtbW1pOTkwplbmRzdHJlYW0KZW5kb2JqCgozOTMgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbMzM4LjYzMDMgNTIyLjQ3NjAgMzU4LjY3NTggNTM4LjEzMzNdCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDc1MyAwIFI+PgovTWF0cml4IFstMC4wNzEwIC0wLjAwMDAgMC4wMDAwIC0wLjA3MDggMzMxLjExMDcgNjA5LjQzNzRdPj4KZW5kb2JqCgo3NTQgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0K1tbWk5OTCmVuZHN0cmVhbQplbmRvYmoKCjE1NiAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFszMzguNjMwMyA1MjIuNDc2MCAzNTguNjc1OCA1MzguMTMzM10KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gNzU0IDAgUj4+Ci9NYXRyaXggWy0wLjA3MTAgLTAuMDAwMCAwLjAwMDAgLTAuMDcwOCAzMzQuNDE5NyA2NjYuNjgwMF0+PgplbmRvYmoKCjc1NSAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrW1taTk5MKZW5kc3RyZWFtCmVuZG9iagoKMjA4IDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzMzOC42MzAzIDUyMi40NzYwIDM1OC42NzU4IDUzOC4xMzMzXQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA3NTUgMCBSPj4KL01hdHJpeCBbLTAuMDcxMCAtMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDMzOC4wNjYxIDY0Ny41OTczXT4+CmVuZG9iagoKNzU2IDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCtbW1pOTkwplbmRzdHJlYW0KZW5kb2JqCgoxMDUgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbMzM4LjYzMDMgNTIyLjQ3NjAgMzU4LjY3NTggNTM4LjEzMzNdCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDc1NiAwIFI+PgovTWF0cml4IFstMC4wNzEwIC0wLjAwMDAgMC4wMDAwIC0wLjA3MDggMzQzLjE2MTIgNjg1LjU4ODBdPj4KZW5kb2JqCgo3NTcgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0K1tbWk5OTCmVuZHN0cmVhbQplbmRvYmoKCjMzMiAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFszMzguNjMwMyA1MjIuNDc2MCAzNTguNjc1OCA1MzguMTMzM10KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gNzU3IDAgUj4+Ci9NYXRyaXggWy0wLjA3MTAgLTAuMDAwMCAwLjAwMDAgLTAuMDcwOCAzNDMuMjYxMSA3MDguNDM4Nl0+PgplbmRvYmoKCjc1OCAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrW1taTk5MKZW5kc3RyZWFtCmVuZG9iagoKMjY3IDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzMzOC42MzAzIDUyMi40NzYwIDM1OC42NzU4IDUzOC4xMzMzXQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA3NTggMCBSPj4KL01hdHJpeCBbLTAuMDcxMCAtMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDM0Ni44NzU4IDYyOC4zNDU1XT4+CmVuZG9iagoKNzU5IDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCtbW1pOTkwplbmRzdHJlYW0KZW5kb2JqCgoxNjAgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbMzM4LjYzMDMgNTIyLjQ3NjAgMzU4LjY3NTggNTM4LjEzMzNdCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDc1OSAwIFI+PgovTWF0cml4IFstMC4wNzEwIC0wLjAwMDAgMC4wMDAwIC0wLjA3MDggMzUzLjM3MTAgNjY2LjY4MDBdPj4KZW5kb2JqCgo3NjAgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0K1tbWk5OTCmVuZHN0cmVhbQplbmRvYmoKCjQwNiAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFszMzguNjMwMyA1MjIuNDc2MCAzNTguNjc1OCA1MzguMTMzM10KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gNzYwIDAgUj4+Ci9NYXRyaXggWy0wLjA3MTAgLTAuMDAwMCAwLjAwMDAgLTAuMDcwOCAzNTQuMTI2MCA2MDkuNDM3NF0+PgplbmRvYmoKCjc2MSAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrW1taTk5MKZW5kc3RyZWFtCmVuZG9iagoKMjEzIDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzMzOC42MzAzIDUyMi40NzYwIDM1OC42NzU4IDUzOC4xMzMzXQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA3NjEgMCBSPj4KL01hdHJpeCBbLTAuMDcxMCAtMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDM1Ny4wMTc0IDY0Ny41OTczXT4+CmVuZG9iagoKNzYyIDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCtbW1pOTkwplbmRzdHJlYW0KZW5kb2JqCgoxMDkgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbMzM4LjYzMDMgNTIyLjQ3NjAgMzU4LjY3NTggNTM4LjEzMzNdCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDc2MiAwIFI+PgovTWF0cml4IFstMC4wNzEwIC0wLjAwMDAgMC4wMDAwIC0wLjA3MDggMzYyLjExMjUgNjg1LjU4ODBdPj4KZW5kb2JqCgo3NjMgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0K1tbWk5OTCmVuZHN0cmVhbQplbmRvYmoKCjM3NyAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFszMzguNjMwMyA1MjIuNDc2MCAzNTguNjc1OCA1MzguMTMzM10KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gNzYzIDAgUj4+Ci9NYXRyaXggWy0wLjA3MTAgLTAuMDAwMCAwLjAwMDAgLTAuMDcwOCAzNjIuMjU2OSA3MDguNDM4Nl0+PgplbmRvYmoKCjc2NCAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrW1taTk5MKZW5kc3RyZWFtCmVuZG9iagoKMTY0IDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzMzOC42MzAzIDUyMi40NzYwIDM1OC42NzU4IDUzOC4xMzMzXQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA3NjQgMCBSPj4KL01hdHJpeCBbLTAuMDcxMCAtMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDM3Mi4zMjIzIDY2Ni42ODAwXT4+CmVuZG9iagoKNzY1IDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCtbW1pOTkwplbmRzdHJlYW0KZW5kb2JqCgoyMTcgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbMzM4LjYzMDMgNTIyLjQ3NjAgMzU4LjY3NTggNTM4LjEzMzNdCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDc2NSAwIFI+PgovTWF0cml4IFstMC4wNzEwIC0wLjAwMDAgMC4wMDAwIC0wLjA3MDggMzc1Ljk2ODcgNjQ3LjU5NzNdPj4KZW5kb2JqCgo3NjYgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0K1tbWk5OTCmVuZHN0cmVhbQplbmRvYmoKCjQwMiAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFszMzguNjMwMyA1MjIuNDc2MCAzNTguNjc1OCA1MzguMTMzM10KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gNzY2IDAgUj4+Ci9NYXRyaXggWy0wLjA3MTAgLTAuMDAwMCAwLjAwMDAgLTAuMDcwOCAzNzcuMjM5MyA2MDkuNDM3NF0+PgplbmRvYmoKCjc2NyAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrW1taTk5MKZW5kc3RyZWFtCmVuZG9iagoKNDExIDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzMzOC42MzAzIDUyMi40NzYwIDM1OC42NzU4IDUzOC4xMzMzXQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA3NjcgMCBSPj4KL01hdHJpeCBbLTAuMDcxMCAtMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDM4MS4yNTI3IDcwOC40Mzg2XT4+CmVuZG9iagoKNzY4IDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCtbW1pOTkwplbmRzdHJlYW0KZW5kb2JqCgoyNzEgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbMzM4LjYzMDMgNTIyLjQ3NjAgMzU4LjY3NTggNTM4LjEzMzNdCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDc2OCAwIFI+PgovTWF0cml4IFstMC4wNzEwIC0wLjAwMDAgMC4wMDAwIC0wLjA3MDggNDAwLjE2MzggNjI4LjM0NTVdPj4KZW5kb2JqCgo3NjkgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0K1tbWk5OTCmVuZHN0cmVhbQplbmRvYmoKCjM2NyAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFszMzguNjMwMyA1MjIuNDc2MCAzNTguNjc1OCA1MzguMTMzM10KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gNzY5IDAgUj4+Ci9NYXRyaXggWy0wLjA3MTAgLTAuMDAwMCAwLjAwMDAgLTAuMDcwOCA0MDAuMTY4OCA2NDcuNjc5OV0+PgplbmRvYmoKCjc3MCAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrW1taTk5MKZW5kc3RyZWFtCmVuZG9iagoKNDE1IDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzMzOC42MzAzIDUyMi40NzYwIDM1OC42NzU4IDUzOC4xMzMzXQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA3NzAgMCBSPj4KL01hdHJpeCBbLTAuMDcxMCAtMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDQwMC4yNDg1IDcwOC40Mzg2XT4+CmVuZG9iagoKNzcxIDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCtbW1pOTkwplbmRzdHJlYW0KZW5kb2JqCgozNjAgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbMzM4LjYzMDMgNTIyLjQ3NjAgMzU4LjY3NTggNTM4LjEzMzNdCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDc3MSAwIFI+PgovTWF0cml4IFstMC4wNzEwIC0wLjAwMDAgMC4wMDAwIC0wLjA3MDggNDAwLjMzMDcgNjg1LjU4ODBdPj4KZW5kb2JqCgo3NzIgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0K1tbWk5OTCmVuZHN0cmVhbQplbmRvYmoKCjM5NyAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFszMzguNjMwMyA1MjIuNDc2MCAzNTguNjc1OCA1MzguMTMzM10KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gNzcyIDAgUj4+Ci9NYXRyaXggWy0wLjA3MTAgLTAuMDAwMCAwLjAwMDAgLTAuMDcwOCA0MDAuMzUyNiA2MDkuNDM3NF0+PgplbmRvYmoKCjc3MyAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrW1taTk5MKZW5kc3RyZWFtCmVuZG9iagoKNDM3IDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzMzOC42MzAzIDUyMi40NzYwIDM1OC42NzU4IDUzOC4xMzMzXQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA3NzMgMCBSPj4KL01hdHJpeCBbLTAuMDcxMCAtMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDQyMi43ODY2IDY4NS41ODgwXT4+CmVuZG9iagoKNzc0IDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCtbW1pOTkwplbmRzdHJlYW0KZW5kb2JqCgo0NTEgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbMzM4LjYzMDMgNTIyLjQ3NjAgMzU4LjY3NTggNTM4LjEzMzNdCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDc3NCAwIFI+PgovTWF0cml4IFstMC4wNzEwIC0wLjAwMDAgMC4wMDAwIC0wLjA3MDggNDIyLjc4NjYgNjY2LjYyNjldPj4KZW5kb2JqCgo3NzUgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0K1tbWk5OTCmVuZHN0cmVhbQplbmRvYmoKCjQ2NCAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFszMzguNjMwMyA1MjIuNDc2MCAzNTguNjc1OCA1MzguMTMzM10KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gNzc1IDAgUj4+Ci9NYXRyaXggWy0wLjA3MTAgLTAuMDAwMCAwLjAwMDAgLTAuMDcwOCA0MjIuNzg2NiA2NDcuNjY1OF0+PgplbmRvYmoKCjc3NiAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrW1taTk5MKZW5kc3RyZWFtCmVuZG9iagoKMzkgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbMzM4LjYzMDMgNTIyLjQ3NjAgMzU4LjY3NTggNTM4LjEzMzNdCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDc3NiAwIFI+PgovTWF0cml4IFstMC4wNzEwIC0wLjAwMDAgMC4wMDAwIC0wLjA3MDggNDIyLjc4NjYgNjA5LjUwMDVdPj4KZW5kb2JqCgo3NzcgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0K1tbWk5OTCmVuZHN0cmVhbQplbmRvYmoKCjQyNCAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFszMzguNjMwMyA1MjIuNDc2MCAzNTguNjc1OCA1MzguMTMzM10KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gNzc3IDAgUj4+Ci9NYXRyaXggWy0wLjA3MTAgLTAuMDAwMCAwLjAwMDAgLTAuMDcwOCA0MjMuMDI5NyA3MDguNDM4Nl0+PgplbmRvYmoKCjc3OCAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrW1taTk5MKZW5kc3RyZWFtCmVuZG9iagoKNDQyIDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzMzOC42MzAzIDUyMi40NzYwIDM1OC42NzU4IDUzOC4xMzMzXQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA3NzggMCBSPj4KL01hdHJpeCBbLTAuMDcxMCAtMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDQ0MS43ODI0IDY4NS41ODgwXT4+CmVuZG9iagoKNzc5IDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCtbW1pOTkwplbmRzdHJlYW0KZW5kb2JqCgo0NTUgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbMzM4LjYzMDMgNTIyLjQ3NjAgMzU4LjY3NTggNTM4LjEzMzNdCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDc3OSAwIFI+PgovTWF0cml4IFstMC4wNzEwIC0wLjAwMDAgMC4wMDAwIC0wLjA3MDggNDQxLjc4MjQgNjY2LjYyNjldPj4KZW5kb2JqCgo3ODAgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0K1tbWk5OTCmVuZHN0cmVhbQplbmRvYmoKCjQ2OCAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFszMzguNjMwMyA1MjIuNDc2MCAzNTguNjc1OCA1MzguMTMzM10KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gNzgwIDAgUj4+Ci9NYXRyaXggWy0wLjA3MTAgLTAuMDAwMCAwLjAwMDAgLTAuMDcwOCA0NDEuNzgyNCA2NDcuNjY1OF0+PgplbmRvYmoKCjc4MSAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrW1taTk5MKZW5kc3RyZWFtCmVuZG9iagoKNTIgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbMzM4LjYzMDMgNTIyLjQ3NjAgMzU4LjY3NTggNTM4LjEzMzNdCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDc4MSAwIFI+PgovTWF0cml4IFstMC4wNzEwIC0wLjAwMDAgMC4wMDAwIC0wLjA3MDggNDQxLjc4MjQgNjI4Ljk0NzhdPj4KZW5kb2JqCgo3ODIgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0K1tbWk5OTCmVuZHN0cmVhbQplbmRvYmoKCjQzIDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzMzOC42MzAzIDUyMi40NzYwIDM1OC42NzU4IDUzOC4xMzMzXQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA3ODIgMCBSPj4KL01hdHJpeCBbLTAuMDcxMCAtMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDQ0MS43ODI0IDYwOS41MDA1XT4+CmVuZG9iagoKNzgzIDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCtbW1pOTkwplbmRzdHJlYW0KZW5kb2JqCgo0MjkgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbMzM4LjYzMDMgNTIyLjQ3NjAgMzU4LjY3NTggNTM4LjEzMzNdCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDc4MyAwIFI+PgovTWF0cml4IFstMC4wNzEwIC0wLjAwMDAgMC4wMDAwIC0wLjA3MDggNDQyLjAyNTUgNzA4LjQzODZdPj4KZW5kb2JqCgo3ODQgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0K1tbWk5OTCmVuZHN0cmVhbQplbmRvYmoKCjQ0NiAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFszMzguNjMwMyA1MjIuNDc2MCAzNTguNjc1OCA1MzguMTMzM10KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gNzg0IDAgUj4+Ci9NYXRyaXggWy0wLjA3MTAgLTAuMDAwMCAwLjAwMDAgLTAuMDcwOCA0NjAuNzc4MyA2ODUuNTg4MF0+PgplbmRvYmoKCjc4NSAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrW1taTk5MKZW5kc3RyZWFtCmVuZG9iagoKNDU5IDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzMzOC42MzAzIDUyMi40NzYwIDM1OC42NzU4IDUzOC4xMzMzXQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA3ODUgMCBSPj4KL01hdHJpeCBbLTAuMDcxMCAtMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDQ2MC43NzgzIDY2Ni42MjY5XT4+CmVuZG9iagoKNzg2IDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCtbW1pOTkwplbmRzdHJlYW0KZW5kb2JqCgozNSAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFszMzguNjMwMyA1MjIuNDc2MCAzNTguNjc1OCA1MzguMTMzM10KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gNzg2IDAgUj4+Ci9NYXRyaXggWy0wLjA3MTAgLTAuMDAwMCAwLjAwMDAgLTAuMDcwOCA0NjAuNzc4MyA2NDcuNjY1OF0+PgplbmRvYmoKCjc4NyAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrW1taTk5MKZW5kc3RyZWFtCmVuZG9iagoKNDggMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbMzM4LjYzMDMgNTIyLjQ3NjAgMzU4LjY3NTggNTM4LjEzMzNdCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDc4NyAwIFI+PgovTWF0cml4IFstMC4wNzEwIC0wLjAwMDAgMC4wMDAwIC0wLjA3MDggNDYwLjc3ODMgNjA5LjUwMDVdPj4KZW5kb2JqCgo3ODggMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0K1tbWk5OTCmVuZHN0cmVhbQplbmRvYmoKCjQzMyAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFszMzguNjMwMyA1MjIuNDc2MCAzNTguNjc1OCA1MzguMTMzM10KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gNzg4IDAgUj4+Ci9NYXRyaXggWy0wLjA3MTAgLTAuMDAwMCAwLjAwMDAgLTAuMDcwOCA0NjEuMDIxMyA3MDguNDM4Nl0+PgplbmRvYmoKCjc4OSAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrW1taTk5MKZW5kc3RyZWFtCmVuZG9iagoKMjc1IDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzMzOC42MzAzIDUyMi40NzYwIDM1OC42NzU4IDUzOC4xMzMzXQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA3ODkgMCBSPj4KL01hdHJpeCBbLTAuMDcxMCAtMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDQ4NC4yODg3IDY4NS41ODgwXT4+CmVuZG9iagoKNzkwIDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCtbW1pOTkwplbmRzdHJlYW0KZW5kb2JqCgoyOTMgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbMzM4LjYzMDMgNTIyLjQ3NjAgMzU4LjY3NTggNTM4LjEzMzNdCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDc5MCAwIFI+PgovTWF0cml4IFstMC4wNzEwIC0wLjAwMDAgMC4wMDAwIC0wLjA3MDggNDg0LjI4ODcgNjY2LjU2NjJdPj4KZW5kb2JqCgo3OTEgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0K1tbWk5OTCmVuZHN0cmVhbQplbmRvYmoKCjMwNiAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFszMzguNjMwMyA1MjIuNDc2MCAzNTguNjc1OCA1MzguMTMzM10KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gNzkxIDAgUj4+Ci9NYXRyaXggWy0wLjA3MTAgLTAuMDAwMCAwLjAwMDAgLTAuMDcwOCA0ODQuMjg4NyA2NDcuNTQ0M10+PgplbmRvYmoKCjc5MiAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrW1taTk5MKZW5kc3RyZWFtCmVuZG9iagoKMzI0IDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzMzOC42MzAzIDUyMi40NzYwIDM1OC42NzU4IDUzOC4xMzMzXQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA3OTIgMCBSPj4KL01hdHJpeCBbLTAuMDcxMCAtMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDQ4NC4yODg3IDYyOC41MjI0XT4+CmVuZG9iagoKNzkzIDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCtbW1pOTkwplbmRzdHJlYW0KZW5kb2JqCgozMzcgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbMzM4LjYzMDMgNTIyLjQ3NjAgMzU4LjY3NTggNTM4LjEzMzNdCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDc5MyAwIFI+PgovTWF0cml4IFstMC4wNzEwIC0wLjAwMDAgMC4wMDAwIC0wLjA3MDggNTAyLjg4NTIgNjA5LjUwMDVdPj4KZW5kb2JqCgo3OTQgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0K1tbWk5OTCmVuZHN0cmVhbQplbmRvYmoKCjI4MCAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFszMzguNjMwMyA1MjIuNDc2MCAzNTguNjc1OCA1MzguMTMzM10KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gNzk0IDAgUj4+Ci9NYXRyaXggWy0wLjA3MTAgLTAuMDAwMCAwLjAwMDAgLTAuMDcwOCA1MDMuMDI5OSA2ODUuNTg4MF0+PgplbmRvYmoKCjc5NSAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrW1taTk5MKZW5kc3RyZWFtCmVuZG9iagoKMjk3IDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzMzOC42MzAzIDUyMi40NzYwIDM1OC42NzU4IDUzOC4xMzMzXQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA3OTUgMCBSPj4KL01hdHJpeCBbLTAuMDcxMCAtMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDUwMy4wMjk5IDY2Ni41NjYyXT4+CmVuZG9iagoKNzk2IDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCtbW1pOTkwplbmRzdHJlYW0KZW5kb2JqCgozMTEgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbMzM4LjYzMDMgNTIyLjQ3NjAgMzU4LjY3NTggNTM4LjEzMzNdCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDc5NiAwIFI+PgovTWF0cml4IFstMC4wNzEwIC0wLjAwMDAgMC4wMDAwIC0wLjA3MDggNTAzLjAyOTkgNjQ3LjU0NDNdPj4KZW5kb2JqCgo3OTcgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0K1tbWk5OTCmVuZHN0cmVhbQplbmRvYmoKCjMyOCAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFszMzguNjMwMyA1MjIuNDc2MCAzNTguNjc1OCA1MzguMTMzM10KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gNzk3IDAgUj4+Ci9NYXRyaXggWy0wLjA3MTAgLTAuMDAwMCAwLjAwMDAgLTAuMDcwOCA1MDMuMDI5OSA2MjguNTIyNF0+PgplbmRvYmoKCjc5OCAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrW1taTk5MKZW5kc3RyZWFtCmVuZG9iagoKMjg0IDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzMzOC42MzAzIDUyMi40NzYwIDM1OC42NzU4IDUzOC4xMzMzXQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA3OTggMCBSPj4KL01hdHJpeCBbLTAuMDcxMCAtMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDUyMS43NzExIDY4NS41ODgwXT4+CmVuZG9iagoKNzk5IDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCtbW1pOTkwplbmRzdHJlYW0KZW5kb2JqCgozMDIgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbMzM4LjYzMDMgNTIyLjQ3NjAgMzU4LjY3NTggNTM4LjEzMzNdCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDc5OSAwIFI+PgovTWF0cml4IFstMC4wNzEwIC0wLjAwMDAgMC4wMDAwIC0wLjA3MDggNTIxLjc3MTEgNjY2LjU2NjJdPj4KZW5kb2JqCgo4MDAgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0K1tbWk5OTCmVuZHN0cmVhbQplbmRvYmoKCjMxNSAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFszMzguNjMwMyA1MjIuNDc2MCAzNTguNjc1OCA1MzguMTMzM10KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gODAwIDAgUj4+Ci9NYXRyaXggWy0wLjA3MTAgLTAuMDAwMCAwLjAwMDAgLTAuMDcwOCA1MjEuNzcxMSA2NDcuNTQ0M10+PgplbmRvYmoKCjgwMSAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrW1taTk5MKZW5kc3RyZWFtCmVuZG9iagoKMzMzIDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzMzOC42MzAzIDUyMi40NzYwIDM1OC42NzU4IDUzOC4xMzMzXQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA4MDEgMCBSPj4KL01hdHJpeCBbLTAuMDcxMCAtMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDUyMS43NzExIDYyOC41MjI0XT4+CmVuZG9iagoKODAyIDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCtbW1pOTkwplbmRzdHJlYW0KZW5kb2JqCgozNDEgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbMzM4LjYzMDMgNTIyLjQ3NjAgMzU4LjY3NTggNTM4LjEzMzNdCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDgwMiAwIFI+PgovTWF0cml4IFstMC4wNzEwIC0wLjAwMDAgMC4wMDAwIC0wLjA3MDggNTIxLjc3MTEgNjA5LjUwMDVdPj4KZW5kb2JqCgo4MDMgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0K1tbWk5OTCmVuZHN0cmVhbQplbmRvYmoKCjI4OSAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFszMzguNjMwMyA1MjIuNDc2MCAzNTguNjc1OCA1MzguMTMzM10KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gODAzIDAgUj4+Ci9NYXRyaXggWy0wLjA3MTAgLTAuMDAwMCAwLjAwMDAgLTAuMDcwOCA1NDAuNTEyMiA2ODUuNTg4MF0+PgplbmRvYmoKCjgwNCAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrW1taTk5MKZW5kc3RyZWFtCmVuZG9iagoKMzE5IDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzMzOC42MzAzIDUyMi40NzYwIDM1OC42NzU4IDUzOC4xMzMzXQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA4MDQgMCBSPj4KL01hdHJpeCBbLTAuMDcxMCAtMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDU0MC41MTIyIDY0Ny41NDQzXT4+CmVuZG9iagoKODA1IDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCtbW1pOTkwplbmRzdHJlYW0KZW5kb2JqCgozNDYgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbMzM4LjYzMDMgNTIyLjQ3NjAgMzU4LjY3NTggNTM4LjEzMzNdCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDgwNSAwIFI+PgovTWF0cml4IFstMC4wNzEwIC0wLjAwMDAgMC4wMDAwIC0wLjA3MDggNTQwLjUxMjIgNjA5LjUwMDVdPj4KZW5kb2JqCgo4MDYgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0K1tbWk5OTCmVuZHN0cmVhbQplbmRvYmoKCjI1NCAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFszMzguNjMwMyA1MjIuNDc2MCAzNTguNjc1OCA1MzguMTMzM10KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gODA2IDAgUj4+Ci9NYXRyaXggWy0wLjAzNTIgLTAuMDAwMCAwLjAwMDAgLTAuMDM2OCAxMzYuMTg2NCA2MjguMzgwNl0+PgplbmRvYmoKCjgwNyAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrW1tZlZWUKZW5kc3RyZWFtCmVuZG9iagoKMTQzIDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzUyOS4xMTI0IDMzMy45OTQ3IDUyNi4wODIwIDMyMS4zNjc5XQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA4MDcgMCBSPj4KL01hdHJpeCBbMC4wMzUyIDAuMDAwMCAwLjAwMDAgLTAuMDcwOCAxMDQuOTcwNCA2NDcuNTk3M10+PgplbmRvYmoKCjgwOCAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrW1tZlZWUKZW5kc3RyZWFtCmVuZG9iagoKNTYgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbNTI5LjExMjQgMzMzLjk5NDcgNTI2LjA4MjAgMzIxLjM2NzldCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDgwOCAwIFI+PgovTWF0cml4IFswLjA3MTAgMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDcxLjc3NDkgNjg1LjU4ODBdPj4KZW5kb2JqCgo4MDkgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0K1tbWZWVlCmVuZHN0cmVhbQplbmRvYmoKCjQxOSAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFs1MjkuMTEyNCAzMzMuOTk0NyA1MjYuMDgyMCAzMjEuMzY3OV0KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gODA5IDAgUj4+Ci9NYXRyaXggWzAuMDcxMCAwLjAwMDAgMC4wMDAwIC0wLjA3MDggNzIuMjE3MSA3MDguNDM4Nl0+PgplbmRvYmoKCjgxMCAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrW1tZlZWUKZW5kc3RyZWFtCmVuZG9iagoKMzU1IDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzUyOS4xMTI0IDMzMy45OTQ3IDUyNi4wODIwIDMyMS4zNjc5XQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA4MTAgMCBSPj4KL01hdHJpeCBbMC4wNzEwIDAuMDAwMCAwLjAwMDAgLTAuMDcwOCA3NS41NzY4IDYyOC4zNDU1XT4+CmVuZG9iagoKODExIDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCtbW1mVlZQplbmRzdHJlYW0KZW5kb2JqCgozNzQgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbNTI5LjExMjQgMzMzLjk5NDcgNTI2LjA4MjAgMzIxLjM2NzldCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDgxMSAwIFI+PgovTWF0cml4IFswLjA3MTAgMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDc1LjkwNDAgNjA5LjEwMDVdPj4KZW5kb2JqCgo4MTIgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0K1tbWZWVlCmVuZHN0cmVhbQplbmRvYmoKCjM3MSAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFs1MjkuMTEyNCAzMzMuOTk0NyA1MjYuMDgyMCAzMjEuMzY3OV0KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gODEyIDAgUj4+Ci9NYXRyaXggWzAuMDcxMCAwLjAwMDAgMC4wMDAwIC0wLjA3MDggNzkuNTQ0NCA2NDcuNTk3M10+PgplbmRvYmoKCjgxMyAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrW1tZlZWUKZW5kc3RyZWFtCmVuZG9iagoKMzQ5IDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzUyOS4xMTI0IDMzMy45OTQ3IDUyNi4wODIwIDMyMS4zNjc5XQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA4MTMgMCBSPj4KL01hdHJpeCBbMC4wNzEwIDAuMDAwMCAwLjAwMDAgLTAuMDcwOCA4MS4yMDI0IDY2Ni42ODAwXT4+CmVuZG9iagoKODE0IDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCtbW1mVlZQplbmRzdHJlYW0KZW5kb2JqCgo2MCAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFs1MjkuMTEyNCAzMzMuOTk0NyA1MjYuMDgyMCAzMjEuMzY3OV0KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gODE0IDAgUj4+Ci9NYXRyaXggWzAuMDcxMCAwLjAwMDAgMC4wMDAwIC0wLjA3MDggOTAuNzI2MiA2ODUuNTg4MF0+PgplbmRvYmoKCjgxNSAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrW1tZlZWUKZW5kc3RyZWFtCmVuZG9iagoKMjIwIDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzUyOS4xMTI0IDMzMy45OTQ3IDUyNi4wODIwIDMyMS4zNjc5XQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA4MTUgMCBSPj4KL01hdHJpeCBbMC4wNzEwIDAuMDAwMCAwLjAwMDAgLTAuMDcwOCA5NC40NDA4IDYyOC4zNDU1XT4+CmVuZG9iagoKODE2IDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCtbW1mVlZQplbmRzdHJlYW0KZW5kb2JqCgozNzkgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbNTI5LjExMjQgMzMzLjk5NDcgNTI2LjA4MjAgMzIxLjM2NzldCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDgxNiAwIFI+PgovTWF0cml4IFswLjA3MTAgMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDk4Ljg3NjEgNjA5LjEwMDVdPj4KZW5kb2JqCgo4MTcgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0K1tbWZWVlCmVuZHN0cmVhbQplbmRvYmoKCjExNCAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFs1MjkuMTEyNCAzMzMuOTk0NyA1MjYuMDgyMCAzMjEuMzY3OV0KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gODE3IDAgUj4+Ci9NYXRyaXggWzAuMDcxMCAwLjAwMDAgMC4wMDAwIC0wLjA3MDggMTAwLjkzNjEgNjY2LjY4MDBdPj4KZW5kb2JqCgo4MTggMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0K1tbWZWVlCmVuZHN0cmVhbQplbmRvYmoKCjE2OCAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFs1MjkuMTEyNCAzMzMuOTk0NyA1MjYuMDgyMCAzMjEuMzY3OV0KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gODE4IDAgUj4+Ci9NYXRyaXggWzAuMDcxMCAwLjAwMDAgMC4wMDAwIC0wLjA3MDggMTA0LjU4MjQgNjQ3LjU5NzNdPj4KZW5kb2JqCgo4MTkgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0K1tbWZWVlCmVuZHN0cmVhbQplbmRvYmoKCjY0IDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzUyOS4xMTI0IDMzMy45OTQ3IDUyNi4wODIwIDMyMS4zNjc5XQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA4MTkgMCBSPj4KL01hdHJpeCBbMC4wNzEwIDAuMDAwMCAwLjAwMDAgLTAuMDcwOCAxMDkuNjc3NiA2ODUuNTg4MF0+PgplbmRvYmoKCjgyMCAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrW1tZlZWUKZW5kc3RyZWFtCmVuZG9iagoKMzY1IDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzUyOS4xMTI0IDMzMy45OTQ3IDUyNi4wODIwIDMyMS4zNjc5XQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA4MjAgMCBSPj4KL01hdHJpeCBbMC4wNzEwIDAuMDAwMCAwLjAwMDAgLTAuMDcwOCAxMDkuNjg5NCA3MDguNDM4Nl0+PgplbmRvYmoKCjgyMSAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrW1tZlZWUKZW5kc3RyZWFtCmVuZG9iagoKMjI1IDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzUyOS4xMTI0IDMzMy45OTQ3IDUyNi4wODIwIDMyMS4zNjc5XQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA4MjEgMCBSPj4KL01hdHJpeCBbMC4wNzEwIDAuMDAwMCAwLjAwMDAgLTAuMDcwOCAxMTMuMzkyMiA2MjguMzQ1NV0+PgplbmRvYmoKCjgyMiAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrW1tZlZWUKZW5kc3RyZWFtCmVuZG9iagoKMTE4IDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzUyOS4xMTI0IDMzMy45OTQ3IDUyNi4wODIwIDMyMS4zNjc5XQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA4MjIgMCBSPj4KL01hdHJpeCBbMC4wNzEwIDAuMDAwMCAwLjAwMDAgLTAuMDcwOCAxMTkuODg3NCA2NjYuNjgwMF0+PgplbmRvYmoKCjgyMyAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrW1tZlZWUKZW5kc3RyZWFtCmVuZG9iagoKMzgzIDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzUyOS4xMTI0IDMzMy45OTQ3IDUyNi4wODIwIDMyMS4zNjc5XQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA4MjMgMCBSPj4KL01hdHJpeCBbMC4wNzEwIDAuMDAwMCAwLjAwMDAgLTAuMDcwOCAxMjIuMDkxMyA2MDkuMTAwNV0+PgplbmRvYmoKCjgyNCAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrW1tZlZWUKZW5kc3RyZWFtCmVuZG9iagoKMTcyIDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzUyOS4xMTI0IDMzMy45OTQ3IDUyNi4wODIwIDMyMS4zNjc5XQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA4MjQgMCBSPj4KL01hdHJpeCBbMC4wNzEwIDAuMDAwMCAwLjAwMDAgLTAuMDcwOCAxMjMuNTMzOCA2NDcuNTk3M10+PgplbmRvYmoKCjgyNSAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrW1tZlZWUKZW5kc3RyZWFtCmVuZG9iagoKNjkgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbNTI5LjExMjQgMzMzLjk5NDcgNTI2LjA4MjAgMzIxLjM2NzldCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDgyNSAwIFI+PgovTWF0cml4IFswLjA3MTAgMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDEyOC42Mjg5IDY4NS41ODgwXT4+CmVuZG9iagoKODI2IDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCtbW1mVlZQplbmRzdHJlYW0KZW5kb2JqCgo0NDkgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbNTI5LjExMjQgMzMzLjk5NDcgNTI2LjA4MjAgMzIxLjM2NzldCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDgyNiAwIFI+PgovTWF0cml4IFswLjA3MTAgMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDEyOC42ODUyIDcwOC40Mzg2XT4+CmVuZG9iagoKODI3IDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCtbW1mVlZQplbmRzdHJlYW0KZW5kb2JqCgoyMjkgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbNTI5LjExMjQgMzMzLjk5NDcgNTI2LjA4MjAgMzIxLjM2NzldCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDgyNyAwIFI+PgovTWF0cml4IFswLjA3MTAgMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDEzMi4zNDM1IDYyOC4zNDU1XT4+CmVuZG9iagoKODI4IDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCtbW1mVlZQplbmRzdHJlYW0KZW5kb2JqCgoxMjMgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbNTI5LjExMjQgMzMzLjk5NDcgNTI2LjA4MjAgMzIxLjM2NzldCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDgyOCAwIFI+PgovTWF0cml4IFswLjA3MTAgMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDEzOC44Mzg4IDY2Ni42ODAwXT4+CmVuZG9iagoKODI5IDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCtbW1mVlZQplbmRzdHJlYW0KZW5kb2JqCgoxNzYgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbNTI5LjExMjQgMzMzLjk5NDcgNTI2LjA4MjAgMzIxLjM2NzldCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDgyOSAwIFI+PgovTWF0cml4IFswLjA3MTAgMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDE0Mi40ODUxIDY0Ny41OTczXT4+CmVuZG9iagoKODMwIDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCtbW1mVlZQplbmRzdHJlYW0KZW5kb2JqCgo3MyAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFs1MjkuMTEyNCAzMzMuOTk0NyA1MjYuMDgyMCAzMjEuMzY3OV0KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gODMwIDAgUj4+Ci9NYXRyaXggWzAuMDcxMCAwLjAwMDAgMC4wMDAwIC0wLjA3MDggMTQ3LjU4MDMgNjg1LjU4ODBdPj4KZW5kb2JqCgo4MzEgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0K1tbWZWVlCmVuZHN0cmVhbQplbmRvYmoKCjU1IDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzUyOS4xMTI0IDMzMy45OTQ3IDUyNi4wODIwIDMyMS4zNjc5XQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA4MzEgMCBSPj4KL01hdHJpeCBbMC4wNzEwIDAuMDAwMCAwLjAwMDAgLTAuMDcwOCAxNDcuNjgxMSA3MDguNDM4Nl0+PgplbmRvYmoKCjgzMiAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrW1tZlZWUKZW5kc3RyZWFtCmVuZG9iagoKMjM0IDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzUyOS4xMTI0IDMzMy45OTQ3IDUyNi4wODIwIDMyMS4zNjc5XQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA4MzIgMCBSPj4KL01hdHJpeCBbMC4wNzEwIDAuMDAwMCAwLjAwMDAgLTAuMDcwOCAxNTEuMjk0OSA2MjguMzQ1NV0+PgplbmRvYmoKCjgzMyAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrW1tZlZWUKZW5kc3RyZWFtCmVuZG9iagoKMTI3IDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzUyOS4xMTI0IDMzMy45OTQ3IDUyNi4wODIwIDMyMS4zNjc5XQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA4MzMgMCBSPj4KL01hdHJpeCBbMC4wNzEwIDAuMDAwMCAwLjAwMDAgLTAuMDcwOCAxNTcuNzkwMSA2NjYuNjgwMF0+PgplbmRvYmoKCjgzNCAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrW1tZlZWUKZW5kc3RyZWFtCmVuZG9iagoKMTgxIDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzUyOS4xMTI0IDMzMy45OTQ3IDUyNi4wODIwIDMyMS4zNjc5XQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA4MzQgMCBSPj4KL01hdHJpeCBbMC4wNzEwIDAuMDAwMCAwLjAwMDAgLTAuMDcwOCAxNjEuNDM2NSA2NDcuNTk3M10+PgplbmRvYmoKCjgzNSAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrW1tZlZWUKZW5kc3RyZWFtCmVuZG9iagoKNzggMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbNTI5LjExMjQgMzMzLjk5NDcgNTI2LjA4MjAgMzIxLjM2NzldCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDgzNSAwIFI+PgovTWF0cml4IFswLjA3MTAgMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDE2Ni41MzE2IDY4NS41ODgwXT4+CmVuZG9iagoKODM2IDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCtbW1mVlZQplbmRzdHJlYW0KZW5kb2JqCgo5OSAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFs1MjkuMTEyNCAzMzMuOTk0NyA1MjYuMDgyMCAzMjEuMzY3OV0KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gODM2IDAgUj4+Ci9NYXRyaXggWzAuMDcxMCAwLjAwMDAgMC4wMDAwIC0wLjA3MDggMTY2LjY3NjkgNzA4LjQzODZdPj4KZW5kb2JqCgo4MzcgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0K1tbWZWVlCmVuZHN0cmVhbQplbmRvYmoKCjIzOCAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFs1MjkuMTEyNCAzMzMuOTk0NyA1MjYuMDgyMCAzMjEuMzY3OV0KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gODM3IDAgUj4+Ci9NYXRyaXggWzAuMDcxMCAwLjAwMDAgMC4wMDAwIC0wLjA3MDggMTcwLjI0NjIgNjI4LjM0NTVdPj4KZW5kb2JqCgo4MzggMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0K1tbWZWVlCmVuZHN0cmVhbQplbmRvYmoKCjEzMSAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFs1MjkuMTEyNCAzMzMuOTk0NyA1MjYuMDgyMCAzMjEuMzY3OV0KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gODM4IDAgUj4+Ci9NYXRyaXggWzAuMDcxMCAwLjAwMDAgMC4wMDAwIC0wLjA3MDggMTc2Ljc0MTQgNjY2LjY4MDBdPj4KZW5kb2JqCgo4MzkgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0K1tbWZWVlCmVuZHN0cmVhbQplbmRvYmoKCjE4NSAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFs1MjkuMTEyNCAzMzMuOTk0NyA1MjYuMDgyMCAzMjEuMzY3OV0KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gODM5IDAgUj4+Ci9NYXRyaXggWzAuMDcxMCAwLjAwMDAgMC4wMDAwIC0wLjA3MDggMTgwLjM4NzggNjQ3LjU5NzNdPj4KZW5kb2JqCgo4NDAgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0K1tbWZWVlCmVuZHN0cmVhbQplbmRvYmoKCjgyIDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzUyOS4xMTI0IDMzMy45OTQ3IDUyNi4wODIwIDMyMS4zNjc5XQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA4NDAgMCBSPj4KL01hdHJpeCBbMC4wNzEwIDAuMDAwMCAwLjAwMDAgLTAuMDcwOCAxODUuNDgyOSA2ODUuNTg4MF0+PgplbmRvYmoKCjg0MSAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrW1tZlZWUKZW5kc3RyZWFtCmVuZG9iagoKMjQyIDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzUyOS4xMTI0IDMzMy45OTQ3IDUyNi4wODIwIDMyMS4zNjc5XQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA4NDEgMCBSPj4KL01hdHJpeCBbMC4wNzEwIDAuMDAwMCAwLjAwMDAgLTAuMDcwOCAxODkuMTk3NSA2MjguMzQ1NV0+PgplbmRvYmoKCjg0MiAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrW1tZlZWUKZW5kc3RyZWFtCmVuZG9iagoKMTM2IDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzUyOS4xMTI0IDMzMy45OTQ3IDUyNi4wODIwIDMyMS4zNjc5XQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA4NDIgMCBSPj4KL01hdHJpeCBbMC4wNzEwIDAuMDAwMCAwLjAwMDAgLTAuMDcwOCAxOTUuNjkyOCA2NjYuNjgwMF0+PgplbmRvYmoKCjg0MyAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrW1tZlZWUKZW5kc3RyZWFtCmVuZG9iagoKMTQ0IDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzUyOS4xMTI0IDMzMy45OTQ3IDUyNi4wODIwIDMyMS4zNjc5XQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA4NDMgMCBSPj4KL01hdHJpeCBbMC4wNzEwIDAuMDAwMCAwLjAwMDAgLTAuMDcwOCAxOTUuNzQzNyA3MDguNDM4Nl0+PgplbmRvYmoKCjg0NCAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrW1tZlZWUKZW5kc3RyZWFtCmVuZG9iagoKMTkwIDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzUyOS4xMTI0IDMzMy45OTQ3IDUyNi4wODIwIDMyMS4zNjc5XQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA4NDQgMCBSPj4KL01hdHJpeCBbMC4wNzEwIDAuMDAwMCAwLjAwMDAgLTAuMDcwOCAxOTkuMzM5MSA2NDcuNTk3M10+PgplbmRvYmoKCjg0NSAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrW1tZlZWUKZW5kc3RyZWFtCmVuZG9iagoKODYgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbNTI5LjExMjQgMzMzLjk5NDcgNTI2LjA4MjAgMzIxLjM2NzldCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDg0NSAwIFI+PgovTWF0cml4IFswLjA3MTAgMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDIwNC40MzQzIDY4NS41ODgwXT4+CmVuZG9iagoKODQ2IDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCtbW1mVlZQplbmRzdHJlYW0KZW5kb2JqCgoyNDcgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbNTI5LjExMjQgMzMzLjk5NDcgNTI2LjA4MjAgMzIxLjM2NzldCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDg0NiAwIFI+PgovTWF0cml4IFswLjA3MTAgMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDIwOC4xNDg5IDYyOC4zNDU1XT4+CmVuZG9iagoKODQ3IDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCtbW1mVlZQplbmRzdHJlYW0KZW5kb2JqCgoxNDAgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbNTI5LjExMjQgMzMzLjk5NDcgNTI2LjA4MjAgMzIxLjM2NzldCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDg0NyAwIFI+PgovTWF0cml4IFswLjA3MTAgMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDIxNC42NDQxIDY2Ni42ODAwXT4+CmVuZG9iagoKODQ4IDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCtbW1mVlZQplbmRzdHJlYW0KZW5kb2JqCgoxODggMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbNTI5LjExMjQgMzMzLjk5NDcgNTI2LjA4MjAgMzIxLjM2NzldCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDg0OCAwIFI+PgovTWF0cml4IFswLjA3MTAgMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDIxNC43Mzk1IDcwOC40Mzg2XT4+CmVuZG9iagoKODQ5IDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCtbW1mVlZQplbmRzdHJlYW0KZW5kb2JqCgoxOTQgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbNTI5LjExMjQgMzMzLjk5NDcgNTI2LjA4MjAgMzIxLjM2NzldCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDg0OSAwIFI+PgovTWF0cml4IFswLjA3MTAgMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDIxOC4yOTA1IDY0Ny41OTczXT4+CmVuZG9iagoKODUwIDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCtbW1mVlZQplbmRzdHJlYW0KZW5kb2JqCgo5MSAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFs1MjkuMTEyNCAzMzMuOTk0NyA1MjYuMDgyMCAzMjEuMzY3OV0KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gODUwIDAgUj4+Ci9NYXRyaXggWzAuMDcxMCAwLjAwMDAgMC4wMDAwIC0wLjA3MDggMjIzLjM4NTYgNjg1LjU4ODBdPj4KZW5kb2JqCgo4NTEgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0K1tbWZWVlCmVuZHN0cmVhbQplbmRvYmoKCjI1MSAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFs1MjkuMTEyNCAzMzMuOTk0NyA1MjYuMDgyMCAzMjEuMzY3OV0KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gODUxIDAgUj4+Ci9NYXRyaXggWzAuMDcxMCAwLjAwMDAgMC4wMDAwIC0wLjA3MDggMjI3LjEwMDIgNjI4LjM0NTVdPj4KZW5kb2JqCgo4NTIgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0K1tbWZWVlCmVuZHN0cmVhbQplbmRvYmoKCjE0NiAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFs1MjkuMTEyNCAzMzMuOTk0NyA1MjYuMDgyMCAzMjEuMzY3OV0KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gODUyIDAgUj4+Ci9NYXRyaXggWzAuMDcxMCAwLjAwMDAgMC4wMDAwIC0wLjA3MDggMjMzLjU5NTQgNjY2LjY4MDBdPj4KZW5kb2JqCgo4NTMgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0K1tbWZWVlCmVuZHN0cmVhbQplbmRvYmoKCjIzMiAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFs1MjkuMTEyNCAzMzMuOTk0NyA1MjYuMDgyMCAzMjEuMzY3OV0KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gODUzIDAgUj4+Ci9NYXRyaXggWzAuMDcxMCAwLjAwMDAgMC4wMDAwIC0wLjA3MDggMjMzLjczNTQgNzA4LjQzODZdPj4KZW5kb2JqCgo4NTQgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0K1tbWZWVlCmVuZHN0cmVhbQplbmRvYmoKCjE5OCAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFs1MjkuMTEyNCAzMzMuOTk0NyA1MjYuMDgyMCAzMjEuMzY3OV0KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gODU0IDAgUj4+Ci9NYXRyaXggWzAuMDcxMCAwLjAwMDAgMC4wMDAwIC0wLjA3MDggMjM3LjI0MTggNjQ3LjU5NzNdPj4KZW5kb2JqCgo4NTUgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0K1tbWZWVlCmVuZHN0cmVhbQplbmRvYmoKCjk1IDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzUyOS4xMTI0IDMzMy45OTQ3IDUyNi4wODIwIDMyMS4zNjc5XQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA4NTUgMCBSPj4KL01hdHJpeCBbMC4wNzEwIDAuMDAwMCAwLjAwMDAgLTAuMDcwOCAyNDIuMzM2OSA2ODUuNTg4MF0+PgplbmRvYmoKCjg1NiAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrW1tZlZWUKZW5kc3RyZWFtCmVuZG9iagoKMzg3IDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzUyOS4xMTI0IDMzMy45OTQ3IDUyNi4wODIwIDMyMS4zNjc5XQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA4NTYgMCBSPj4KL01hdHJpeCBbMC4wNzEwIDAuMDAwMCAwLjAwMDAgLTAuMDcwOCAyNDUuMjc3OCA2MDkuMzQzNl0+PgplbmRvYmoKCjg1NyAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrW1tZlZWUKZW5kc3RyZWFtCmVuZG9iagoKMjU3IDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzUyOS4xMTI0IDMzMy45OTQ3IDUyNi4wODIwIDMyMS4zNjc5XQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA4NTcgMCBSPj4KL01hdHJpeCBbMC4wNzEwIDAuMDAwMCAwLjAwMDAgLTAuMDcwOCAyNDYuMDUxNSA2MjguMzQ1NV0+PgplbmRvYmoKCjg1OCAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrW1tZlZWUKZW5kc3RyZWFtCmVuZG9iagoKMTUwIDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzUyOS4xMTI0IDMzMy45OTQ3IDUyNi4wODIwIDMyMS4zNjc5XQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA4NTggMCBSPj4KL01hdHJpeCBbMC4wNzEwIDAuMDAwMCAwLjAwMDAgLTAuMDcwOCAyNTIuNTQ2OCA2NjYuNjgwMF0+PgplbmRvYmoKCjg1OSAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrW1tZlZWUKZW5kc3RyZWFtCmVuZG9iagoKMjc3IDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzUyOS4xMTI0IDMzMy45OTQ3IDUyNi4wODIwIDMyMS4zNjc5XQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA4NTkgMCBSPj4KL01hdHJpeCBbMC4wNzEwIDAuMDAwMCAwLjAwMDAgLTAuMDcwOCAyNTIuNzMxMiA3MDguNDM4Nl0+PgplbmRvYmoKCjg2MCAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrW1tZlZWUKZW5kc3RyZWFtCmVuZG9iagoKMjAzIDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzUyOS4xMTI0IDMzMy45OTQ3IDUyNi4wODIwIDMyMS4zNjc5XQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA4NjAgMCBSPj4KL01hdHJpeCBbMC4wNzEwIDAuMDAwMCAwLjAwMDAgLTAuMDcwOCAyNTYuMTkzMSA2NDcuNTk3M10+PgplbmRvYmoKCjg2MSAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrW1tZlZWUKZW5kc3RyZWFtCmVuZG9iagoKMTAwIDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzUyOS4xMTI0IDMzMy45OTQ3IDUyNi4wODIwIDMyMS4zNjc5XQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA4NjEgMCBSPj4KL01hdHJpeCBbMC4wNzEwIDAuMDAwMCAwLjAwMDAgLTAuMDcwOCAyNjEuMjg4MyA2ODUuNTg4MF0+PgplbmRvYmoKCjg2MiAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrW1tZlZWUKZW5kc3RyZWFtCmVuZG9iagoKMjYxIDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzUyOS4xMTI0IDMzMy45OTQ3IDUyNi4wODIwIDMyMS4zNjc5XQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA4NjIgMCBSPj4KL01hdHJpeCBbMC4wNzEwIDAuMDAwMCAwLjAwMDAgLTAuMDcwOCAyNjUuMDAyOSA2MjguMzQ1NV0+PgplbmRvYmoKCjg2MyAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrW1tZlZWUKZW5kc3RyZWFtCmVuZG9iagoKMzkyIDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzUyOS4xMTI0IDMzMy45OTQ3IDUyNi4wODIwIDMyMS4zNjc5XQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA4NjMgMCBSPj4KL01hdHJpeCBbMC4wNzEwIDAuMDAwMCAwLjAwMDAgLTAuMDcwOCAyNjguMTg5MiA2MDkuMTAwNV0+PgplbmRvYmoKCjg2NCAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrW1tZlZWUKZW5kc3RyZWFtCmVuZG9iagoKMTU0IDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzUyOS4xMTI0IDMzMy45OTQ3IDUyNi4wODIwIDMyMS4zNjc5XQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA4NjQgMCBSPj4KL01hdHJpeCBbMC4wNzEwIDAuMDAwMCAwLjAwMDAgLTAuMDcwOCAyNzEuNDk4MSA2NjYuNjgwMF0+PgplbmRvYmoKCjg2NSAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrW1tZlZWUKZW5kc3RyZWFtCmVuZG9iagoKMjA3IDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzUyOS4xMTI0IDMzMy45OTQ3IDUyNi4wODIwIDMyMS4zNjc5XQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA4NjUgMCBSPj4KL01hdHJpeCBbMC4wNzEwIDAuMDAwMCAwLjAwMDAgLTAuMDcwOCAyNzUuMTQ0NSA2NDcuNTk3M10+PgplbmRvYmoKCjg2NiAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrW1tZlZWUKZW5kc3RyZWFtCmVuZG9iagoKMTA0IDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzUyOS4xMTI0IDMzMy45OTQ3IDUyNi4wODIwIDMyMS4zNjc5XQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA4NjYgMCBSPj4KL01hdHJpeCBbMC4wNzEwIDAuMDAwMCAwLjAwMDAgLTAuMDcwOCAyODAuMjM5NiA2ODUuNTg4MF0+PgplbmRvYmoKCjg2NyAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrW1tZlZWUKZW5kc3RyZWFtCmVuZG9iagoKMzIxIDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzUyOS4xMTI0IDMzMy45OTQ3IDUyNi4wODIwIDMyMS4zNjc5XQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA4NjcgMCBSPj4KL01hdHJpeCBbMC4wNzEwIDAuMDAwMCAwLjAwMDAgLTAuMDcwOCAyODAuMzM5NSA3MDguNDM4Nl0+PgplbmRvYmoKCjg2OCAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrW1tZlZWUKZW5kc3RyZWFtCmVuZG9iagoKMjY1IDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzUyOS4xMTI0IDMzMy45OTQ3IDUyNi4wODIwIDMyMS4zNjc5XQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA4NjggMCBSPj4KL01hdHJpeCBbMC4wNzEwIDAuMDAwMCAwLjAwMDAgLTAuMDcwOCAyODMuOTU0MiA2MjguMzQ1NV0+PgplbmRvYmoKCjg2OSAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrW1tZlZWUKZW5kc3RyZWFtCmVuZG9iagoKMTU5IDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzUyOS4xMTI0IDMzMy45OTQ3IDUyNi4wODIwIDMyMS4zNjc5XQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA4NjkgMCBSPj4KL01hdHJpeCBbMC4wNzEwIDAuMDAwMCAwLjAwMDAgLTAuMDcwOCAyOTAuNDQ5NSA2NjYuNjgwMF0+PgplbmRvYmoKCjg3MCAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrW1tZlZWUKZW5kc3RyZWFtCmVuZG9iagoKNDA1IDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzUyOS4xMTI0IDMzMy45OTQ3IDUyNi4wODIwIDMyMS4zNjc5XQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA4NzAgMCBSPj4KL01hdHJpeCBbMC4wNzEwIDAuMDAwMCAwLjAwMDAgLTAuMDcwOCAyOTEuMjA0NCA2MDkuMTAwNV0+PgplbmRvYmoKCjg3MSAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrW1tZlZWUKZW5kc3RyZWFtCmVuZG9iagoKMjEyIDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzUyOS4xMTI0IDMzMy45OTQ3IDUyNi4wODIwIDMyMS4zNjc5XQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA4NzEgMCBSPj4KL01hdHJpeCBbMC4wNzEwIDAuMDAwMCAwLjAwMDAgLTAuMDcwOCAyOTQuMDk1OCA2NDcuNTk3M10+PgplbmRvYmoKCjg3MiAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrW1tZlZWUKZW5kc3RyZWFtCmVuZG9iagoKMTA4IDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzUyOS4xMTI0IDMzMy45OTQ3IDUyNi4wODIwIDMyMS4zNjc5XQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA4NzIgMCBSPj4KL01hdHJpeCBbMC4wNzEwIDAuMDAwMCAwLjAwMDAgLTAuMDcwOCAyOTkuMTkxMCA2ODUuNTg4MF0+PgplbmRvYmoKCjg3MyAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrW1tZlZWUKZW5kc3RyZWFtCmVuZG9iagoKMzY2IDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzUyOS4xMTI0IDMzMy45OTQ3IDUyNi4wODIwIDMyMS4zNjc5XQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA4NzMgMCBSPj4KL01hdHJpeCBbMC4wNzEwIDAuMDAwMCAwLjAwMDAgLTAuMDcwOCAyOTkuMzM1MyA3MDguNDM4Nl0+PgplbmRvYmoKCjg3NCAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrW1tZlZWUKZW5kc3RyZWFtCmVuZG9iagoKMTYzIDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzUyOS4xMTI0IDMzMy45OTQ3IDUyNi4wODIwIDMyMS4zNjc5XQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA4NzQgMCBSPj4KL01hdHJpeCBbMC4wNzEwIDAuMDAwMCAwLjAwMDAgLTAuMDcwOCAzMDkuNDAwOCA2NjYuNjgwMF0+PgplbmRvYmoKCjg3NSAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrW1tZlZWUKZW5kc3RyZWFtCmVuZG9iagoKMjE2IDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzUyOS4xMTI0IDMzMy45OTQ3IDUyNi4wODIwIDMyMS4zNjc5XQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA4NzUgMCBSPj4KL01hdHJpeCBbMC4wNzEwIDAuMDAwMCAwLjAwMDAgLTAuMDcwOCAzMTMuMDQ3MiA2NDcuNTk3M10+PgplbmRvYmoKCjg3NiAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrW1tZlZWUKZW5kc3RyZWFtCmVuZG9iagoKNDAxIDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzUyOS4xMTI0IDMzMy45OTQ3IDUyNi4wODIwIDMyMS4zNjc5XQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA4NzYgMCBSPj4KL01hdHJpeCBbMC4wNzEwIDAuMDAwMCAwLjAwMDAgLTAuMDcwOCAzMTQuMzE3NyA2MDkuMTAwNV0+PgplbmRvYmoKCjg3NyAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrW1tZlZWUKZW5kc3RyZWFtCmVuZG9iagoKNDEwIDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzUyOS4xMTI0IDMzMy45OTQ3IDUyNi4wODIwIDMyMS4zNjc5XQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA4NzcgMCBSPj4KL01hdHJpeCBbMC4wNzEwIDAuMDAwMCAwLjAwMDAgLTAuMDcwOCAzMTguMzMxMSA3MDguNDM4Nl0+PgplbmRvYmoKCjg3OCAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrW1tZlZWUKZW5kc3RyZWFtCmVuZG9iagoKMjcwIDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzUyOS4xMTI0IDMzMy45OTQ3IDUyNi4wODIwIDMyMS4zNjc5XQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA4NzggMCBSPj4KL01hdHJpeCBbMC4wNzEwIDAuMDAwMCAwLjAwMDAgLTAuMDcwOCAzMzcuMjQyMiA2MjguMzQ1NV0+PgplbmRvYmoKCjg3OSAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrW1tZlZWUKZW5kc3RyZWFtCmVuZG9iagoKMzY0IDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzUyOS4xMTI0IDMzMy45OTQ3IDUyNi4wODIwIDMyMS4zNjc5XQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA4NzkgMCBSPj4KL01hdHJpeCBbMC4wNzEwIDAuMDAwMCAwLjAwMDAgLTAuMDcwOCAzMzcuMjQ3MiA2NjYuNjgwMF0+PgplbmRvYmoKCjg4MCAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrW1tZlZWUKZW5kc3RyZWFtCmVuZG9iagoKNDE0IDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzUyOS4xMTI0IDMzMy45OTQ3IDUyNi4wODIwIDMyMS4zNjc5XQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA4ODAgMCBSPj4KL01hdHJpeCBbMC4wNzEwIDAuMDAwMCAwLjAwMDAgLTAuMDcwOCAzMzcuMzI3MCA3MDguNDM4Nl0+PgplbmRvYmoKCjg4MSAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrW1tZlZWUKZW5kc3RyZWFtCmVuZG9iagoKMzU5IDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzUyOS4xMTI0IDMzMy45OTQ3IDUyNi4wODIwIDMyMS4zNjc5XQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA4ODEgMCBSPj4KL01hdHJpeCBbMC4wNzEwIDAuMDAwMCAwLjAwMDAgLTAuMDcwOCAzMzcuNDA5MiA2ODUuNTg4MF0+PgplbmRvYmoKCjg4MiAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrW1tZlZWUKZW5kc3RyZWFtCmVuZG9iagoKMzk2IDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzUyOS4xMTI0IDMzMy45OTQ3IDUyNi4wODIwIDMyMS4zNjc5XQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA4ODIgMCBSPj4KL01hdHJpeCBbMC4wNzEwIDAuMDAwMCAwLjAwMDAgLTAuMDcwOCAzMzcuNDMxMCA2MDkuMTAwNV0+PgplbmRvYmoKCjg4MyAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrW1tZlZWUKZW5kc3RyZWFtCmVuZG9iagoKNDM2IDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzUyOS4xMTI0IDMzMy45OTQ3IDUyNi4wODIwIDMyMS4zNjc5XQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA4ODMgMCBSPj4KL01hdHJpeCBbMC4wNzEwIDAuMDAwMCAwLjAwMDAgLTAuMDcwOCAzNTkuODY1MSA2ODUuNTg4MF0+PgplbmRvYmoKCjg4NCAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrW1tZlZWUKZW5kc3RyZWFtCmVuZG9iagoKNDUwIDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzUyOS4xMTI0IDMzMy45OTQ3IDUyNi4wODIwIDMyMS4zNjc5XQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA4ODQgMCBSPj4KL01hdHJpeCBbMC4wNzEwIDAuMDAwMCAwLjAwMDAgLTAuMDcwOCAzNTkuODY1MSA2NjYuNjI2OV0+PgplbmRvYmoKCjg4NSAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrW1tZlZWUKZW5kc3RyZWFtCmVuZG9iagoKNDYzIDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzUyOS4xMTI0IDMzMy45OTQ3IDUyNi4wODIwIDMyMS4zNjc5XQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA4ODUgMCBSPj4KL01hdHJpeCBbMC4wNzEwIDAuMDAwMCAwLjAwMDAgLTAuMDcwOCAzNTkuODY1MSA2NDcuNjY1OF0+PgplbmRvYmoKCjg4NiAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrW1tZlZWUKZW5kc3RyZWFtCmVuZG9iagoKMzggMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbNTI5LjExMjQgMzMzLjk5NDcgNTI2LjA4MjAgMzIxLjM2NzldCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDg4NiAwIFI+PgovTWF0cml4IFswLjA3MTAgMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDM1OS44NjUxIDYwOS41MDA1XT4+CmVuZG9iagoKODg3IDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCtbW1mVlZQplbmRzdHJlYW0KZW5kb2JqCgo0MjMgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbNTI5LjExMjQgMzMzLjk5NDcgNTI2LjA4MjAgMzIxLjM2NzldCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDg4NyAwIFI+PgovTWF0cml4IFswLjA3MTAgMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDM2MC4xMDgxIDcwOC40Mzg2XT4+CmVuZG9iagoKODg4IDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCtbW1mVlZQplbmRzdHJlYW0KZW5kb2JqCgo0NDEgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbNTI5LjExMjQgMzMzLjk5NDcgNTI2LjA4MjAgMzIxLjM2NzldCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDg4OCAwIFI+PgovTWF0cml4IFswLjA3MTAgMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDM3OC44NjA5IDY4NS41ODgwXT4+CmVuZG9iagoKODg5IDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCtbW1mVlZQplbmRzdHJlYW0KZW5kb2JqCgo0NTQgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbNTI5LjExMjQgMzMzLjk5NDcgNTI2LjA4MjAgMzIxLjM2NzldCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDg4OSAwIFI+PgovTWF0cml4IFswLjA3MTAgMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDM3OC44NjA5IDY2Ni42MjY5XT4+CmVuZG9iagoKODkwIDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCtbW1mVlZQplbmRzdHJlYW0KZW5kb2JqCgo0NjcgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbNTI5LjExMjQgMzMzLjk5NDcgNTI2LjA4MjAgMzIxLjM2NzldCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDg5MCAwIFI+PgovTWF0cml4IFswLjA3MTAgMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDM3OC44NjA5IDY0Ny42NjU4XT4+CmVuZG9iagoKODkxIDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCtbW1mVlZQplbmRzdHJlYW0KZW5kb2JqCgo1MSAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFs1MjkuMTEyNCAzMzMuOTk0NyA1MjYuMDgyMCAzMjEuMzY3OV0KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gODkxIDAgUj4+Ci9NYXRyaXggWzAuMDcxMCAwLjAwMDAgMC4wMDAwIC0wLjA3MDggMzc4Ljg2MDkgNjI4Ljk0NzhdPj4KZW5kb2JqCgo4OTIgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0K1tbWZWVlCmVuZHN0cmVhbQplbmRvYmoKCjQyIDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzUyOS4xMTI0IDMzMy45OTQ3IDUyNi4wODIwIDMyMS4zNjc5XQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA4OTIgMCBSPj4KL01hdHJpeCBbMC4wNzEwIDAuMDAwMCAwLjAwMDAgLTAuMDcwOCAzNzguODYwOSA2MDkuNTAwNV0+PgplbmRvYmoKCjg5MyAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrW1tZlZWUKZW5kc3RyZWFtCmVuZG9iagoKNDI4IDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzUyOS4xMTI0IDMzMy45OTQ3IDUyNi4wODIwIDMyMS4zNjc5XQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA4OTMgMCBSPj4KL01hdHJpeCBbMC4wNzEwIDAuMDAwMCAwLjAwMDAgLTAuMDcwOCAzNzkuMTA0MCA3MDguNDM4Nl0+PgplbmRvYmoKCjg5NCAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrW1tZlZWUKZW5kc3RyZWFtCmVuZG9iagoKNDQ1IDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzUyOS4xMTI0IDMzMy45OTQ3IDUyNi4wODIwIDMyMS4zNjc5XQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA4OTQgMCBSPj4KL01hdHJpeCBbMC4wNzEwIDAuMDAwMCAwLjAwMDAgLTAuMDcwOCAzOTcuODU2NyA2ODUuNTg4MF0+PgplbmRvYmoKCjg5NSAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrW1tZlZWUKZW5kc3RyZWFtCmVuZG9iagoKNDU4IDAgb2JqCjw8L1R5cGUgL1BhdHRlcm4KL1BhdHRlcm5UeXBlIDIKL1NoYWRpbmcgPDwvU2hhZGluZ1R5cGUgMgovQ29sb3JTcGFjZSAvRGV2aWNlUkdCCi9Db29yZHMgWzUyOS4xMTI0IDMzMy45OTQ3IDUyNi4wODIwIDMyMS4zNjc5XQovRXh0ZW5kIFt0cnVlIHRydWVdCi9GdW5jdGlvbiA4OTUgMCBSPj4KL01hdHJpeCBbMC4wNzEwIDAuMDAwMCAwLjAwMDAgLTAuMDcwOCAzOTcuODU2NyA2NjYuNjI2OV0+PgplbmRvYmoKCjg5NiAwIG9iago8PC9MZW5ndGggNgovRnVuY3Rpb25UeXBlIDAKL0RvbWFpbiBbMCAxXQovUmFuZ2UgWzAgMSAwIDEgMCAxXQovU2l6ZSBbMl0KL0JpdHNQZXJTYW1wbGUgOD4+CnN0cmVhbQrW1tZlZWUKZW5kc3RyZWFtCmVuZG9iagoKMzQgMCBvYmoKPDwvVHlwZSAvUGF0dGVybgovUGF0dGVyblR5cGUgMgovU2hhZGluZyA8PC9TaGFkaW5nVHlwZSAyCi9Db2xvclNwYWNlIC9EZXZpY2VSR0IKL0Nvb3JkcyBbNTI5LjExMjQgMzMzLjk5NDcgNTI2LjA4MjAgMzIxLjM2NzldCi9FeHRlbmQgW3RydWUgdHJ1ZV0KL0Z1bmN0aW9uIDg5NiAwIFI+PgovTWF0cml4IFswLjA3MTAgMC4wMDAwIDAuMDAwMCAtMC4wNzA4IDM5Ny44NTY3IDY0Ny42NjU4XT4+CmVuZG9iagoKODk3IDAgb2JqCjw8L0xlbmd0aCA2Ci9GdW5jdGlvblR5cGUgMAovRG9tYWluIFswIDFdCi9SYW5nZSBbMCAxIDAgMSAwIDFdCi9TaXplIFsyXQovQml0c1BlclNhbXBsZSA4Pj4Kc3RyZWFtCtbW1mVlZQplbmRzdHJlYW0KZW5kb2JqCgo0NyAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFs1MjkuMTEyNCAzMzMuOTk0NyA1MjYuMDgyMCAzMjEuMzY3OV0KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gODk3IDAgUj4+Ci9NYXRyaXggWzAuMDcxMCAwLjAwMDAgMC4wMDAwIC0wLjA3MDggMzk3Ljg1NjcgNjA5LjUwMDVdPj4KZW5kb2JqCgo4OTggMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0K1tbWZWVlCmVuZHN0cmVhbQplbmRvYmoKCjQzMiAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFs1MjkuMTEyNCAzMzMuOTk0NyA1MjYuMDgyMCAzMjEuMzY3OV0KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gODk4IDAgUj4+Ci9NYXRyaXggWzAuMDcxMCAwLjAwMDAgMC4wMDAwIC0wLjA3MDggMzk4LjA5OTggNzA4LjQzODZdPj4KZW5kb2JqCgo4OTkgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0K1tbWZWVlCmVuZHN0cmVhbQplbmRvYmoKCjI3NCAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFs1MjkuMTEyNCAzMzMuOTk0NyA1MjYuMDgyMCAzMjEuMzY3OV0KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gODk5IDAgUj4+Ci9NYXRyaXggWzAuMDcxMCAwLjAwMDAgMC4wMDAwIC0wLjA3MDggNDIxLjM2NzIgNjg1LjU4ODBdPj4KZW5kb2JqCgo5MDAgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0K1tbWZWVlCmVuZHN0cmVhbQplbmRvYmoKCjI5MiAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFs1MjkuMTEyNCAzMzMuOTk0NyA1MjYuMDgyMCAzMjEuMzY3OV0KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gOTAwIDAgUj4+Ci9NYXRyaXggWzAuMDcxMCAwLjAwMDAgMC4wMDAwIC0wLjA3MDggNDIxLjM2NzIgNjY2LjU2NjJdPj4KZW5kb2JqCgo5MDEgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0K1tbWZWVlCmVuZHN0cmVhbQplbmRvYmoKCjMwNSAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFs1MjkuMTEyNCAzMzMuOTk0NyA1MjYuMDgyMCAzMjEuMzY3OV0KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gOTAxIDAgUj4+Ci9NYXRyaXggWzAuMDcxMCAwLjAwMDAgMC4wMDAwIC0wLjA3MDggNDIxLjM2NzIgNjQ3LjU0NDNdPj4KZW5kb2JqCgo5MDIgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0K1tbWZWVlCmVuZHN0cmVhbQplbmRvYmoKCjMyMyAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFs1MjkuMTEyNCAzMzMuOTk0NyA1MjYuMDgyMCAzMjEuMzY3OV0KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gOTAyIDAgUj4+Ci9NYXRyaXggWzAuMDcxMCAwLjAwMDAgMC4wMDAwIC0wLjA3MDggNDIxLjM2NzIgNjI4LjUyMjRdPj4KZW5kb2JqCgo5MDMgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0K1tbWZWVlCmVuZHN0cmVhbQplbmRvYmoKCjMzNiAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFs1MjkuMTEyNCAzMzMuOTk0NyA1MjYuMDgyMCAzMjEuMzY3OV0KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gOTAzIDAgUj4+Ci9NYXRyaXggWzAuMDcxMCAwLjAwMDAgMC4wMDAwIC0wLjA3MDggNDM5Ljk2MzYgNjA5LjUwMDVdPj4KZW5kb2JqCgo5MDQgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0K1tbWZWVlCmVuZHN0cmVhbQplbmRvYmoKCjI3OSAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFs1MjkuMTEyNCAzMzMuOTk0NyA1MjYuMDgyMCAzMjEuMzY3OV0KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gOTA0IDAgUj4+Ci9NYXRyaXggWzAuMDcxMCAwLjAwMDAgMC4wMDAwIC0wLjA3MDggNDQwLjEwODMgNjg1LjU4ODBdPj4KZW5kb2JqCgo5MDUgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0K1tbWZWVlCmVuZHN0cmVhbQplbmRvYmoKCjI5NiAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFs1MjkuMTEyNCAzMzMuOTk0NyA1MjYuMDgyMCAzMjEuMzY3OV0KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gOTA1IDAgUj4+Ci9NYXRyaXggWzAuMDcxMCAwLjAwMDAgMC4wMDAwIC0wLjA3MDggNDQwLjEwODMgNjY2LjU2NjJdPj4KZW5kb2JqCgo5MDYgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0K1tbWZWVlCmVuZHN0cmVhbQplbmRvYmoKCjMwOSAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFs1MjkuMTEyNCAzMzMuOTk0NyA1MjYuMDgyMCAzMjEuMzY3OV0KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gOTA2IDAgUj4+Ci9NYXRyaXggWzAuMDcxMCAwLjAwMDAgMC4wMDAwIC0wLjA3MDggNDQwLjEwODMgNjQ3LjU0NDNdPj4KZW5kb2JqCgo5MDcgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0K1tbWZWVlCmVuZHN0cmVhbQplbmRvYmoKCjMyNyAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFs1MjkuMTEyNCAzMzMuOTk0NyA1MjYuMDgyMCAzMjEuMzY3OV0KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gOTA3IDAgUj4+Ci9NYXRyaXggWzAuMDcxMCAwLjAwMDAgMC4wMDAwIC0wLjA3MDggNDQwLjEwODMgNjI4LjUyMjRdPj4KZW5kb2JqCgo5MDggMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0K1tbWZWVlCmVuZHN0cmVhbQplbmRvYmoKCjI4MyAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFs1MjkuMTEyNCAzMzMuOTk0NyA1MjYuMDgyMCAzMjEuMzY3OV0KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gOTA4IDAgUj4+Ci9NYXRyaXggWzAuMDcxMCAwLjAwMDAgMC4wMDAwIC0wLjA3MDggNDU4Ljg0OTUgNjg1LjU4ODBdPj4KZW5kb2JqCgo5MDkgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0K1tbWZWVlCmVuZHN0cmVhbQplbmRvYmoKCjMwMSAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFs1MjkuMTEyNCAzMzMuOTk0NyA1MjYuMDgyMCAzMjEuMzY3OV0KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gOTA5IDAgUj4+Ci9NYXRyaXggWzAuMDcxMCAwLjAwMDAgMC4wMDAwIC0wLjA3MDggNDU4Ljg0OTUgNjY2LjU2NjJdPj4KZW5kb2JqCgo5MTAgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0K1tbWZWVlCmVuZHN0cmVhbQplbmRvYmoKCjMxNCAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFs1MjkuMTEyNCAzMzMuOTk0NyA1MjYuMDgyMCAzMjEuMzY3OV0KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gOTEwIDAgUj4+Ci9NYXRyaXggWzAuMDcxMCAwLjAwMDAgMC4wMDAwIC0wLjA3MDggNDU4Ljg0OTUgNjQ3LjU0NDNdPj4KZW5kb2JqCgo5MTEgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0K1tbWZWVlCmVuZHN0cmVhbQplbmRvYmoKCjMzMSAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFs1MjkuMTEyNCAzMzMuOTk0NyA1MjYuMDgyMCAzMjEuMzY3OV0KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gOTExIDAgUj4+Ci9NYXRyaXggWzAuMDcxMCAwLjAwMDAgMC4wMDAwIC0wLjA3MDggNDU4Ljg0OTUgNjI4LjUyMjRdPj4KZW5kb2JqCgo5MTIgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0K1tbWZWVlCmVuZHN0cmVhbQplbmRvYmoKCjM0MCAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFs1MjkuMTEyNCAzMzMuOTk0NyA1MjYuMDgyMCAzMjEuMzY3OV0KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gOTEyIDAgUj4+Ci9NYXRyaXggWzAuMDcxMCAwLjAwMDAgMC4wMDAwIC0wLjA3MDggNDU4Ljg0OTUgNjA5LjUwMDVdPj4KZW5kb2JqCgo5MTMgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0K1tbWZWVlCmVuZHN0cmVhbQplbmRvYmoKCjI4NyAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFs1MjkuMTEyNCAzMzMuOTk0NyA1MjYuMDgyMCAzMjEuMzY3OV0KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gOTEzIDAgUj4+Ci9NYXRyaXggWzAuMDcxMCAwLjAwMDAgMC4wMDAwIC0wLjA3MDggNDc3LjU5MDYgNjg1LjU4ODBdPj4KZW5kb2JqCgo5MTQgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0K1tbWZWVlCmVuZHN0cmVhbQplbmRvYmoKCjMxOCAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFs1MjkuMTEyNCAzMzMuOTk0NyA1MjYuMDgyMCAzMjEuMzY3OV0KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gOTE0IDAgUj4+Ci9NYXRyaXggWzAuMDcxMCAwLjAwMDAgMC4wMDAwIC0wLjA3MDggNDc3LjU5MDYgNjY2LjU2NjJdPj4KZW5kb2JqCgo5MTUgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0K1tbWZWVlCmVuZHN0cmVhbQplbmRvYmoKCjM0NSAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFs1MjkuMTEyNCAzMzMuOTk0NyA1MjYuMDgyMCAzMjEuMzY3OV0KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gOTE1IDAgUj4+Ci9NYXRyaXggWzAuMDcxMCAwLjAwMDAgMC4wMDAwIC0wLjA3MDggNDc3LjU5MDYgNjI4LjQ2MTZdPj4KZW5kb2JqCgo5MTYgMCBvYmoKPDwvTGVuZ3RoIDYKL0Z1bmN0aW9uVHlwZSAwCi9Eb21haW4gWzAgMV0KL1JhbmdlIFswIDEgMCAxIDAgMV0KL1NpemUgWzJdCi9CaXRzUGVyU2FtcGxlIDg+PgpzdHJlYW0KAAAAAAAACmVuZHN0cmVhbQplbmRvYmoKCjQwOSAwIG9iago8PC9UeXBlIC9QYXR0ZXJuCi9QYXR0ZXJuVHlwZSAyCi9TaGFkaW5nIDw8L1NoYWRpbmdUeXBlIDIKL0NvbG9yU3BhY2UgL0RldmljZVJHQgovQ29vcmRzIFs1ODAuMzQyOCA1MjQuMDA2NyA1ODAuMDgzOSA1NjUuOTM5OF0KL0V4dGVuZCBbdHJ1ZSB0cnVlXQovRnVuY3Rpb24gOTE2IDAgUj4+Ci9NYXRyaXggWzAuMzQwMyAwLjAwMDAgMC4wMDAwIC0wLjM0MDMgODkuNjMzMiA3NDIuNDEzOF0+PgplbmRvYmoKCjMxIDAgb2JqCjw8L1R5cGUgL0ZvbnQKL1N1YnR5cGUgL1RydWVUeXBlCi9CYXNlRm9udCAvUFhBQUFBK0FyaWFsTVQKL0ZpcnN0Q2hhciAxCi9MYXN0Q2hhciA5OQovV2lkdGhzIFsyNzcgMjc3IDM1NCA1NTYgNTU2IDg4OSA2NjYgMTkwIDMzMyAzMzMgMzg5IDU4MyAyNzcgMzMzIDI3NyAyNzcgNTU2IDU1NiA1NTYgNTU2IDU1NiA1NTYgNTU2IDU1NiA1NTYgNTU2IDI3NyAyNzcgNTgzIDU4MyA1ODMgNTU2IDEwMTUgNjY2IDY2NiA3MjIgNzIyIDY2NiA2MTAgNzc3IDcyMiAyNzcgNTAwIDY2NiA1NTYgODMzIDcyMiA3NzcgNjY2IDc3NyA3MjIgNjY2IDYxMCA3MjIgNjY2IDk0MyA2NjYgNjY2IDYxMCAyNzcgMjc3IDI3NyA0NjkgNTU2IDMzMyA1NTYgNTU2IDUwMCA1NTYgNTU2IDU1NiAyMjIgNTAwIDIyMiA4MzMgNTU2IDU1NiA1NTYgNTU2IDMzMyA1MDAgMjc3IDU1NiA1MDAgNzIyIDUwMCA1MDAgMzMzIDI1OSAzMzMgNTgzIDY2NiA1NTYgNTU2IDEwMDAgNzc3IDU1NiA4MzMgNTU2XQovRm9udERlc2NyaXB0b3IgOTE3IDAgUgovVG9Vbmljb2RlIDkxOCAwIFI+PgplbmRvYmoKCjkxNyAwIG9iago8PC9UeXBlIC9Gb250RGVzY3JpcHRvcgovRm9udE5hbWUgL0FyaWFsTVQKL0FzY2VudCA5MDUKL0Rlc2NlbnQgLTIxMQovSXRhbGljQW5nbGUgMAovU3RlbVYgMAovQ2FwSGVpZ2h0IDAKL0ZsYWdzIDQKL0ZvbnRCQm94IFstNjY0IC0zMjQgMjAyOCAxMDM3XQovRm9udEZpbGUyIDkxOSAwIFI+PgplbmRvYmoKCjkxOCAwIG9iago8PC9MZW5ndGggOTIwIDAgUgovRmlsdGVyIC9GbGF0ZURlY29kZT4+CnN0cmVhbQp4nF3Uy2rbQBTG8b2eQst0EayZc85MDMZQUgJe9ELdPoAuI0dQS0JWFn776psvpNCFzV/MRT+0OLvn05fTOKzl7scytee0lv0wdku6TW9Lm8omXYaxcL7shnZ9f8r/7bWei912+Hy/rel6GvupOBzK3c9t8bYu9/Lhczc16VOx+750aRnGS/nw+/m8PZ/f5vlPuqZxLavieCy71G8Xfa3nb/U1lbt87PHUbevDen/czvzb8es+p9LnZ0dMO3XpNtdtWurxkopDVR3Lw8vLsUhj99/afs8jTd++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MDAwMDAgbiAKMDAwMDMwMTkwNiAwMDAwMCBuIAowMDAwMzEwNzk1IDAwMDAwIG4gCjAwMDAwMTQ3MDQgMDAwMDAgbiAKMDAwMDA5MzE1NyAwMDAwMCBuIAowMDAwMDA3NTA3IDAwMDAwIG4gCjAwMDAwMTQ2ODIgMDAwMDAgbiAKMDAwMDAyMTczNCAwMDAwMCBuIAowMDAwMDIxNzU2IDAwMDAwIG4gCjAwMDAwODE2MTEgMDAwMDAgbiAKMDAwMDA4ODcwNSAwMDAwMCBuIAowMDAwMDg4ODk1IDAwMDAwIG4gCjAwMDAwODkwODUgMDAwMDAgbiAKMDAwMDA4OTI3OCAwMDAwMCBuIAowMDAwMDg5NDU4IDAwMDAwIG4gCjAwMDAyNTkwODQgMDAwMDAgbiAKMDAwMDMyODg4NyAwMDAwMCBuIAowMDAwMTQyMjU0IDAwMDAwIG4gCjAwMDAyNTEyODMgMDAwMDAgbiAKMDAwMDIwOTY4NyAwMDAwMCBuIAowMDAwMTY4NzAzIDAwMDAwIG4gCjAwMDAxMjE4NjIgMDAwMDAgbiAKMDAwMDI0NzUwNiAwMDAwMCBuIAowMDAwMjA1ODkwIDAwMDAwIG4gCjAwMDAxNjQ5MjYgMDAwMDAgbiAKMDAwMDExODA4NSAwMDAwMCBuIAowMDAwMjQ5NzcyIDAwMDAwIG4gCjAwMDAyMDgxNjggMDAwMDAgbiAKMDAwMDA5ODQzNyAwMDAwMCBuIAowMDAwMTY3MTkyIDAwMDAwIG4gCjAwMDAxMjAzNTEgMDAwMDAgbiAKMDAwMDI1MTY2MCAwMDAwMCBuIAowMDAwMjEwMDY2IDAwMDAwIG4gCjAwMDAxNjkwODAgMDAwMDAgbiAKMDAwMDEyMjIzOSAwMDAwMCBuIAowMDAwMjQ5Mzk1IDAwMDAwIG4gCjAwMDAyMDc3ODkgMDAwMDAgbiAKMDAwMDE2NjgxNSAwMDAwMCBuIAowMDAwMTE5OTc0IDAwMDAwIG4gCjAwMDAyMjY3MjMgMDAwMDAgbiAKMDAwMDIxODA0MyAwMDAwMCBuIAowMDAwMTc2MjYxIDAwMDAwIG4gCjAwMDAxMzU4NDAgMDAwMDAgbiAKMDAwMDA5MzkwOCAwMDAwMCBuIAowMDAwMjIwMzA0IDAwMDAwIG4gCjAwMDAxNzg1NDAgMDAwMDAgbiAKMDAwMDEzNzcyNCAwMDAwMCBuIAowMDAwMDk0NjYxIDAwMDAwIG4gCjAwMDAyMjIxOTAgMDAwMDAgbiAKMDAwMDE4MDQzOSAwMDAwMCBuIAowMDAwMTg0OTk2IDAwMDAwIG4gCjAwMDAxMzk2MTAgMDAwMDAgbiAKMDAwMDA5NjE3MSAwMDAwMCBuIAowMDAwMjI0NDU3IDAwMDAwIG4gCjAwMDAxODI3MTggMDAwMDAgbiAKMDAwMDE0MTg3NyAwMDAwMCBuIAowMDAwMDk4MDYwIDAwMDAwIG4gCjAwMDAyMjYzNDYgMDAwMDAgbiAKMDAwMDE4NDYxNyAwMDAwMCBuIAowMDAwMTQ0MTQzIDAwMDAwIG4gCjAwMDAwOTk5NDggMDAwMDAgbiAKMDAwMDE0NDUyMCAwMDAwMCBuIAowMDAwMjI4MjM0IDAwMDAwIG4gCjAwMDAxODY1MTUgMDAwMDAgbiAKMDAwMDE0NjAzMSAwMDAwMCBuIAowMDAwMTAxODM2IDAwMDAwIG4gCjAwMDAyMzAxMjIgMDAwMDAgbiAKMDAwMDE4ODQxNCAwMDAwMCBuIAowMDAwMTQ3OTIwIDAwMDAwIG4gCjAwMDAxMDM3MjUgMDAwMDAgbiAKMDAwMDIzMjAxMSAwMDAwMCBuIAowMDAwMTkwMzEzIDAwMDAwIG4gCjAwMDAxMDAzMjUgMDAwMDAgbiAKMDAwMDE0OTgwOSAwMDAwMCBuIAowMDAwMTA1NjE0IDAwMDAwIG4gCjAwMDAyMzM5MDAgMDAwMDAgbiAKMDAwMDE5MjIxMiAwMDAwMCBuIAowMDAwMTUxNjk4IDAwMDAwIG4gCjAwMDAxMDc1MDMgMDAwMDAgbiAKMDAwMDIzNTc4OSAwMDAwMCBuIAowMDAwMTk0MTExIDAwMDAwIG4gCjAwMDAxNTM1ODcgMDAwMDAgbiAKMDAwMDEwOTM5MiAwMDAwMCBuIAowMDAwMjI4NjExIDAwMDAwIG4gCjAwMDAyMzgwNTYgMDAwMDAgbiAKMDAwMDE5NjM5MCAwMDAwMCBuIAowMDAwMTU1NDc2IDAwMDAwIG4gCjAwMDAxMTEyODEgMDAwMDAgbiAKMDAwMDIzOTk0NiAwMDAwMCBuIAowMDAwMTk4MjkwIDAwMDAwIG4gCjAwMDAxNTczNjYgMDAwMDAgbiAKMDAwMDExMjc5MyAwMDAwMCBuIAowMDAwMjQyMjE0IDAwMDAwIG4gCjAwMDAyMDA1NzAgMDAwMDAgbiAKMDAwMDE4Njg5NCAwMDAwMCBuIAowMDAwMTU5NjM0IDAwMDAwIG4gCjAwMDAxMTQ2ODMgMDAwMDAgbiAKMDAwMDEzNTA4NSAwMDAwMCBuIAowMDAwMjIxNDM0IDAwMDAwIG4gCjAwMDAxNzk2NzkgMDAwMDAgbiAKMDAwMDEzODg1NCAwMDAwMCBuIAowMDAwMDk1NDE1IDAwMDAwIG4gCjAwMDAyMjMzMjMgMDAwMDAgbiAKMDAwMDE4MTU3OCAwMDAwMCBuIAowMDAwMTQxMTIxIDAwMDAwIG4gCjAwMDAxNDY0MDggMDAwMDAgbiAKMDAwMDA5NzMwNCAwMDAwMCBuIAowMDAwMjI1NTkwIDAwMDAwIG4gCjAwMDAxODM4NTcgMDAwMDAgbiAKMDAwMDE0MzAwOSAwMDAwMCBuIAowMDAwMDk5MTkyIDAwMDAwIG4gCjAwMDAyMjc0NzggMDAwMDAgbiAKMDAwMDE4NTc1NSAwMDAwMCBuIAowMDAwMTQ1Mjc1IDAwMDAwIG4gCjAwMDAxMDEwODAgMDAwMDAgbiAKMDAwMDIyOTM2NiAwMDAwMCBuIAowMDAwMTAyMjEzIDAwMDAwIG4gCjAwMDAxODc2NTQgMDAwMDAgbiAKMDAwMDE0NzE2NCAwMDAwMCBuIAowMDAwMTAyOTY5IDAwMDAwIG4gCjAwMDAyMzA4NzcgMDAwMDAgbiAKMDAwMDE4OTE3MyAwMDAwMCBuIAowMDAwMTQ4Njc1IDAwMDAwIG4gCjAwMDAxMDQ0ODAgMDAwMDAgbiAKMDAwMDIzMjc2NiAwMDAwMCBuIAowMDAwMTkxMDcyIDAwMDAwIG4gCjAwMDAxNTA1NjQgMDAwMDAgbiAKMDAwMDIxNzY2NSAwMDAwMCBuIAowMDAwMjMxMjU1IDAwMDAwIG4gCjAwMDAxMDYzNjkgMDAwMDAgbiAKMDAwMDIzNDY1NSAwMDAwMCBuIAowMDAwMTkyOTcxIDAwMDAwIG4gCjAwMDAxNTI0NTMgMDAwMDAgbiAKMDAwMDEwODI1OCAwMDAwMCBuIAowMDAwMjM2OTIyIDAwMDAwIG4gCjAwMDAxOTUyNTAgMDAwMDAgbiAKMDAwMDE1NDM0MiAwMDAwMCBuIAowMDAwMTEwMTQ3IDAwMDAwIG4gCjAwMDAyMzkxOTAgMDAwMDAgbiAKMDAwMDE4OTU1MyAwMDAwMCBuIAowMDAwMTk3NTMwIDAwMDAwIG4gCjAwMDAxNTY2MTAgMDAwMDAgbiAKMDAwMDExMjAzNyAwMDAwMCBuIAowMDAwMjQxMDgwIDAwMDAwIG4gCjAwMDAxOTk0MzAgMDAwMDAgbiAKMDAwMDE1ODg3OCAwMDAwMCBuIAowMDAwMTEzOTI3IDAwMDAwIG4gCjAwMDAyNDI5NzAgMDAwMDAgbiAKMDAwMDIwMTMzMCAwMDAwMCBuIAowMDAwMTYwNzY4IDAwMDAwIG4gCjAwMDAxNDkwNTMgMDAwMDAgbiAKMDAwMDExNTQzOSAwMDAwMCBuIAowMDAwMjIxODEyIDAwMDAwIG4gCjAwMDAxODAwNTkgMDAwMDAgbiAKMDAwMDEzOTIzMiAwMDAwMCBuIAowMDAwMDk1NzkzIDAwMDAwIG4gCjAwMDAyMjQwNzkgMDAwMDAgbiAKMDAwMDE4MjMzOCAwMDAwMCBuIAowMDAwMTQxNDk5IDAwMDAwIG4gCjAwMDAwOTc2ODIgMDAwMDAgbiAKMDAwMDIyNTk2OCAwMDAwMCBuIAowMDAwMTA0ODU4IDAwMDAwIG4gCjAwMDAxODQyMzcgMDAwMDAgbiAKMDAwMDE0Mzc2NSAwMDAwMCBuIAowMDAwMDk5NTcwIDAwMDAwIG4gCjAwMDAyMjc4NTYgMDAwMDAgbiAKMDAwMDE4NjEzNSAwMDAwMCBuIAowMDAwMTQ1NjUzIDAwMDAwIG4gCjAwMDAxMDE0NTggMDAwMDAgbiAKMDAwMDIyOTc0NCAwMDAwMCBuIAowMDAwMTg4MDM0IDAwMDAwIG4gCjAwMDAxNDc1NDIgMDAwMDAgbiAKMDAwMDIzMzE0NCAwMDAwMCBuIAowMDAwMTAzMzQ3IDAwMDAwIG4gCjAwMDAyMzE2MzMgMDAwMDAgbiAKMDAwMDE4OTkzMyAwMDAwMCBuIAowMDAwMTQ5NDMxIDAwMDAwIG4gCjAwMDAxMDUyMzYgMDAwMDAgbiAKMDAwMDIzMzUyMiAwMDAwMCBuIAowMDAwMTkxODMyIDAwMDAwIG4gCjAwMDAxNTEzMjAgMDAwMDAgbiAKMDAwMDEwNzEyNSAwMDAwMCBuIAowMDAwMjM1NDExIDAwMDAwIG4gCjAwMDAxOTE0NTIgMDAwMDAgbiAKMDAwMDE5MzczMSAwMDAwMCBuIAowMDAwMTUzMjA5IDAwMDAwIG4gCjAwMDAxMDkwMTQgMDAwMDAgbiAKMDAwMDIzNzY3OCAwMDAwMCBuIAowMDAwMTk2MDEwIDAwMDAwIG4gCjAwMDAxNTUwOTggMDAwMDAgbiAKMDAwMDExMDkwMyAwMDAwMCBuIAowMDAwMjM5NTY4IDAwMDAwIG4gCjAwMDAxOTc5MTAgMDAwMDAgbiAKMDAwMDE1Njk4OCAwMDAwMCBuIAowMDAwMTUwOTQyIDAwMDAwIG4gCjAwMDAxMTI0MTUgMDAwMDAgbiAKMDAwMDI0MTgzNiAwMDAwMCBuIAowMDAwMjAwMTkwIDAwMDAwIG4gCjAwMDAxNTkyNTYgMDAwMDAgbiAKMDAwMDExNDMwNSAwMDAwMCBuIAowMDAwMjQzMzQ4IDAwMDAwIG4gCjAwMDAyMDE3MTAgMDAwMDAgbiAKMDAwMDE2MTUyNCAwMDAwMCBuIAowMDAwMTE1ODE3IDAwMDAwIG4gCjAwMDAyMjA2ODAgMDAwMDAgbiAKMDAwMDEwNjc0NyAwMDAwMCBuIAowMDAwMTc4OTE5IDAwMDAwIG4gCjAwMDAxMzgxMDAgMDAwMDAgbiAKMDAwMDA5NTAzNyAwMDAwMCBuIAowMDAwMjIyOTQ1IDAwMDAwIG4gCjAwMDAxODExOTggMDAwMDAgbiAKMDAwMDE0MDM2NSAwMDAwMCBuIAowMDAwMDk2OTI2IDAwMDAwIG4gCjAwMDAyMjUyMTIgMDAwMDAgbiAKMDAwMDE4MzQ3NyAwMDAwMCBuIAowMDAwMTQyNjMxIDAwMDAwIG4gCjAwMDAyMzUwMzMgMDAwMDAgbiAKMDAwMDA5ODgxNCAwMDAwMCBuIAowMDAwMjI3MTAwIDAwMDAwIG4gCjAwMDAxODUzNzUgMDAwMDAgbiAKMDAwMDE0NDg5NyAwMDAwMCBuIAowMDAwMTAwNzAyIDAwMDAwIG4gCjAwMDAyMjg5ODggMDAwMDAgbiAKMDAwMDE4NzI3NCAwMDAwMCBuIAowMDAwMTQ2Nzg2IDAwMDAwIG4gCjAwMDAxMDI1OTEgMDAwMDAgbiAKMDAwMDIzMDQ5OSAwMDAwMCBuIAowMDAwMTkzMzUxIDAwMDAwIG4gCjAwMDAxODg3OTMgMDAwMDAgbiAKMDAwMDE0ODI5NyAwMDAwMCBuIAowMDAwMTA0MTAyIDAwMDAwIG4gCjAwMDAyMzIzODggMDAwMDAgbiAKMDAwMDE5MDY5MiAwMDAwMCBuIAowMDAwMTUwMTg2IDAwMDAwIG4gCjAwMDAxMDU5OTEgMDAwMDAgbiAKMDAwMDIzNDI3NyAwMDAwMCBuIAowMDAwMTkyNTkxIDAwMDAwIG4gCjAwMDAxNTIwNzUgMDAwMDAgbiAKMDAwMDIxNzI4NSAwMDAwMCBuIAowMDAwMTUyODMxIDAwMDAwIG4gCjAwMDAxMDc4ODAgMDAwMDAgbiAKMDAwMDIzNjU0NCAwMDAwMCBuIAowMDAwMTk0ODcwIDAwMDAwIG4gCjAwMDAxNTM5NjQgMDAwMDAgbiAKMDAwMDEwOTc2OSAwMDAwMCBuIAowMDAwMjM4NDM0IDAwMDAwIG4gCjAwMDAxOTY3NzAgMDAwMDAgbiAKMDAwMDE1NjIzMiAwMDAwMCBuIAowMDAwMTExNjU5IDAwMDAwIG4gCjAwMDAyNDA3MDIgMDAwMDAgbiAKMDAwMDEwODYzNiAwMDAwMCBuIAowMDAwMTk5MDUwIDAwMDAwIG4gCjAwMDAxNTgxMjIgMDAwMDAgbiAKMDAwMDExMzU0OSAwMDAwMCBuIAowMDAwMjQ0NDgyIDAwMDAwIG4gCjAwMDAyMDI4NTAgMDAwMDAgbiAKMDAwMDE2MDM5MCAwMDAwMCBuIAowMDAwMTMzOTUxIDAwMDAwIG4gCjAwMDAyNTI0MTUgMDAwMDAgbiAKMDAwMDIxMDgyNSAwMDAwMCBuIAowMDAwMTY5ODM1IDAwMDAwIG4gCjAwMDAyMzczMDAgMDAwMDAgbiAKMDAwMDEyMjk5NCAwMDAwMCBuIAowMDAwMjU0MzA1IDAwMDAwIG4gCjAwMDAyMTI3MjUgMDAwMDAgbiAKMDAwMDE3MTcyNSAwMDAwMCBuIAowMDAwMTI0NTA2IDAwMDAwIG4gCjAwMDAyNTU4MTcgMDAwMDAgbiAKMDAwMDIxNDI0NSAwMDAwMCBuIAowMDAwMTczMjM3IDAwMDAwIG4gCjAwMDAxMjYwMTggMDAwMDAgbiAKMDAwMDI1NzcwNyAwMDAwMCBuIAowMDAwMTk1NjMwIDAwMDAwIG4gCjAwMDAyMTYxNDUgMDAwMDAgbiAKMDAwMDE3NTEyNyAwMDAwMCBuIAowMDAwMTI3OTA4IDAwMDAwIG4gCjAwMDAyNTI3OTMgMDAwMDAgbiAKMDAwMDIxMTIwNSAwMDAwMCBuIAowMDAwMTcwMjEzIDAwMDAwIG4gCjAwMDAxMjMzNzIgMDAwMDAgbiAKMDAwMDI1NDY4MyAwMDAwMCBuIAowMDAwMjEzMTA1IDAwMDAwIG4gCjAwMDAxNzIxMDMgMDAwMDAgbiAKMDAwMDE1NDcyMCAwMDAwMCBuIAowMDAwMTI0ODg0IDAwMDAwIG4gCjAwMDAyNTYxOTUgMDAwMDAgbiAKMDAwMDIxNDYyNSAwMDAwMCBuIAowMDAwMTczNjE1IDAwMDAwIG4gCjAwMDAxMjYzOTYgMDAwMDAgbiAKMDAwMDI1MzE3MSAwMDAwMCBuIAowMDAwMjExNTg1IDAwMDAwIG4gCjAwMDAxNzA1OTEgMDAwMDAgbiAKMDAwMDEyMzc1MCAwMDAwMCBuIAowMDAwMjU1MDYxIDAwMDAwIG4gCjAwMDAxMTA1MjUgMDAwMDAgbiAKMDAwMDIxMzQ4NSAwMDAwMCBuIAowMDAwMTcyNDgxIDAwMDAwIG4gCjAwMDAxMjUyNjIgMDAwMDAgbiAKMDAwMDI1NjU3MyAwMDAwMCBuIAowMDAwMjE1MDA1IDAwMDAwIG4gCjAwMDAxNzM5OTMgMDAwMDAgbiAKMDAwMDEyNjc3NCAwMDAwMCBuIAowMDAwMjU4MDg1IDAwMDAwIG4gCjAwMDAyMTY1MjUgMDAwMDAgbiAKMDAwMDE3NTUwNSAwMDAwMCBuIAowMDAwMjQwMzI0IDAwMDAwIG4gCjAwMDAxMjg2NjQgMDAwMDAgbiAKMDAwMDI1MzU0OSAwMDAwMCBuIAowMDAwMjExOTY1IDAwMDAwIG4gCjAwMDAxNzA5NjkgMDAwMDAgbiAKMDAwMDEyNDEyOCAwMDAwMCBuIAowMDAwMjU1NDM5IDAwMDAwIG4gCjAwMDAyMTM4NjUgMDAwMDAgbiAKMDAwMDE3Mjg1OSAwMDAwMCBuIAowMDAwMTI1NjQwIDAwMDAwIG4gCjAwMDAyNTY5NTEgMDAwMDAgbiAKMDAwMDE5ODY3MCAwMDAwMCBuIAowMDAwMjE1Mzg1IDAwMDAwIG4gCjAwMDAxNzQzNzEgMDAwMDAgbiAKMDAwMDEyNzE1MiAwMDAwMCBuIAowMDAwMjUzOTI3IDAwMDAwIG4gCjAwMDAyMTIzNDUgMDAwMDAgbiAKMDAwMDE3MTM0NyAwMDAwMCBuIAowMDAwMTMzMTk1IDAwMDAwIG4gCjAwMDAyNTczMjkgMDAwMDAgbiAKMDAwMDIxNTc2NSAwMDAwMCBuIAowMDAwMTc0NzQ5IDAwMDAwIG4gCjAwMDAxNTc3NDQgMDAwMDAgbiAKMDAwMDEyNzUzMCAwMDAwMCBuIAowMDAwMjU4NDYzIDAwMDAwIG4gCjAwMDAyMTY5MDUgMDAwMDAgbiAKMDAwMDE3NTg4MyAwMDAwMCBuIAowMDAwMTI4Mjg2IDAwMDAwIG4gCjAwMDAyMTk5MjcgMDAwMDAgbiAKMDAwMDE3ODE2MCAwMDAwMCBuIAowMDAwMTM2OTcwIDAwMDAwIG4gCjAwMDAxMzI4MTggMDAwMDAgbiAKMDAwMDEzNjU5MyAwMDAwMCBuIAowMDAwMTEzMTcxIDAwMDAwIG4gCjAwMDAyMTg3OTYgMDAwMDAgbiAKMDAwMDE3NzAyMCAwMDAwMCBuIAowMDAwMTM2MjE2IDAwMDAwIG4gCjAwMDAxMzE2ODYgMDAwMDAgbiAKMDAwMDI0NTYxNiAwMDAwMCBuIAowMDAwMjAzOTkwIDAwMDAwIG4gCjAwMDAxNjIyODAgMDAwMDAgbiAKMDAwMDEzMzU3MyAwMDAwMCBuIAowMDAwMTM0NzA2IDAwMDAwIG4gCjAwMDAyNDQ4NjAgMDAwMDAgbiAKMDAwMDIyMjU2NyAwMDAwMCBuIAowMDAwMjQyNTkyIDAwMDAwIG4gCjAwMDAyMDMyMzAgMDAwMDAgbiAKMDAwMDE2MjY1OCAwMDAwMCBuIAowMDAwMTMyMDYzIDAwMDAwIG4gCjAwMDAwOTM1MzAgMDAwMDAgbiAKMDAwMDIxOTU1MCAwMDAwMCBuIAowMDAwMTc3NzgwIDAwMDAwIG4gCjAwMDAxMzI0NDEgMDAwMDAgbiAKMDAwMDIxOTE3MyAwMDAwMCBuIAowMDAwMTc3NDAwIDAwMDAwIG4gCjAwMDAxMzU0NjMgMDAwMDAgbiAKMDAwMDIwMDk1MCAwMDAwMCBuIAowMDAwMTI5MDQyIDAwMDAwIG4gCjAwMDAyMjEwNTcgMDAwMDAgbiAKMDAwMDE3OTI5OSAwMDAwMCBuIAowMDAwMTM4NDc3IDAwMDAwIG4gCjAwMDAxMjk0MTkgMDAwMDAgbiAKMDAwMDIyMzcwMSAwMDAwMCBuIAowMDAwMTgxOTU4IDAwMDAwIG4gCjAwMDAxNDA3NDMgMDAwMDAgbiAKMDAwMDEyOTc5NiAwMDAwMCBuIAowMDAwMjM2MTY2IDAwMDAwIG4gCjAwMDAxNjAwMTIgMDAwMDAgbiAKMDAwMDE5NDQ5MCAwMDAwMCBuIAowMDAwMTQzMzg3IDAwMDAwIG4gCjAwMDAxMzQzMjkgMDAwMDAgbiAKMDAwMDIzODgxMiAwMDAwMCBuIAowMDAwMTk3MTUwIDAwMDAwIG4gCjAwMDAxNTU4NTQgMDAwMDAgbiAKMDAwMDEzMDE3NCAwMDAwMCBuIAowMDAwMjQ1OTk0IDAwMDAwIG4gCjAwMDAyMDQzNzAgMDAwMDAgbiAKMDAwMDE2MzAzNiAwMDAwMCBuIAowMDAwMTE1MDYxIDAwMDAwIG4gCjAwMDAxMzEzMDggMDAwMDAgbiAKMDAwMDI0MzcyNiAwMDAwMCBuIAowMDAwMjAyMDkwIDAwMDAwIG4gCjAwMDAxNjExNDYgMDAwMDAgbiAKMDAwMDEzMDkzMCAwMDAwMCBuIAowMDAwMjQxNDU4IDAwMDAwIG4gCjAwMDAxOTk4MTAgMDAwMDAgbiAKMDAwMDE1ODUwMCAwMDAwMCBuIAowMDAwMTMwNTUyIDAwMDAwIG4gCjAwMDAyNTg4NDEgMDAwMDAgbiAKMDAwMDI0NDEwNCAwMDAwMCBuIAowMDAwMjAyNDcwIDAwMDAwIG4gCjAwMDAxNjE5MDIgMDAwMDAgbiAKMDAwMDExNjE5NSAwMDAwMCBuIAowMDAwMjQ1MjM4IDAwMDAwIG4gCjAwMDAyMDM2MTAgMDAwMDAgbiAKMDAwMDE4MDgxOCAwMDAwMCBuIAowMDAwMTYzNDE0IDAwMDAwIG4gCjAwMDAxMTY1NzMgMDAwMDAgbiAKMDAwMDIxODQxOSAwMDAwMCBuIAowMDAwMTc2NjQwIDAwMDAwIG4gCjAwMDAxMzczNDcgMDAwMDAgbiAKMDAwMDA5NDI4NCAwMDAwMCBuIAowMDAwMjQ3ODgzIDAwMDAwIG4gCjAwMDAyMDYyNjkgMDAwMDAgbiAKMDAwMDE2NTMwMyAwMDAwMCBuIAowMDAwMTE4NDYyIDAwMDAwIG4gCjAwMDAxMzk5ODcgMDAwMDAgbiAKMDAwMDI1MDE0OSAwMDAwMCBuIAowMDAwMjA4NTQ3IDAwMDAwIG4gCjAwMDAxNjc1NjkgMDAwMDAgbiAKMDAwMDEyMDcyOCAwMDAwMCBuIAowMDAwMjUyMDM3IDAwMDAwIG4gCjAwMDAyMTA0NDUgMDAwMDAgbiAKMDAwMDE2OTQ1NyAwMDAwMCBuIAowMDAwMTIyNjE2IDAwMDAwIG4gCjAwMDAyNDYzNzIgMDAwMDAgbiAKMDAwMDIwNDc1MCAwMDAwMCBuIAowMDAwMDk2NTQ4IDAwMDAwIG4gCjAwMDAxNjM3OTIgMDAwMDAgbiAKMDAwMDExNjk1MSAwMDAwMCBuIAowMDAwMjQ4MjYxIDAwMDAwIG4gCjAwMDAyMDY2NDkgMDAwMDAgbiAKMDAwMDE2NTY4MSAwMDAwMCBuIAowMDAwMTE4ODQwIDAwMDAwIG4gCjAwMDAyNTA1MjcgMDAwMDAgbiAKMDAwMDIwODkyNyAwMDAwMCBuIAowMDAwMTY3OTQ3IDAwMDAwIG4gCjAwMDAxMjExMDYgMDAwMDAgbiAKMDAwMDIyNDgzNCAwMDAwMCBuIAowMDAwMjQ2NzUwIDAwMDAwIG4gCjAwMDAyMDUxMzAgMDAwMDAgbiAKMDAwMDE2NDE3MCAwMDAwMCBuIAowMDAwMTE3MzI5IDAwMDAwIG4gCjAwMDAyNDg2MzkgMDAwMDAgbiAKMDAwMDIwNzAyOSAwMDAwMCBuIAowMDAwMTY2MDU5IDAwMDAwIG4gCjAwMDAxMTkyMTggMDAwMDAgbiAKMDAwMDI1MDkwNSAwMDAwMCBuIAowMDAwMjA5MzA3IDAwMDAwIG4gCjAwMDAxODMwOTcgMDAwMDAgbiAKMDAwMDE2ODMyNSAwMDAwMCBuIAowMDAwMTIxNDg0IDAwMDAwIG4gCjAwMDAyNDcxMjggMDAwMDAgbiAKMDAwMDIwNTUxMCAwMDAwMCBuIAowMDAwMTY0NTQ4IDAwMDAwIG4gCjAwMDAxMTc3MDcgMDAwMDAgbiAKMDAwMDI0OTAxNyAwMDAwMCBuIAowMDAwMjA3NDA5IDAwMDAwIG4gCjAwMDAxNjY0MzcgMDAwMDAgbiAKMDAwMDExOTU5NiAwMDAwMCBuIAowMDAwMDg5NjM4IDAwMDAwIG4gCjAwMDAwOTE3OTggMDAwMDAgbiAKMDAwMDA5MjAyOCAwMDAwMCBuIAowMDAwMDkyMjY1IDAwMDAwIG4gCjAwMDAwOTI0NDcgMDAwMDAgbiAKMDAwMDA5MjYzNiAwMDAwMCBuIAowMDAwMDkyODM1IDAwMDAwIG4gCjAwMDAwOTMwMjMgMDAwMDAgbiAKMDAwMDA5MzM5NiAwMDAwMCBuIAowMDAwMDkzNzc0IDAwMDAwIG4gCjAwMDAwOTQxNTAgMDAwMDAgbiAKMDAwMDA5NDUyNyAwMDAwMCBuIAowMDAwMDk0OTAzIDAwMDAwIG4gCjAwMDAwOTUyODEgMDAwMDAgbiAKMDAwMDA5NTY1OSAwMDAwMCBuIAowMDAwMDk2MDM3IDAwMDAwIG4gCjAwMDAwOTY0MTQgMDAwMDAgbiAKMDAwMDA5Njc5MiAwMDAwMCBuIAowMDAwMDk3MTcwIDAwMDAwIG4gCjAwMDAwOTc1NDggMDAwMDAgbiAKMDAwMDA5NzkyNiAwMDAwMCBuIAowMDAwMDk4MzAzIDAwMDAwIG4gCjAwMDAwOTg2ODAgMDAwMDAgbiAKMDAwMDA5OTA1OCAwMDAwMCBuIAowMDAwMDk5NDM2IDAwMDAwIG4gCjAwMDAwOTk4MTQgMDAwMDAgbiAKMDAwMDEwMDE5MSAwMDAwMCBuIAowMDAwMTAwNTY4IDAwMDAwIG4gCjAwMDAxMDA5NDYgMDAwMDAgbiAKMDAwMDEwMTMyNCAwMDAwMCBuIAowMDAwMTAxNzAyIDAwMDAwIG4gCjAwMDAxMDIwNzkgMDAwMDAgbiAKMDAwMDEwMjQ1NyAwMDAwMCBuIAowMDAwMTAyODM1IDAwMDAwIG4gCjAwMDAxMDMyMTMgMDAwMDAgbiAKMDAwMDEwMzU5MSAwMDAwMCBuIAowMDAwMTAzOTY4IDAwMDAwIG4gCjAwMDAxMDQzNDYgMDAwMDAgbiAKMDAwMDEwNDcyNCAwMDAwMCBuIAowMDAwMTA1MTAyIDAwMDAwIG4gCjAwMDAxMDU0ODAgMDAwMDAgbiAKMDAwMDEwNTg1NyAwMDAwMCBuIAowMDAwMTA2MjM1IDAwMDAwIG4gCjAwMDAxMDY2MTMgMDAwMDAgbiAKMDAwMDEwNjk5MSAwMDAwMCBuIAowMDAwMTA3MzY5IDAwMDAwIG4gCjAwMDAxMDc3NDYgMDAwMDAgbiAKMDAwMDEwODEyNCAwMDAwMCBuIAowMDAwMTA4NTAyIDAwMDAwIG4gCjAwMDAxMDg4ODAgMDAwMDAgbiAKMDAwMDEwOTI1OCAwMDAwMCBuIAowMDAwMTA5NjM1IDAwMDAwIG4gCjAwMDAxMTAwMTMgMDAwMDAgbiAKMDAwMDExMDM5MSAwMDAwMCBuIAowMDAwMTEwNzY5IDAwMDAwIG4gCjAwMDAxMTExNDcgMDAwMDAgbiAKMDAwMDExMTUyNSAwMDAwMCBuIAowMDAwMTExOTAzIDAwMDAwIG4gCjAwMDAxMTIyODEgMDAwMDAgbiAKMDAwMDExMjY1OSAwMDAwMCBuIAowMDAwMTEzMDM3IDAwMDAwIG4gCjAwMDAxMTM0MTUgMDAwMDAgbiAKMDAwMDExMzc5MyAwMDAwMCBuIAowMDAwMTE0MTcxIDAwMDAwIG4gCjAwMDAxMTQ1NDkgMDAwMDAgbiAKMDAwMDExNDkyNyAwMDAwMCBuIAowMDAwMTE1MzA1IDAwMDAwIG4gCjAwMDAxMTU2ODMgMDAwMDAgbiAKMDAwMDExNjA2MSAwMDAwMCBuIAowMDAwMTE2NDM5IDAwMDAwIG4gCjAwMDAxMTY4MTcgMDAwMDAgbiAKMDAwMDExNzE5NSAwMDAwMCBuIAowMDAwMTE3NTczIDAwMDAwIG4gCjAwMDAxMTc5NTEgMDAwMDAgbiAKMDAwMDExODMyOCAwMDAwMCBuIAowMDAwMTE4NzA2IDAwMDAwIG4gCjAwMDAxMTkwODQgMDAwMDAgbiAKMDAwMDExOTQ2MiAwMDAwMCBuIAowMDAwMTE5ODQwIDAwMDAwIG4gCjAwMDAxMjAyMTcgMDAwMDAgbiAKMDAwMDEyMDU5NCAwMDAwMCBuIAowMDAwMTIwOTcyIDAwMDAwIG4gCjAwMDAxMjEzNTAgMDAwMDAgbiAKMDAwMDEyMTcyOCAwMDAwMCBuIAowMDAwMTIyMTA1IDAwMDAwIG4gCjAwMDAxMjI0ODIgMDAwMDAgbiAKMDAwMDEyMjg2MCAwMDAwMCBuIAowMDAwMTIzMjM4IDAwMDAwIG4gCjAwMDAxMjM2MTYgMDAwMDAgbiAKMDAwMDEyMzk5NCAwMDAwMCBuIAowMDAwMTI0MzcyIDAwMDAwIG4gCjAwMDAxMjQ3NTAgMDAwMDAgbiAKMDAwMDEyNTEyOCAwMDAwMCBuIAowMDAwMTI1NTA2IDAwMDAwIG4gCjAwMDAxMjU4ODQgMDAwMDAgbiAKMDAwMDEyNjI2MiAwMDAwMCBuIAowMDAwMTI2NjQwIDAwMDAwIG4gCjAwMDAxMjcwMTggMDAwMDAgbiAKMDAwMDEyNzM5NiAwMDAwMCBuIAowMDAwMTI3Nzc0IDAwMDAwIG4gCjAwMDAxMjgxNTIgMDAwMDAgbiAKMDAwMDEyODUzMCAwMDAwMCBuIAowMDAwMTI4OTA4IDAwMDAwIG4gCjAwMDAxMjkyODUgMDAwMDAgbiAKMDAwMDEyOTY2MiAwMDAwMCBuIAowMDAwMTMwMDQwIDAwMDAwIG4gCjAwMDAxMzA0MTggMDAwMDAgbiAKMDAwMDEzMDc5NiAwMDAwMCBuIAowMDAwMTMxMTc0IDAwMDAwIG4gCjAwMDAxMzE1NTIgMDAwMDAgbiAKMDAwMDEzMTkyOSAwMDAwMCBuIAowMDAwMTMyMzA3IDAwMDAwIG4gCjAwMDAxMzI2ODQgMDAwMDAgbiAKMDAwMDEzMzA2MSAwMDAwMCBuIAowMDAwMTMzNDM5IDAwMDAwIG4gCjAwMDAxMzM4MTcgMDAwMDAgbiAKMDAwMDEzNDE5NSAwMDAwMCBuIAowMDAwMTM0NTcyIDAwMDAwIG4gCjAwMDAxMzQ5NTEgMDAwMDAgbiAKMDAwMDEzNTMyOSAwMDAwMCBuIAowMDAwMTM1NzA2IDAwMDAwIG4gCjAwMDAxMzYwODIgMDAwMDAgbiAKMDAwMDEzNjQ1OSAwMDAwMCBuIAowMDAwMTM2ODM2IDAwMDAwIG4gCjAwMDAxMzcyMTMgMDAwMDAgbiAKMDAwMDEzNzU5MCAwMDAwMCBuIAowMDAwMTM3OTY2IDAwMDAwIG4gCjAwMDAxMzgzNDMgMDAwMDAgbiAKMDAwMDEzODcyMCAwMDAwMCBuIAowMDAwMTM5MDk4IDAwMDAwIG4gCjAwMDAxMzk0NzYgMDAwMDAgbiAKMDAwMDEzOTg1MyAwMDAwMCBuIAowMDAwMTQwMjMxIDAwMDAwIG4gCjAwMDAxNDA2MDkgMDAwMDAgbiAKMDAwMDE0MDk4NyAwMDAwMCBuIAowMDAwMTQxMzY1IDAwMDAwIG4gCjAwMDAxNDE3NDMgMDAwMDAgbiAKMDAwMDE0MjEyMCAwMDAwMCBuIAowMDAwMTQyNDk3IDAwMDAwIG4gCjAwMDAxNDI4NzUgMDAwMDAgbiAKMDAwMDE0MzI1MyAwMDAwMCBuIAowMDAwMTQzNjMxIDAwMDAwIG4gCjAwMDAxNDQwMDkgMDAwMDAgbiAKMDAwMDE0NDM4NiAwMDAwMCBuIAowMDAwMTQ0NzYzIDAwMDAwIG4gCjAwMDAxNDUxNDEgMDAwMDAgbiAKMDAwMDE0NTUxOSAwMDAwMCBuIAowMDAwMTQ1ODk3IDAwMDAwIG4gCjAwMDAxNDYyNzQgMDAwMDAgbiAKMDAwMDE0NjY1MiAwMDAwMCBuIAowMDAwMTQ3MDMwIDAwMDAwIG4gCjAwMDAxNDc0MDggMDAwMDAgbiAKMDAwMDE0Nzc4NiAwMDAwMCBuIAowMDAwMTQ4MTYzIDAwMDAwIG4gCjAwMDAxNDg1NDEgMDAwMDAgbiAKMDAwMDE0ODkxOSAwMDAwMCBuIAowMDAwMTQ5Mjk3IDAwMDAwIG4gCjAwMDAxNDk2NzUgMDAwMDAgbiAKMDAwMDE1MDA1MiAwMDAwMCBuIAowMDAwMTUwNDMwIDAwMDAwIG4gCjAwMDAxNTA4MDggMDAwMDAgbiAKMDAwMDE1MTE4NiAwMDAwMCBuIAowMDAwMTUxNTY0IDAwMDAwIG4gCjAwMDAxNTE5NDEgMDAwMDAgbiAKMDAwMDE1MjMxOSAwMDAwMCBuIAowMDAwMTUyNjk3IDAwMDAwIG4gCjAwMDAxNTMwNzUgMDAwMDAgbiAKMDAwMDE1MzQ1MyAwMDAwMCBuIAowMDAwMTUzODMwIDAwMDAwIG4gCjAwMDAxNTQyMDggMDAwMDAgbiAKMDAwMDE1NDU4NiAwMDAwMCBuIAowMDAwMTU0OTY0IDAwMDAwIG4gCjAwMDAxNTUzNDIgMDAwMDAgbiAKMDAwMDE1NTcyMCAwMDAwMCBuIAowMDAwMTU2MDk4IDAwMDAwIG4gCjAwMDAxNTY0NzYgMDAwMDAgbiAKMDAwMDE1Njg1NCAwMDAwMCBuIAowMDAwMTU3MjMyIDAwMDAwIG4gCjAwMDAxNTc2MTAgMDAwMDAgbiAKMDAwMDE1Nzk4OCAwMDAwMCBuIAowMDAwMTU4MzY2IDAwMDAwIG4gCjAwMDAxNTg3NDQgMDAwMDAgbiAKMDAwMDE1OTEyMiAwMDAwMCBuIAowMDAwMTU5NTAwIDAwMDAwIG4gCjAwMDAxNTk4NzggMDAwMDAgbiAKMDAwMDE2MDI1NiAwMDAwMCBuIAowMDAwMTYwNjM0IDAwMDAwIG4gCjAwMDAxNjEwMTIgMDAwMDAgbiAKMDAwMDE2MTM5MCAwMDAwMCBuIAowMDAwMTYxNzY4IDAwMDAwIG4gCjAwMDAxNjIxNDYgMDAwMDAgbiAKMDAwMDE2MjUyNCAwMDAwMCBuIAowMDAwMTYyOTAyIDAwMDAwIG4gCjAwMDAxNjMyODAgMDAwMDAgbiAKMDAwMDE2MzY1OCAwMDAwMCBuIAowMDAwMTY0MDM2IDAwMDAwIG4gCjAwMDAxNjQ0MTQgMDAwMDAgbiAKMDAwMDE2NDc5MiAwMDAwMCBuIAowMDAwMTY1MTY5IDAwMDAwIG4gCjAwMDAxNjU1NDcgMDAwMDAgbiAKMDAwMDE2NTkyNSAwMDAwMCBuIAowMDAwMTY2MzAzIDAwMDAwIG4gCjAwMDAxNjY2ODEgMDAwMDAgbiAKMDAwMDE2NzA1OCAwMDAwMCBuIAowMDAwMTY3NDM1IDAwMDAwIG4gCjAwMDAxNjc4MTMgMDAwMDAgbiAKMDAwMDE2ODE5MSAwMDAwMCBuIAowMDAwMTY4NTY5IDAwMDAwIG4gCjAwMDAxNjg5NDYgMDAwMDAgbiAKMDAwMDE2OTMyMyAwMDAwMCBuIAowMDAwMTY5NzAxIDAwMDAwIG4gCjAwMDAxNzAwNzkgMDAwMDAgbiAKMDAwMDE3MDQ1NyAwMDAwMCBuIAowMDAwMTcwODM1IDAwMDAwIG4gCjAwMDAxNzEyMTMgMDAwMDAgbiAKMDAwMDE3MTU5MSAwMDAwMCBuIAowMDAwMTcxOTY5IDAwMDAwIG4gCjAwMDAxNzIzNDcgMDAwMDAgbiAKMDAwMDE3MjcyNSAwMDAwMCBuIAowMDAwMTczMTAzIDAwMDAwIG4gCjAwMDAxNzM0ODEgMDAwMDAgbiAKMDAwMDE3Mzg1OSAwMDAwMCBuIAowMDAwMTc0MjM3IDAwMDAwIG4gCjAwMDAxNzQ2MTUgMDAwMDAgbiAKMDAwMDE3NDk5MyAwMDAwMCBuIAowMDAwMTc1MzcxIDAwMDAwIG4gCjAwMDAxNzU3NDkgMDAwMDAgbiAKMDAwMDE3NjEyNyAwMDAwMCBuIAowMDAwMTc2NTA2IDAwMDAwIG4gCjAwMDAxNzY4ODYgMDAwMDAgbiAKMDAwMDE3NzI2NiAwMDAwMCBuIAowMDAwMTc3NjQ2IDAwMDAwIG4gCjAwMDAxNzgwMjYgMDAwMDAgbiAKMDAwMDE3ODQwNiAwMDAwMCBuIAowMDAwMTc4Nzg1IDAwMDAwIG4gCjAwMDAxNzkxNjUgMDAwMDAgbiAKMDAwMDE3OTU0NSAwMDAwMCBuIAowMDAwMTc5OTI1IDAwMDAwIG4gCjAwMDAxODAzMDUgMDAwMDAgbiAKMDAwMDE4MDY4NCAwMDAwMCBuIAowMDAwMTgxMDY0IDAwMDAwIG4gCjAwMDAxODE0NDQgMDAwMDAgbiAKMDAwMDE4MTgyNCAwMDAwMCBuIAowMDAwMTgyMjA0IDAwMDAwIG4gCjAwMDAxODI1ODQgMDAwMDAgbiAKMDAwMDE4Mjk2MyAwMDAwMCBuIAowMDAwMTgzMzQzIDAwMDAwIG4gCjAwMDAxODM3MjMgMDAwMDAgbiAKMDAwMDE4NDEwMyAwMDAwMCBuIAowMDAwMTg0NDgzIDAwMDAwIG4gCjAwMDAxODQ4NjIgMDAwMDAgbiAKMDAwMDE4NTI0MSAwMDAwMCBuIAowMDAwMTg1NjIxIDAwMDAwIG4gCjAwMDAxODYwMDEgMDAwMDAgbiAKMDAwMDE4NjM4MSAwMDAwMCBuIAowMDAwMTg2NzYwIDAwMDAwIG4gCjAwMDAxODcxNDAgMDAwMDAgbiAKMDAwMDE4NzUyMCAwMDAwMCBuIAowMDAwMTg3OTAwIDAwMDAwIG4gCjAwMDAxODgyODAgMDAwMDAgbiAKMDAwMDE4ODY1OSAwMDAwMCBuIAowMDAwMTg5MDM5IDAwMDAwIG4gCjAwMDAxODk0MTkgMDAwMDAgbiAKMDAwMDE4OTc5OSAwMDAwMCBuIAowMDAwMTkwMTc5IDAwMDAwIG4gCjAwMDAxOTA1NTggMDAwMDAgbiAKMDAwMDE5MDkzOCAwMDAwMCBuIAowMDAwMTkxMzE4IDAwMDAwIG4gCjAwMDAxOTE2OTggMDAwMDAgbiAKMDAwMDE5MjA3OCAwMDAwMCBuIAowMDAwMTkyNDU3IDAwMDAwIG4gCjAwMDAxOTI4MzcgMDAwMDAgbiAKMDAwMDE5MzIxNyAwMDAwMCBuIAowMDAwMTkzNTk3IDAwMDAwIG4gCjAwMDAxOTM5NzcgMDAwMDAgbiAKMDAwMDE5NDM1NiAwMDAwMCBuIAowMDAwMTk0NzM2IDAwMDAwIG4gCjAwMDAxOTUxMTYgMDAwMDAgbiAKMDAwMDE5NTQ5NiAwMDAwMCBuIAowMDAwMTk1ODc2IDAwMDAwIG4gCjAwMDAxOTYyNTYgMDAwMDAgbiAKMDAwMDE5NjYzNiAwMDAwMCBuIAowMDAwMTk3MDE2IDAwMDAwIG4gCjAwMDAxOTczOTYgMDAwMDAgbiAKMDAwMDE5Nzc3NiAwMDAwMCBuIAowMDAwMTk4MTU2IDAwMDAwIG4gCjAwMDAxOTg1MzYgMDAwMDAgbiAKMDAwMDE5ODkxNiAwMDAwMCBuIAowMDAwMTk5Mjk2IDAwMDAwIG4gCjAwMDAxOTk2NzYgMDAwMDAgbiAKMDAwMDIwMDA1NiAwMDAwMCBuIAowMDAwMjAwNDM2IDAwMDAwIG4gCjAwMDAyMDA4MTYgMDAwMDAgbiAKMDAwMDIwMTE5NiAwMDAwMCBuIAowMDAwMjAxNTc2IDAwMDAwIG4gCjAwMDAyMDE5NTYgMDAwMDAgbiAKMDAwMDIwMjMzNiAwMDAwMCBuIAowMDAwMjAyNzE2IDAwMDAwIG4gCjAwMDAyMDMwOTYgMDAwMDAgbiAKMDAwMDIwMzQ3NiAwMDAwMCBuIAowMDAwMjAzODU2IDAwMDAwIG4gCjAwMDAyMDQyMzYgMDAwMDAgbiAKMDAwMDIwNDYxNiAwMDAwMCBuIAowMDAwMjA0OTk2IDAwMDAwIG4gCjAwMDAyMDUzNzYgMDAwMDAgbiAKMDAwMDIwNTc1NiAwMDAwMCBuIAowMDAwMjA2MTM1IDAwMDAwIG4gCjAwMDAyMDY1MTUgMDAwMDAgbiAKMDAwMDIwNjg5NSAwMDAwMCBuIAowMDAwMjA3Mjc1IDAwMDAwIG4gCjAwMDAyMDc2NTUgMDAwMDAgbiAKMDAwMDIwODAzNCAwMDAwMCBuIAowMDAwMjA4NDEzIDAwMDAwIG4gCjAwMDAyMDg3OTMgMDAwMDAgbiAKMDAwMDIwOTE3MyAwMDAwMCBuIAowMDAwMjA5NTUzIDAwMDAwIG4gCjAwMDAyMDk5MzIgMDAwMDAgbiAKMDAwMDIxMDMxMSAwMDAwMCBuIAowMDAwMjEwNjkxIDAwMDAwIG4gCjAwMDAyMTEwNzEgMDAwMDAgbiAKMDAwMDIxMTQ1MSAwMDAwMCBuIAowMDAwMjExODMxIDAwMDAwIG4gCjAwMDAyMTIyMTEgMDAwMDAgbiAKMDAwMDIxMjU5MSAwMDAwMCBuIAowMDAwMjEyOTcxIDAwMDAwIG4gCjAwMDAyMTMzNTEgMDAwMDAgbiAKMDAwMDIxMzczMSAwMDAwMCBuIAowMDAwMjE0MTExIDAwMDAwIG4gCjAwMDAyMTQ0OTEgMDAwMDAgbiAKMDAwMDIxNDg3MSAwMDAwMCBuIAowMDAwMjE1MjUxIDAwMDAwIG4gCjAwMDAyMTU2MzEgMDAwMDAgbiAKMDAwMDIxNjAxMSAwMDAwMCBuIAowMDAwMjE2MzkxIDAwMDAwIG4gCjAwMDAyMTY3NzEgMDAwMDAgbiAKMDAwMDIxNzE1MSAwMDAwMCBuIAowMDAwMjE3NTMxIDAwMDAwIG4gCjAwMDAyMTc5MDkgMDAwMDAgbiAKMDAwMDIxODI4NSAwMDAwMCBuIAowMDAwMjE4NjYyIDAwMDAwIG4gCjAwMDAyMTkwMzkgMDAwMDAgbiAKMDAwMDIxOTQxNiAwMDAwMCBuIAowMDAwMjE5NzkzIDAwMDAwIG4gCjAwMDAyMjAxNzAgMDAwMDAgbiAKMDAwMDIyMDU0NiAwMDAwMCBuIAowMDAwMjIwOTIzIDAwMDAwIG4gCjAwMDAyMjEzMDAgMDAwMDAgbiAKMDAwMDIyMTY3OCAwMDAwMCBuIAowMDAwMjIyMDU2IDAwMDAwIG4gCjAwMDAyMjI0MzMgMDAwMDAgbiAKMDAwMDIyMjgxMSAwMDAwMCBuIAowMDAwMjIzMTg5IDAwMDAwIG4gCjAwMDAyMjM1NjcgMDAwMDAgbiAKMDAwMDIyMzk0NSAwMDAwMCBuIAowMDAwMjI0MzIzIDAwMDAwIG4gCjAwMDAyMjQ3MDAgMDAwMDAgbiAKMDAwMDIyNTA3OCAwMDAwMCBuIAowMDAwMjI1NDU2IDAwMDAwIG4gCjAwMDAyMjU4MzQgMDAwMDAgbiAKMDAwMDIyNjIxMiAwMDAwMCBuIAowMDAwMjI2NTg5IDAwMDAwIG4gCjAwMDAyMjY5NjYgMDAwMDAgbiAKMDAwMDIyNzM0NCAwMDAwMCBuIAowMDAwMjI3NzIyIDAwMDAwIG4gCjAwMDAyMjgxMDAgMDAwMDAgbiAKMDAwMDIyODQ3NyAwMDAwMCBuIAowMDAwMjI4ODU0IDAwMDAwIG4gCjAwMDAyMjkyMzIgMDAwMDAgbiAKMDAwMDIyOTYxMCAwMDAwMCBuIAowMDAwMjI5OTg4IDAwMDAwIG4gCjAwMDAyMzAzNjUgMDAwMDAgbiAKMDAwMDIzMDc0MyAwMDAwMCBuIAowMDAwMjMxMTIxIDAwMDAwIG4gCjAwMDAyMzE0OTkgMDAwMDAgbiAKMDAwMDIzMTg3NyAwMDAwMCBuIAowMDAwMjMyMjU0IDAwMDAwIG4gCjAwMDAyMzI2MzIgMDAwMDAgbiAKMDAwMDIzMzAxMCAwMDAwMCBuIAowMDAwMjMzMzg4IDAwMDAwIG4gCjAwMDAyMzM3NjYgMDAwMDAgbiAKMDAwMDIzNDE0MyAwMDAwMCBuIAowMDAwMjM0NTIxIDAwMDAwIG4gCjAwMDAyMzQ4OTkgMDAwMDAgbiAKMDAwMDIzNTI3NyAwMDAwMCBuIAowMDAwMjM1NjU1IDAwMDAwIG4gCjAwMDAyMzYwMzIgMDAwMDAgbiAKMDAwMDIzNjQxMCAwMDAwMCBuIAowMDAwMjM2Nzg4IDAwMDAwIG4gCjAwMDAyMzcxNjYgMDAwMDAgbiAKMDAwMDIzNzU0NCAwMDAwMCBuIAowMDAwMjM3OTIyIDAwMDAwIG4gCjAwMDAyMzgzMDAgMDAwMDAgbiAKMDAwMDIzODY3OCAwMDAwMCBuIAowMDAwMjM5MDU2IDAwMDAwIG4gCjAwMDAyMzk0MzQgMDAwMDAgbiAKMDAwMDIzOTgxMiAwMDAwMCBuIAowMDAwMjQwMTkwIDAwMDAwIG4gCjAwMDAyNDA1NjggMDAwMDAgbiAKMDAwMDI0MDk0NiAwMDAwMCBuIAowMDAwMjQxMzI0IDAwMDAwIG4gCjAwMDAyNDE3MDIgMDAwMDAgbiAKMDAwMDI0MjA4MCAwMDAwMCBuIAowMDAwMjQyNDU4IDAwMDAwIG4gCjAwMDAyNDI4MzYgMDAwMDAgbiAKMDAwMDI0MzIxNCAwMDAwMCBuIAowMDAwMjQzNTkyIDAwMDAwIG4gCjAwMDAyNDM5NzAgMDAwMDAgbiAKMDAwMDI0NDM0OCAwMDAwMCBuIAowMDAwMjQ0NzI2IDAwMDAwIG4gCjAwMDAyNDUxMDQgMDAwMDAgbiAKMDAwMDI0NTQ4MiAwMDAwMCBuIAowMDAwMjQ1ODYwIDAwMDAwIG4gCjAwMDAyNDYyMzggMDAwMDAgbiAKMDAwMDI0NjYxNiAwMDAwMCBuIAowMDAwMjQ2OTk0IDAwMDAwIG4gCjAwMDAyNDczNzIgMDAwMDAgbiAKMDAwMDI0Nzc0OSAwMDAwMCBuIAowMDAwMjQ4MTI3IDAwMDAwIG4gCjAwMDAyNDg1MDUgMDAwMDAgbiAKMDAwMDI0ODg4MyAwMDAwMCBuIAowMDAwMjQ5MjYxIDAwMDAwIG4gCjAwMDAyNDk2MzggMDAwMDAgbiAKMDAwMDI1MDAxNSAwMDAwMCBuIAowMDAwMjUwMzkzIDAwMDAwIG4gCjAwMDAyNTA3NzEgMDAwMDAgbiAKMDAwMDI1MTE0OSAwMDAwMCBuIAowMDAwMjUxNTI2IDAwMDAwIG4gCjAwMDAyNTE5MDMgMDAwMDAgbiAKMDAwMDI1MjI4MSAwMDAwMCBuIAowMDAwMjUyNjU5IDAwMDAwIG4gCjAwMDAyNTMwMzcgMDAwMDAgbiAKMDAwMDI1MzQxNSAwMDAwMCBuIAowMDAwMjUzNzkzIDAwMDAwIG4gCjAwMDAyNTQxNzEgMDAwMDAgbiAKMDAwMDI1NDU0OSAwMDAwMCBuIAowMDAwMjU0OTI3IDAwMDAwIG4gCjAwMDAyNTUzMDUgMDAwMDAgbiAKMDAwMDI1NTY4MyAwMDAwMCBuIAowMDAwMjU2MDYxIDAwMDAwIG4gCjAwMDAyNTY0MzkgMDAwMDAgbiAKMDAwMDI1NjgxNyAwMDAwMCBuIAowMDAwMjU3MTk1IDAwMDAwIG4gCjAwMDAyNTc1NzMgMDAwMDAgbiAKMDAwMDI1Nzk1MSAwMDAwMCBuIAowMDAwMjU4MzI5IDAwMDAwIG4gCjAwMDAyNTg3MDcgMDAwMDAgbiAKMDAwMDI1OTYzOSAwMDAwMCBuIAowMDAwMjU5ODI1IDAwMDAwIG4gCjAwMDAyNjA1NDIgMDAwMDAgbiAKMDAwMDI2MDUyMCAwMDAwMCBuIAowMDAwMjg5Mzk0IDAwMDAwIG4gCjAwMDAyOTAxMzYgMDAwMDAgbiAKMDAwMDI5MDMzMSAwMDAwMCBuIAowMDAwMzAxODgyIDAwMDAwIG4gCjAwMDAzMDI1ODMgMDAwMDAgbiAKMDAwMDMwMjc4MSAwMDAwMCBuIAowMDAwMzEwNzcyIDAwMDAwIG4gCjAwMDAzMTEyNzIgMDAwMDAgbiAKMDAwMDMxMTQ2OSAwMDAwMCBuIAowMDAwMzEyMTE1IDAwMDAwIG4gCjAwMDAzMTIwOTMgMDAwMDAgbiAKMDAwMDMyODg2MyAwMDAwMCBuIAowMDAwMzI5NTU4IDAwMDAwIG4gCjAwMDAzMjk3NTAgMDAwMDAgbiAKMDAwMDM0MzM2MiAwMDAwMCBuIAowMDAwMzQzMzg2IDAwMDAwIG4gCgp0cmFpbGVyCjw8L0luZm8gOTM2IDAgUgovU2l6ZSA5MzcKL1Jvb3QgMSAwIFIKL0lEIFs8QUVFNEYxN0MxNTlBNjQ3NzkwRDdDM0FDNzg1NUM3MkQ+IDxBRUU0RjE3QzE1OUE2NDc3OTBEN0MzQUM3ODU1QzcyRD5dPj4Kc3RhcnR4cmVmCjM0MzQ1OAolJUVPRgo="},"_type":"PyPDFLoader"},"description":"Loads a PDF with pypdf and chunks at character level.","base_classes":["PyPDFLoader","BaseLoader","BasePDFLoader"]},"id":"dndnode_267","value":null},"selected":false,"positionAbsolute":{"x":45.46334416270031,"y":240.7728876843567},"dragging":false}],"edges":[{"source":"dndnode_249","sourceHandle":"CharacterTextSplitter|dndnode_249|CharacterTextSplitter|BaseDocumentTransformer|TextSplitter","target":"dndnode_252","targetHandle":"TextSplitter|documents|dndnode_252","className":"animate-pulse","id":"reactflow__edge-dndnode_249CharacterTextSplitter|dndnode_249|CharacterTextSplitter|BaseDocumentTransformer|TextSplitter-dndnode_252TextSplitter|documents|dndnode_252","selected":false},{"source":"dndnode_251","sourceHandle":"OpenAIEmbeddings|dndnode_251|OpenAIEmbeddings|Embeddings","target":"dndnode_252","targetHandle":"Embeddings|embedding|dndnode_252","className":"animate-pulse","id":"reactflow__edge-dndnode_251OpenAIEmbeddings|dndnode_251|OpenAIEmbeddings|Embeddings-dndnode_252Embeddings|embedding|dndnode_252","selected":false},{"source":"dndnode_252","sourceHandle":"Chroma|dndnode_252|Chroma|VectorStore","target":"dndnode_253","targetHandle":"VectorStore|vectorstore|dndnode_253","className":"animate-pulse","id":"reactflow__edge-dndnode_252Chroma|dndnode_252|Chroma|VectorStore-dndnode_253VectorStore|vectorstore|dndnode_253","selected":false},{"source":"dndnode_253","sourceHandle":"VectorStoreInfo|dndnode_253|VectorStoreInfo","target":"dndnode_255","targetHandle":"VectorStoreInfo|vectorstoreinfo|dndnode_255","className":"animate-pulse","id":"reactflow__edge-dndnode_253VectorStoreInfo|dndnode_253|VectorStoreInfo-dndnode_255VectorStoreInfo|vectorstoreinfo|dndnode_255","selected":false},{"source":"dndnode_254","sourceHandle":"OpenAI|dndnode_254|BaseLLM|BaseOpenAI|OpenAI|BaseLanguageModel","target":"dndnode_255","targetHandle":"BaseLanguageModel|llm|dndnode_255","className":"animate-pulse","id":"reactflow__edge-dndnode_254OpenAI|dndnode_254|BaseLLM|BaseOpenAI|OpenAI|BaseLanguageModel-dndnode_255BaseLanguageModel|llm|dndnode_255","selected":false},{"source":"dndnode_267","sourceHandle":"PyPDFLoader|dndnode_267|PyPDFLoader|BaseLoader|BasePDFLoader","target":"dndnode_249","targetHandle":"BaseLoader|documents|dndnode_249","className":"animate-pulse","id":"reactflow__edge-dndnode_267PyPDFLoader|dndnode_267|PyPDFLoader|BaseLoader|BasePDFLoader-dndnode_249BaseLoader|documents|dndnode_249","selected":false}],"viewport":{"x":15.934900620023427,"y":-3.6982963320258477,"zoom":0.5904963307147654}}}
\ No newline at end of file
diff --git a/docs/data/Series_character_chain.json b/docs/data/Series_character_chain.json
new file mode 100644
index 000000000..d8af38a4f
--- /dev/null
+++ b/docs/data/Series_character_chain.json
@@ -0,0 +1 @@
+{"description":"","name":"New Flow","id":"704dac29-2904-43c6-ac2f-f25339c0d505","data":{"nodes":[{"width":384,"height":597,"id":"dndnode_197","type":"genericNode","position":{"x":931.6201577976027,"y":388.0007437103224},"data":{"type":"OpenAI","node":{"template":{"cache":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"cache","advanced":false,"type":"bool","list":false},"verbose":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"verbose","advanced":false,"type":"bool","list":false},"callbacks":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"callbacks","advanced":false,"type":"langchain.callbacks.base.BaseCallbackHandler","list":true},"client":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"client","advanced":false,"type":"Any","list":false},"model_name":{"required":false,"placeholder":"","show":true,"multiline":false,"value":"text-davinci-003","password":false,"options":["text-davinci-003","text-davinci-002","text-curie-001","text-babbage-001","text-ada-001"],"name":"model_name","advanced":false,"type":"str","list":true},"temperature":{"required":false,"placeholder":"","show":true,"multiline":false,"value":0.7,"password":false,"name":"temperature","advanced":false,"type":"float","list":false},"max_tokens":{"required":false,"placeholder":"","show":true,"multiline":false,"value":256,"password":true,"name":"max_tokens","advanced":false,"type":"int","list":false},"top_p":{"required":false,"placeholder":"","show":false,"multiline":false,"value":1,"password":false,"name":"top_p","advanced":false,"type":"float","list":false},"frequency_penalty":{"required":false,"placeholder":"","show":false,"multiline":false,"value":0,"password":false,"name":"frequency_penalty","advanced":false,"type":"float","list":false},"presence_penalty":{"required":false,"placeholder":"","show":false,"multiline":false,"value":0,"password":false,"name":"presence_penalty","advanced":false,"type":"float","list":false},"n":{"required":false,"placeholder":"","show":false,"multiline":false,"value":1,"password":false,"name":"n","advanced":false,"type":"int","list":false},"best_of":{"required":false,"placeholder":"","show":false,"multiline":false,"value":1,"password":false,"name":"best_of","advanced":false,"type":"int","list":false},"model_kwargs":{"required":false,"placeholder":"","show":true,"multiline":false,"password":false,"name":"model_kwargs","advanced":true,"type":"code","list":false},"openai_api_key":{"required":false,"placeholder":"","show":true,"multiline":false,"value":"","password":true,"name":"openai_api_key","display_name":"OpenAI API Key","advanced":false,"type":"str","list":false},"openai_api_base":{"required":false,"placeholder":"","show":true,"multiline":false,"password":true,"name":"openai_api_base","advanced":false,"type":"str","list":false,"value":""},"openai_organization":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"openai_organization","advanced":false,"type":"str","list":false},"batch_size":{"required":false,"placeholder":"","show":false,"multiline":false,"value":20,"password":false,"name":"batch_size","advanced":false,"type":"int","list":false},"request_timeout":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"request_timeout","advanced":false,"type":"float","list":false},"logit_bias":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"logit_bias","advanced":false,"type":"code","list":false},"max_retries":{"required":false,"placeholder":"","show":false,"multiline":false,"value":6,"password":false,"name":"max_retries","advanced":false,"type":"int","list":false},"streaming":{"required":false,"placeholder":"","show":false,"multiline":false,"value":false,"password":false,"name":"streaming","advanced":false,"type":"bool","list":false},"allowed_special":{"required":false,"placeholder":"","show":false,"multiline":false,"value":[],"password":false,"name":"allowed_special","advanced":false,"type":"Literal'all'","list":true},"disallowed_special":{"required":false,"placeholder":"","show":false,"multiline":false,"value":"all","password":false,"name":"disallowed_special","advanced":false,"type":"Literal'all'","list":false},"_type":"OpenAI"},"description":"Wrapper around OpenAI large language models.","base_classes":["BaseLLM","BaseOpenAI","OpenAI","BaseLanguageModel"]},"id":"dndnode_197","value":null},"selected":false,"positionAbsolute":{"x":931.6201577976027,"y":388.0007437103224},"dragging":false},{"width":384,"height":419,"id":"dndnode_199","type":"genericNode","position":{"x":1468.4921587004076,"y":481.4720138392878},"data":{"type":"SeriesCharacterChain","node":{"template":{"character":{"required":true,"placeholder":"","show":true,"multiline":false,"password":false,"name":"character","advanced":false,"type":"str","list":false,"value":"Gandalf"},"series":{"required":true,"placeholder":"","show":true,"multiline":false,"password":false,"name":"series","advanced":false,"type":"str","list":false,"value":"The Lord of the Rings"},"llm":{"required":true,"placeholder":"","show":true,"multiline":false,"password":false,"name":"llm","advanced":false,"type":"BaseLanguageModel","list":false},"_type":"SeriesCharacterChain"},"description":"SeriesCharacterChain is a chain you can use to have a conversation with a character from a series.","base_classes":["LLMChain","BaseCustomChain","Chain","ConversationChain","SeriesCharacterChain","function"]},"id":"dndnode_199","value":null},"selected":true,"positionAbsolute":{"x":1468.4921587004076,"y":481.4720138392878},"dragging":false}],"edges":[{"source":"dndnode_197","sourceHandle":"OpenAI|dndnode_197|BaseLLM|BaseOpenAI|OpenAI|BaseLanguageModel","target":"dndnode_199","targetHandle":"BaseLanguageModel|llm|dndnode_199","className":"animate-pulse","id":"reactflow__edge-dndnode_197OpenAI|dndnode_197|BaseLLM|BaseOpenAI|OpenAI|BaseLanguageModel-dndnode_199BaseLanguageModel|llm|dndnode_199","selected":false}],"viewport":{"x":-334.0863839015408,"y":-192.31085724252193,"zoom":0.697371833175203}}}
\ No newline at end of file
diff --git a/docs/data/Serp_api.json b/docs/data/Serp_api.json
new file mode 100644
index 000000000..f0b2a5b56
--- /dev/null
+++ b/docs/data/Serp_api.json
@@ -0,0 +1 @@
+{"description":"","name":"New Flow","id":"1d7db1bf-bde5-4e0b-bd08-4fff445fa870","data":{"nodes":[{"width":384,"height":267,"id":"dndnode_242","type":"genericNode","position":{"x":2131.170891805563,"y":564.5660447519842},"data":{"type":"ZeroShotAgent","node":{"template":{"llm_chain":{"required":true,"placeholder":"","show":true,"multiline":false,"password":false,"name":"llm_chain","advanced":false,"type":"LLMChain","list":false},"output_parser":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"output_parser","advanced":false,"type":"AgentOutputParser","list":false},"allowed_tools":{"required":false,"placeholder":"","show":true,"multiline":false,"value":[],"password":false,"name":"allowed_tools","advanced":false,"type":"Tool","list":true},"_type":"ZeroShotAgent"},"description":"Agent for the MRKL chain.","base_classes":["ZeroShotAgent","BaseSingleActionAgent","Agent","function"]},"id":"dndnode_242","value":null},"selected":false,"positionAbsolute":{"x":2131.170891805563,"y":564.5660447519842},"dragging":false},{"width":384,"height":307,"id":"dndnode_243","type":"genericNode","position":{"x":1484,"y":326},"data":{"type":"LLMChain","node":{"template":{"memory":{"required":false,"placeholder":"","show":true,"multiline":false,"password":false,"name":"memory","advanced":false,"type":"BaseMemory","list":false},"callbacks":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"callbacks","advanced":false,"type":"langchain.callbacks.base.BaseCallbackHandler","list":true},"verbose":{"required":false,"placeholder":"","show":true,"multiline":false,"value":false,"password":false,"name":"verbose","advanced":true,"type":"bool","list":false},"prompt":{"required":false,"placeholder":"","show":true,"multiline":false,"password":false,"name":"prompt","advanced":false,"type":"BasePromptTemplate","list":false},"llm":{"required":true,"placeholder":"","show":true,"multiline":false,"password":false,"name":"llm","advanced":false,"type":"BaseLanguageModel","list":false},"output_key":{"required":true,"placeholder":"","show":true,"multiline":false,"value":"text","password":false,"name":"output_key","advanced":true,"type":"str","list":false},"_type":"LLMChain"},"description":"Chain to run queries against LLMs.","base_classes":["LLMChain","Chain","function"]},"id":"dndnode_243","value":null},"selected":false,"positionAbsolute":{"x":1484,"y":326},"dragging":false},{"width":384,"height":597,"id":"dndnode_244","type":"genericNode","position":{"x":754.603731488095,"y":772.8675386408706},"data":{"type":"OpenAI","node":{"template":{"cache":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"cache","advanced":false,"type":"bool","list":false},"verbose":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"verbose","advanced":false,"type":"bool","list":false},"callbacks":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"callbacks","advanced":false,"type":"langchain.callbacks.base.BaseCallbackHandler","list":true},"client":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"client","advanced":false,"type":"Any","list":false},"model_name":{"required":false,"placeholder":"","show":true,"multiline":false,"value":"text-davinci-003","password":false,"options":["text-davinci-003","text-davinci-002","text-curie-001","text-babbage-001","text-ada-001"],"name":"model_name","advanced":false,"type":"str","list":true},"temperature":{"required":false,"placeholder":"","show":true,"multiline":false,"value":0.7,"password":false,"name":"temperature","advanced":false,"type":"float","list":false},"max_tokens":{"required":false,"placeholder":"","show":true,"multiline":false,"value":256,"password":true,"name":"max_tokens","advanced":false,"type":"int","list":false},"top_p":{"required":false,"placeholder":"","show":false,"multiline":false,"value":1,"password":false,"name":"top_p","advanced":false,"type":"float","list":false},"frequency_penalty":{"required":false,"placeholder":"","show":false,"multiline":false,"value":0,"password":false,"name":"frequency_penalty","advanced":false,"type":"float","list":false},"presence_penalty":{"required":false,"placeholder":"","show":false,"multiline":false,"value":0,"password":false,"name":"presence_penalty","advanced":false,"type":"float","list":false},"n":{"required":false,"placeholder":"","show":false,"multiline":false,"value":1,"password":false,"name":"n","advanced":false,"type":"int","list":false},"best_of":{"required":false,"placeholder":"","show":false,"multiline":false,"value":1,"password":false,"name":"best_of","advanced":false,"type":"int","list":false},"model_kwargs":{"required":false,"placeholder":"","show":true,"multiline":false,"password":false,"name":"model_kwargs","advanced":true,"type":"code","list":false},"openai_api_key":{"required":false,"placeholder":"","show":true,"multiline":false,"value":"","password":true,"name":"openai_api_key","display_name":"OpenAI API Key","advanced":false,"type":"str","list":false},"openai_api_base":{"required":false,"placeholder":"","show":true,"multiline":false,"password":true,"name":"openai_api_base","advanced":false,"type":"str","list":false,"value":""},"openai_organization":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"openai_organization","advanced":false,"type":"str","list":false},"batch_size":{"required":false,"placeholder":"","show":false,"multiline":false,"value":20,"password":false,"name":"batch_size","advanced":false,"type":"int","list":false},"request_timeout":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"request_timeout","advanced":false,"type":"float","list":false},"logit_bias":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"logit_bias","advanced":false,"type":"code","list":false},"max_retries":{"required":false,"placeholder":"","show":false,"multiline":false,"value":6,"password":false,"name":"max_retries","advanced":false,"type":"int","list":false},"streaming":{"required":false,"placeholder":"","show":false,"multiline":false,"value":false,"password":false,"name":"streaming","advanced":false,"type":"bool","list":false},"allowed_special":{"required":false,"placeholder":"","show":false,"multiline":false,"value":[],"password":false,"name":"allowed_special","advanced":false,"type":"Literal'all'","list":true},"disallowed_special":{"required":false,"placeholder":"","show":false,"multiline":false,"value":"all","password":false,"name":"disallowed_special","advanced":false,"type":"Literal'all'","list":false},"_type":"OpenAI"},"description":"Wrapper around OpenAI large language models.","base_classes":["BaseLLM","BaseOpenAI","OpenAI","BaseLanguageModel"]},"id":"dndnode_244","value":null},"selected":false,"positionAbsolute":{"x":754.603731488095,"y":772.8675386408706},"dragging":false},{"width":384,"height":359,"id":"dndnode_245","type":"genericNode","position":{"x":760.6794768154778,"y":366.3764955059467},"data":{"type":"ZeroShotPrompt","node":{"template":{"prefix":{"required":false,"placeholder":"","show":true,"multiline":true,"value":"Answer the following questions as best you can. You have access to the following tools:","password":false,"name":"prefix","advanced":false,"type":"str","list":false},"suffix":{"required":true,"placeholder":"","show":true,"multiline":true,"value":"Begin!\n\nQuestion: {input}\nThought:{agent_scratchpad}","password":false,"name":"suffix","advanced":false,"type":"str","list":false},"format_instructions":{"required":false,"placeholder":"","show":false,"multiline":false,"value":"Use the following format:\n\nQuestion: the input question you must answer\nThought: you should always think about what to do\nAction: the action to take, should be one of [{tool_names}]\nAction Input: the input to the action\nObservation: the result of the action\n... (this Thought/Action/Action Input/Observation can repeat N times)\nThought: I now know the final answer\nFinal Answer: the final answer to the original input question","password":false,"name":"format_instructions","advanced":false,"type":"str","list":false},"_type":"zero_shot"},"description":"Prompt template for Zero Shot Agent.","base_classes":["BasePromptTemplate"]},"id":"dndnode_245","value":null},"selected":false,"positionAbsolute":{"x":760.6794768154778,"y":366.3764955059467},"dragging":false},{"width":384,"height":313,"id":"dndnode_246","type":"genericNode","position":{"x":1586,"y":842},"data":{"type":"Search","node":{"template":{"serpapi_api_key":{"required":false,"placeholder":"","show":true,"multiline":false,"value":"","password":true,"name":"serpapi_api_key","advanced":false,"type":"str","list":false},"aiosession":{"required":false,"placeholder":"","show":false,"multiline":false,"value":"","password":false,"name":"aiosession","advanced":false,"type":"str","list":false},"_type":"Search"},"description":"A search engine. Useful for when you need to answer questions about current events. Input should be a search query.","base_classes":["Tool"]},"id":"dndnode_246","value":null},"selected":true,"positionAbsolute":{"x":1586,"y":842},"dragging":false}],"edges":[{"source":"dndnode_245","sourceHandle":"ZeroShotPrompt|dndnode_245|BasePromptTemplate","target":"dndnode_243","targetHandle":"BasePromptTemplate|prompt|dndnode_243","className":"animate-pulse","id":"reactflow__edge-dndnode_245ZeroShotPrompt|dndnode_245|BasePromptTemplate-dndnode_243BasePromptTemplate|prompt|dndnode_243","selected":false},{"source":"dndnode_244","sourceHandle":"OpenAI|dndnode_244|BaseLLM|BaseOpenAI|OpenAI|BaseLanguageModel","target":"dndnode_243","targetHandle":"BaseLanguageModel|llm|dndnode_243","className":"animate-pulse","id":"reactflow__edge-dndnode_244OpenAI|dndnode_244|BaseLLM|BaseOpenAI|OpenAI|BaseLanguageModel-dndnode_243BaseLanguageModel|llm|dndnode_243","selected":false},{"source":"dndnode_246","sourceHandle":"Search|dndnode_246|Tool","target":"dndnode_242","targetHandle":"Tool|allowed_tools|dndnode_242","className":"animate-pulse","id":"reactflow__edge-dndnode_246Search|dndnode_246|Tool-dndnode_242Tool|allowed_tools|dndnode_242","selected":false},{"source":"dndnode_243","sourceHandle":"LLMChain|dndnode_243|LLMChain|Chain|function","target":"dndnode_242","targetHandle":"LLMChain|llm_chain|dndnode_242","className":"animate-pulse","id":"reactflow__edge-dndnode_243LLMChain|dndnode_243|LLMChain|Chain|function-dndnode_242LLMChain|llm_chain|dndnode_242","selected":false}],"viewport":{"x":-220.38408534242762,"y":-198.24138533854057,"zoom":0.6973718331752029}}}
\ No newline at end of file
diff --git a/docs/data/Time_travel_guide_chain.json b/docs/data/Time_travel_guide_chain.json
new file mode 100644
index 000000000..07ddf9f33
--- /dev/null
+++ b/docs/data/Time_travel_guide_chain.json
@@ -0,0 +1 @@
+{"description":"","name":"New Flow","id":"18f7277b-9deb-4dda-b1ef-e5c9b829fb25","data":{"nodes":[{"width":384,"height":267,"id":"dndnode_202","type":"genericNode","position":{"x":1567.5832147718147,"y":676.7921651686486},"data":{"type":"TimeTravelGuideChain","node":{"template":{"llm":{"required":true,"placeholder":"","show":true,"multiline":false,"password":false,"name":"llm","advanced":false,"type":"BaseLanguageModel","list":false},"memory":{"required":false,"placeholder":"","show":true,"multiline":false,"password":false,"name":"memory","advanced":false,"type":"BaseChatMemory","list":false},"_type":"TimeTravelGuideChain"},"description":"Time travel guide chain to be used in the flow.","base_classes":["LLMChain","BaseCustomChain","TimeTravelGuideChain","Chain","ConversationChain"]},"id":"dndnode_202","value":null},"selected":false,"positionAbsolute":{"x":1567.5832147718147,"y":676.7921651686486},"dragging":false},{"width":384,"height":313,"id":"dndnode_204","type":"genericNode","position":{"x":1089.3962685119054,"y":329.92648580358434},"data":{"type":"ConversationSummaryMemory","node":{"template":{"human_prefix":{"required":false,"placeholder":"","show":false,"multiline":false,"value":"Human","password":false,"name":"human_prefix","advanced":false,"type":"str","list":false},"ai_prefix":{"required":false,"placeholder":"","show":false,"multiline":false,"value":"AI","password":false,"name":"ai_prefix","advanced":false,"type":"str","list":false},"llm":{"required":true,"placeholder":"","show":true,"multiline":false,"password":false,"name":"llm","advanced":false,"type":"BaseLanguageModel","list":false},"prompt":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"prompt","advanced":false,"type":"BasePromptTemplate","list":false},"summary_message_cls":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"summary_message_cls","advanced":false,"type":"Type[langchain.schema.BaseMessage]","list":false},"chat_memory":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"chat_memory","advanced":false,"type":"BaseChatMessageHistory","list":false},"output_key":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"output_key","advanced":false,"type":"str","list":false},"input_key":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"input_key","advanced":false,"type":"str","list":false},"return_messages":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"return_messages","advanced":false,"type":"bool","list":false},"buffer":{"required":false,"placeholder":"","show":false,"multiline":false,"value":"","password":false,"name":"buffer","advanced":false,"type":"str","list":false},"memory_key":{"required":false,"placeholder":"","show":true,"multiline":false,"value":"history","password":false,"name":"memory_key","advanced":false,"type":"str","list":false},"_type":"ConversationSummaryMemory"},"description":"Conversation summarizer to memory.","base_classes":["SummarizerMixin","BaseChatMemory","BaseMemory","ConversationSummaryMemory"]},"id":"dndnode_204","value":null},"selected":false,"positionAbsolute":{"x":1089.3962685119054,"y":329.92648580358434},"dragging":false},{"width":384,"height":597,"id":"dndnode_205","type":"genericNode","position":{"x":561.7007372420808,"y":355.7376802678691},"data":{"type":"OpenAI","node":{"template":{"cache":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"cache","advanced":false,"type":"bool","list":false},"verbose":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"verbose","advanced":false,"type":"bool","list":false},"callbacks":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"callbacks","advanced":false,"type":"langchain.callbacks.base.BaseCallbackHandler","list":true},"client":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"client","advanced":false,"type":"Any","list":false},"model_name":{"required":false,"placeholder":"","show":true,"multiline":false,"value":"text-davinci-003","password":false,"options":["text-davinci-003","text-davinci-002","text-curie-001","text-babbage-001","text-ada-001"],"name":"model_name","advanced":false,"type":"str","list":true},"temperature":{"required":false,"placeholder":"","show":true,"multiline":false,"value":0.7,"password":false,"name":"temperature","advanced":false,"type":"float","list":false},"max_tokens":{"required":false,"placeholder":"","show":true,"multiline":false,"value":256,"password":true,"name":"max_tokens","advanced":false,"type":"int","list":false},"top_p":{"required":false,"placeholder":"","show":false,"multiline":false,"value":1,"password":false,"name":"top_p","advanced":false,"type":"float","list":false},"frequency_penalty":{"required":false,"placeholder":"","show":false,"multiline":false,"value":0,"password":false,"name":"frequency_penalty","advanced":false,"type":"float","list":false},"presence_penalty":{"required":false,"placeholder":"","show":false,"multiline":false,"value":0,"password":false,"name":"presence_penalty","advanced":false,"type":"float","list":false},"n":{"required":false,"placeholder":"","show":false,"multiline":false,"value":1,"password":false,"name":"n","advanced":false,"type":"int","list":false},"best_of":{"required":false,"placeholder":"","show":false,"multiline":false,"value":1,"password":false,"name":"best_of","advanced":false,"type":"int","list":false},"model_kwargs":{"required":false,"placeholder":"","show":true,"multiline":false,"password":false,"name":"model_kwargs","advanced":true,"type":"code","list":false},"openai_api_key":{"required":false,"placeholder":"","show":true,"multiline":false,"value":"","password":true,"name":"openai_api_key","display_name":"OpenAI API Key","advanced":false,"type":"str","list":false},"openai_api_base":{"required":false,"placeholder":"","show":true,"multiline":false,"password":true,"name":"openai_api_base","advanced":false,"type":"str","list":false,"value":""},"openai_organization":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"openai_organization","advanced":false,"type":"str","list":false},"batch_size":{"required":false,"placeholder":"","show":false,"multiline":false,"value":20,"password":false,"name":"batch_size","advanced":false,"type":"int","list":false},"request_timeout":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"request_timeout","advanced":false,"type":"float","list":false},"logit_bias":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"logit_bias","advanced":false,"type":"code","list":false},"max_retries":{"required":false,"placeholder":"","show":false,"multiline":false,"value":6,"password":false,"name":"max_retries","advanced":false,"type":"int","list":false},"streaming":{"required":false,"placeholder":"","show":false,"multiline":false,"value":false,"password":false,"name":"streaming","advanced":false,"type":"bool","list":false},"allowed_special":{"required":false,"placeholder":"","show":false,"multiline":false,"value":[],"password":false,"name":"allowed_special","advanced":false,"type":"Literal'all'","list":true},"disallowed_special":{"required":false,"placeholder":"","show":false,"multiline":false,"value":"all","password":false,"name":"disallowed_special","advanced":false,"type":"Literal'all'","list":false},"_type":"OpenAI"},"description":"Wrapper around OpenAI large language models.","base_classes":["BaseLLM","BaseOpenAI","OpenAI","BaseLanguageModel"]},"id":"dndnode_205","value":null},"selected":false,"positionAbsolute":{"x":561.7007372420808,"y":355.7376802678691},"dragging":false}],"edges":[{"source":"dndnode_205","sourceHandle":"OpenAI|dndnode_205|BaseLLM|BaseOpenAI|OpenAI|BaseLanguageModel","target":"dndnode_204","targetHandle":"BaseLanguageModel|llm|dndnode_204","className":"animate-pulse","id":"reactflow__edge-dndnode_205OpenAI|dndnode_205|BaseLLM|BaseOpenAI|OpenAI|BaseLanguageModel-dndnode_204BaseLanguageModel|llm|dndnode_204","selected":false},{"source":"dndnode_204","sourceHandle":"ConversationSummaryMemory|dndnode_204|SummarizerMixin|BaseChatMemory|BaseMemory|ConversationSummaryMemory","target":"dndnode_202","targetHandle":"BaseChatMemory|memory|dndnode_202","className":"animate-pulse","id":"reactflow__edge-dndnode_204ConversationSummaryMemory|dndnode_204|SummarizerMixin|BaseChatMemory|BaseMemory|ConversationSummaryMemory-dndnode_202BaseChatMemory|memory|dndnode_202","selected":false},{"source":"dndnode_205","sourceHandle":"OpenAI|dndnode_205|BaseLLM|BaseOpenAI|OpenAI|BaseLanguageModel","target":"dndnode_202","targetHandle":"BaseLanguageModel|llm|dndnode_202","className":"animate-pulse","id":"reactflow__edge-dndnode_205OpenAI|dndnode_205|BaseLLM|BaseOpenAI|OpenAI|BaseLanguageModel-dndnode_202BaseLanguageModel|llm|dndnode_202","selected":false}],"viewport":{"x":-215.71427282637273,"y":-82.0814382178981,"zoom":0.6973718331752029}}}
\ No newline at end of file
diff --git a/docs/data/Tool_pal_math.json b/docs/data/Tool_pal_math.json
new file mode 100644
index 000000000..2f6cb69fe
--- /dev/null
+++ b/docs/data/Tool_pal_math.json
@@ -0,0 +1 @@
+{"description":"","name":"New Flow","id":"a78febc5-498e-40eb-b228-922bf9c58e51","data":{"nodes":[{"width":384,"height":359,"id":"dndnode_235","type":"genericNode","position":{"x":310.07611718254395,"y":264.41529780754104},"data":{"type":"ZeroShotPrompt","node":{"template":{"prefix":{"required":false,"placeholder":"","show":true,"multiline":true,"value":"Answer the following questions as best you can. You have access to the following tools:","password":false,"name":"prefix","advanced":false,"type":"str","list":false},"suffix":{"required":true,"placeholder":"","show":true,"multiline":true,"value":"Begin!\n\nQuestion: {input}\nThought:{agent_scratchpad}","password":false,"name":"suffix","advanced":false,"type":"str","list":false},"format_instructions":{"required":false,"placeholder":"","show":false,"multiline":false,"value":"Use the following format:\n\nQuestion: the input question you must answer\nThought: you should always think about what to do\nAction: the action to take, should be one of [{tool_names}]\nAction Input: the input to the action\nObservation: the result of the action\n... (this Thought/Action/Action Input/Observation can repeat N times)\nThought: I now know the final answer\nFinal Answer: the final answer to the original input question","password":false,"name":"format_instructions","advanced":false,"type":"str","list":false},"_type":"zero_shot"},"description":"Prompt template for Zero Shot Agent.","base_classes":["BasePromptTemplate"]},"id":"dndnode_235","value":null},"selected":false,"positionAbsolute":{"x":310.07611718254395,"y":264.41529780754104},"dragging":false},{"width":384,"height":597,"id":"dndnode_236","type":"genericNode","position":{"x":296.68594225840127,"y":652.7786022737267},"data":{"type":"OpenAI","node":{"template":{"cache":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"cache","advanced":false,"type":"bool","list":false},"verbose":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"verbose","advanced":false,"type":"bool","list":false},"callbacks":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"callbacks","advanced":false,"type":"langchain.callbacks.base.BaseCallbackHandler","list":true},"client":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"client","advanced":false,"type":"Any","list":false},"model_name":{"required":false,"placeholder":"","show":true,"multiline":false,"value":"text-davinci-003","password":false,"options":["text-davinci-003","text-davinci-002","text-curie-001","text-babbage-001","text-ada-001"],"name":"model_name","advanced":false,"type":"str","list":true},"temperature":{"required":false,"placeholder":"","show":true,"multiline":false,"value":0.7,"password":false,"name":"temperature","advanced":false,"type":"float","list":false},"max_tokens":{"required":false,"placeholder":"","show":true,"multiline":false,"value":256,"password":true,"name":"max_tokens","advanced":false,"type":"int","list":false},"top_p":{"required":false,"placeholder":"","show":false,"multiline":false,"value":1,"password":false,"name":"top_p","advanced":false,"type":"float","list":false},"frequency_penalty":{"required":false,"placeholder":"","show":false,"multiline":false,"value":0,"password":false,"name":"frequency_penalty","advanced":false,"type":"float","list":false},"presence_penalty":{"required":false,"placeholder":"","show":false,"multiline":false,"value":0,"password":false,"name":"presence_penalty","advanced":false,"type":"float","list":false},"n":{"required":false,"placeholder":"","show":false,"multiline":false,"value":1,"password":false,"name":"n","advanced":false,"type":"int","list":false},"best_of":{"required":false,"placeholder":"","show":false,"multiline":false,"value":1,"password":false,"name":"best_of","advanced":false,"type":"int","list":false},"model_kwargs":{"required":false,"placeholder":"","show":true,"multiline":false,"password":false,"name":"model_kwargs","advanced":true,"type":"code","list":false},"openai_api_key":{"required":false,"placeholder":"","show":true,"multiline":false,"value":"","password":true,"name":"openai_api_key","display_name":"OpenAI API Key","advanced":false,"type":"str","list":false},"openai_api_base":{"required":false,"placeholder":"","show":true,"multiline":false,"password":true,"name":"openai_api_base","advanced":false,"type":"str","list":false,"value":""},"openai_organization":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"openai_organization","advanced":false,"type":"str","list":false},"batch_size":{"required":false,"placeholder":"","show":false,"multiline":false,"value":20,"password":false,"name":"batch_size","advanced":false,"type":"int","list":false},"request_timeout":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"request_timeout","advanced":false,"type":"float","list":false},"logit_bias":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"logit_bias","advanced":false,"type":"code","list":false},"max_retries":{"required":false,"placeholder":"","show":false,"multiline":false,"value":6,"password":false,"name":"max_retries","advanced":false,"type":"int","list":false},"streaming":{"required":false,"placeholder":"","show":false,"multiline":false,"value":false,"password":false,"name":"streaming","advanced":false,"type":"bool","list":false},"allowed_special":{"required":false,"placeholder":"","show":false,"multiline":false,"value":[],"password":false,"name":"allowed_special","advanced":false,"type":"Literal'all'","list":true},"disallowed_special":{"required":false,"placeholder":"","show":false,"multiline":false,"value":"all","password":false,"name":"disallowed_special","advanced":false,"type":"Literal'all'","list":false},"_type":"OpenAI"},"description":"Wrapper around OpenAI large language models.","base_classes":["BaseLLM","BaseOpenAI","OpenAI","BaseLanguageModel"]},"id":"dndnode_236","value":null},"selected":true,"positionAbsolute":{"x":296.68594225840127,"y":652.7786022737267},"dragging":false},{"width":384,"height":307,"id":"dndnode_237","type":"genericNode","position":{"x":967.7769983298081,"y":424.77971783921026},"data":{"type":"LLMChain","node":{"template":{"memory":{"required":false,"placeholder":"","show":true,"multiline":false,"password":false,"name":"memory","advanced":false,"type":"BaseMemory","list":false},"callbacks":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"callbacks","advanced":false,"type":"langchain.callbacks.base.BaseCallbackHandler","list":true},"verbose":{"required":false,"placeholder":"","show":true,"multiline":false,"value":false,"password":false,"name":"verbose","advanced":true,"type":"bool","list":false},"prompt":{"required":false,"placeholder":"","show":true,"multiline":false,"password":false,"name":"prompt","advanced":false,"type":"BasePromptTemplate","list":false},"llm":{"required":true,"placeholder":"","show":true,"multiline":false,"password":false,"name":"llm","advanced":false,"type":"BaseLanguageModel","list":false},"output_key":{"required":true,"placeholder":"","show":true,"multiline":false,"value":"text","password":false,"name":"output_key","advanced":true,"type":"str","list":false},"_type":"LLMChain"},"description":"Chain to run queries against LLMs.","base_classes":["LLMChain","Chain","function"]},"id":"dndnode_237","value":null},"selected":false,"positionAbsolute":{"x":967.7769983298081,"y":424.77971783921026},"dragging":false},{"width":384,"height":267,"id":"dndnode_238","type":"genericNode","position":{"x":963.4751325857608,"y":816.249500547531},"data":{"type":"PAL-MATH","node":{"template":{"llm":{"required":true,"placeholder":"","show":true,"multiline":false,"password":false,"name":"llm","advanced":false,"type":"BaseLanguageModel","list":false},"_type":"PAL-MATH"},"description":"A language model that is really good at solving complex word math problems. Input should be a fully worded hard word math problem.","base_classes":["Tool"]},"id":"dndnode_238","value":null},"selected":false,"positionAbsolute":{"x":963.4751325857608,"y":816.249500547531},"dragging":false},{"width":384,"height":267,"id":"dndnode_239","type":"genericNode","position":{"x":1565.7363367524079,"y":523.7226299523023},"data":{"type":"ZeroShotAgent","node":{"template":{"llm_chain":{"required":true,"placeholder":"","show":true,"multiline":false,"password":false,"name":"llm_chain","advanced":false,"type":"LLMChain","list":false},"output_parser":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"output_parser","advanced":false,"type":"AgentOutputParser","list":false},"allowed_tools":{"required":false,"placeholder":"","show":true,"multiline":false,"value":[],"password":false,"name":"allowed_tools","advanced":false,"type":"Tool","list":true},"_type":"ZeroShotAgent"},"description":"Agent for the MRKL chain.","base_classes":["ZeroShotAgent","BaseSingleActionAgent","Agent","function"]},"id":"dndnode_239","value":null},"selected":false,"positionAbsolute":{"x":1565.7363367524079,"y":523.7226299523023},"dragging":false}],"edges":[{"source":"dndnode_236","sourceHandle":"OpenAI|dndnode_236|BaseLLM|BaseOpenAI|OpenAI|BaseLanguageModel","target":"dndnode_238","targetHandle":"BaseLanguageModel|llm|dndnode_238","className":"animate-pulse","id":"reactflow__edge-dndnode_236OpenAI|dndnode_236|BaseLLM|BaseOpenAI|OpenAI|BaseLanguageModel-dndnode_238BaseLanguageModel|llm|dndnode_238","selected":false},{"source":"dndnode_235","sourceHandle":"ZeroShotPrompt|dndnode_235|BasePromptTemplate","target":"dndnode_237","targetHandle":"BasePromptTemplate|prompt|dndnode_237","className":"animate-pulse","id":"reactflow__edge-dndnode_235ZeroShotPrompt|dndnode_235|BasePromptTemplate-dndnode_237BasePromptTemplate|prompt|dndnode_237","selected":false},{"source":"dndnode_236","sourceHandle":"OpenAI|dndnode_236|BaseLLM|BaseOpenAI|OpenAI|BaseLanguageModel","target":"dndnode_237","targetHandle":"BaseLanguageModel|llm|dndnode_237","className":"animate-pulse","id":"reactflow__edge-dndnode_236OpenAI|dndnode_236|BaseLLM|BaseOpenAI|OpenAI|BaseLanguageModel-dndnode_237BaseLanguageModel|llm|dndnode_237","selected":false},{"source":"dndnode_237","sourceHandle":"LLMChain|dndnode_237|LLMChain|Chain|function","target":"dndnode_239","targetHandle":"LLMChain|llm_chain|dndnode_239","className":"animate-pulse","id":"reactflow__edge-dndnode_237LLMChain|dndnode_237|LLMChain|Chain|function-dndnode_239LLMChain|llm_chain|dndnode_239","selected":false},{"source":"dndnode_238","sourceHandle":"PAL-MATH|dndnode_238|Tool","target":"dndnode_239","targetHandle":"Tool|allowed_tools|dndnode_239","className":"animate-pulse","id":"reactflow__edge-dndnode_238PAL-MATH|dndnode_238|Tool-dndnode_239Tool|allowed_tools|dndnode_239","selected":false}],"viewport":{"x":-128.90041943005372,"y":-119.22941052517558,"zoom":0.697371833175203}}}
\ No newline at end of file
diff --git a/docs/data/Vectorstore_agent.json b/docs/data/Vectorstore_agent.json
new file mode 100644
index 000000000..344fc5325
--- /dev/null
+++ b/docs/data/Vectorstore_agent.json
@@ -0,0 +1 @@
+{"description":"","name":"New Flow","id":"b81bba63-2251-479e-87ac-4e7c92014907","data":{"nodes":[{"width":384,"height":293,"id":"dndnode_206","type":"genericNode","position":{"x":67.20895039683455,"y":227.92499838293958},"data":{"type":"WebBaseLoader","node":{"template":{"web_path":{"required":true,"placeholder":"","show":true,"multiline":false,"value":"https://beta.ruff.rs/docs/faq/","password":false,"name":"web_path","advanced":false,"type":"str","list":false},"_type":"WebBaseLoader"},"description":"Loader that uses urllib and beautiful soup to load webpages.","base_classes":["WebBaseLoader","BaseLoader"]},"id":"dndnode_206","value":null},"selected":false,"positionAbsolute":{"x":67.20895039683455,"y":227.92499838293958},"dragging":false},{"width":384,"height":489,"id":"dndnode_207","type":"genericNode","position":{"x":587.4697827083206,"y":140.756337708344},"data":{"type":"CharacterTextSplitter","node":{"template":{"documents":{"required":true,"placeholder":"","show":true,"multiline":false,"password":false,"name":"documents","advanced":false,"type":"BaseLoader","list":false},"separator":{"required":true,"placeholder":"","show":true,"multiline":false,"value":".","password":false,"name":"separator","advanced":false,"type":"str","list":false},"chunk_size":{"required":true,"placeholder":"","show":true,"multiline":false,"value":"2000","password":false,"name":"chunk_size","advanced":false,"type":"int","list":false},"chunk_overlap":{"required":true,"placeholder":"","show":true,"multiline":false,"value":200,"password":false,"name":"chunk_overlap","advanced":false,"type":"int","list":false},"_type":"CharacterTextSplitter"},"description":"Implementation of splitting text that looks at characters.","base_classes":["CharacterTextSplitter","BaseDocumentTransformer","TextSplitter"]},"id":"dndnode_207","value":null},"selected":true,"positionAbsolute":{"x":587.4697827083206,"y":140.756337708344},"dragging":false},{"width":384,"height":531,"id":"dndnode_208","type":"genericNode","position":{"x":583.7339617162575,"y":660.3764955059467},"data":{"type":"OpenAIEmbeddings","node":{"template":{"client":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"client","advanced":false,"type":"Any","list":false},"model":{"required":false,"placeholder":"","show":false,"multiline":false,"value":"text-embedding-ada-002","password":false,"name":"model","advanced":false,"type":"str","list":false},"deployment":{"required":false,"placeholder":"","show":false,"multiline":false,"value":"text-embedding-ada-002","password":false,"name":"deployment","advanced":false,"type":"str","list":false},"openai_api_version":{"required":false,"placeholder":"","show":true,"multiline":false,"value":"","password":true,"name":"openai_api_version","advanced":false,"type":"str","list":false},"openai_api_base":{"required":false,"placeholder":"","show":true,"multiline":false,"password":true,"name":"openai_api_base","advanced":false,"type":"str","list":false,"value":""},"openai_api_type":{"required":false,"placeholder":"","show":true,"multiline":false,"password":true,"name":"openai_api_type","advanced":false,"type":"str","list":false,"value":""},"embedding_ctx_length":{"required":false,"placeholder":"","show":false,"multiline":false,"value":8191,"password":false,"name":"embedding_ctx_length","advanced":false,"type":"int","list":false},"openai_api_key":{"required":false,"placeholder":"","show":true,"multiline":false,"value":"","password":true,"name":"openai_api_key","display_name":"OpenAI API Key","advanced":false,"type":"str","list":false},"openai_organization":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"openai_organization","advanced":false,"type":"str","list":false},"allowed_special":{"required":false,"placeholder":"","show":false,"multiline":false,"value":[],"password":false,"name":"allowed_special","advanced":false,"type":"Literal'all'","list":true},"disallowed_special":{"required":false,"placeholder":"","show":false,"multiline":false,"value":"all","password":false,"name":"disallowed_special","advanced":false,"type":"Literal'all'","list":true},"chunk_size":{"required":false,"placeholder":"","show":false,"multiline":false,"value":1000,"password":false,"name":"chunk_size","advanced":false,"type":"int","list":false},"max_retries":{"required":false,"placeholder":"","show":false,"multiline":false,"value":6,"password":false,"name":"max_retries","advanced":false,"type":"int","list":false},"_type":"OpenAIEmbeddings"},"description":"Wrapper around OpenAI embedding models.","base_classes":["OpenAIEmbeddings","Embeddings"]},"id":"dndnode_208","value":null},"selected":false,"positionAbsolute":{"x":583.7339617162575,"y":660.3764955059467},"dragging":false},{"width":384,"height":267,"id":"dndnode_209","type":"genericNode","position":{"x":1159.542181339253,"y":333.43469895833823},"data":{"type":"Chroma","node":{"template":{"documents":{"required":true,"placeholder":"","show":true,"multiline":false,"password":false,"name":"documents","advanced":false,"type":"TextSplitter","list":false},"embedding":{"required":true,"placeholder":"","show":true,"multiline":false,"password":false,"name":"embedding","advanced":false,"type":"Embeddings","list":false},"_type":"Chroma"},"description":"Wrapper around ChromaDB embeddings platform.","base_classes":["Chroma","VectorStore"]},"id":"dndnode_209","value":null},"selected":false,"positionAbsolute":{"x":1159.542181339253,"y":333.43469895833823},"dragging":false},{"width":384,"height":399,"id":"dndnode_210","type":"genericNode","position":{"x":1771.358581775794,"y":295.3190357638778},"data":{"type":"VectorStoreInfo","node":{"template":{"vectorstore":{"required":true,"placeholder":"","show":true,"multiline":false,"password":false,"name":"vectorstore","advanced":false,"type":"VectorStore","list":false},"name":{"required":true,"placeholder":"","show":true,"multiline":false,"password":false,"name":"name","advanced":false,"type":"str","list":false,"value":"ruff"},"description":{"required":true,"placeholder":"","show":true,"multiline":true,"password":false,"name":"description","advanced":false,"type":"str","list":false,"value":"Information about the Ruff python linting library"},"_type":"VectorStoreInfo"},"description":"Information about a vectorstore.","base_classes":["VectorStoreInfo"]},"id":"dndnode_210","value":null},"selected":false,"positionAbsolute":{"x":1771.358581775794,"y":295.3190357638778},"dragging":false},{"width":384,"height":597,"id":"dndnode_211","type":"genericNode","position":{"x":1745.358581775794,"y":801.3190357638778},"data":{"type":"OpenAI","node":{"template":{"cache":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"cache","advanced":false,"type":"bool","list":false},"verbose":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"verbose","advanced":false,"type":"bool","list":false},"callbacks":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"callbacks","advanced":false,"type":"langchain.callbacks.base.BaseCallbackHandler","list":true},"client":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"client","advanced":false,"type":"Any","list":false},"model_name":{"required":false,"placeholder":"","show":true,"multiline":false,"value":"text-davinci-003","password":false,"options":["text-davinci-003","text-davinci-002","text-curie-001","text-babbage-001","text-ada-001"],"name":"model_name","advanced":false,"type":"str","list":true},"temperature":{"required":false,"placeholder":"","show":true,"multiline":false,"value":0.7,"password":false,"name":"temperature","advanced":false,"type":"float","list":false},"max_tokens":{"required":false,"placeholder":"","show":true,"multiline":false,"value":256,"password":true,"name":"max_tokens","advanced":false,"type":"int","list":false},"top_p":{"required":false,"placeholder":"","show":false,"multiline":false,"value":1,"password":false,"name":"top_p","advanced":false,"type":"float","list":false},"frequency_penalty":{"required":false,"placeholder":"","show":false,"multiline":false,"value":0,"password":false,"name":"frequency_penalty","advanced":false,"type":"float","list":false},"presence_penalty":{"required":false,"placeholder":"","show":false,"multiline":false,"value":0,"password":false,"name":"presence_penalty","advanced":false,"type":"float","list":false},"n":{"required":false,"placeholder":"","show":false,"multiline":false,"value":1,"password":false,"name":"n","advanced":false,"type":"int","list":false},"best_of":{"required":false,"placeholder":"","show":false,"multiline":false,"value":1,"password":false,"name":"best_of","advanced":false,"type":"int","list":false},"model_kwargs":{"required":false,"placeholder":"","show":true,"multiline":false,"password":false,"name":"model_kwargs","advanced":true,"type":"code","list":false},"openai_api_key":{"required":false,"placeholder":"","show":true,"multiline":false,"value":"","password":true,"name":"openai_api_key","display_name":"OpenAI API Key","advanced":false,"type":"str","list":false},"openai_api_base":{"required":false,"placeholder":"","show":true,"multiline":false,"password":true,"name":"openai_api_base","advanced":false,"type":"str","list":false,"value":""},"openai_organization":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"openai_organization","advanced":false,"type":"str","list":false},"batch_size":{"required":false,"placeholder":"","show":false,"multiline":false,"value":20,"password":false,"name":"batch_size","advanced":false,"type":"int","list":false},"request_timeout":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"request_timeout","advanced":false,"type":"float","list":false},"logit_bias":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"logit_bias","advanced":false,"type":"code","list":false},"max_retries":{"required":false,"placeholder":"","show":false,"multiline":false,"value":6,"password":false,"name":"max_retries","advanced":false,"type":"int","list":false},"streaming":{"required":false,"placeholder":"","show":false,"multiline":false,"value":false,"password":false,"name":"streaming","advanced":false,"type":"bool","list":false},"allowed_special":{"required":false,"placeholder":"","show":false,"multiline":false,"value":[],"password":false,"name":"allowed_special","advanced":false,"type":"Literal'all'","list":true},"disallowed_special":{"required":false,"placeholder":"","show":false,"multiline":false,"value":"all","password":false,"name":"disallowed_special","advanced":false,"type":"Literal'all'","list":false},"_type":"OpenAI"},"description":"Wrapper around OpenAI large language models.","base_classes":["BaseLLM","BaseOpenAI","OpenAI","BaseLanguageModel"]},"id":"dndnode_211","value":null},"selected":false,"positionAbsolute":{"x":1745.358581775794,"y":801.3190357638778},"dragging":false},{"width":384,"height":267,"id":"dndnode_212","type":"genericNode","position":{"x":2305.358581775794,"y":425.31903576387776},"data":{"type":"VectorStoreAgent","node":{"template":{"vectorstoreinfo":{"required":true,"placeholder":"","show":true,"multiline":false,"password":false,"name":"vectorstoreinfo","display_name":"Vector Store Info","advanced":false,"type":"VectorStoreInfo","list":false},"llm":{"required":true,"placeholder":"","show":true,"multiline":false,"password":false,"name":"llm","display_name":"LLM","advanced":false,"type":"BaseLanguageModel","list":false},"_type":"vectorstore_agent"},"description":"Construct an agent from a Vector Store.","base_classes":["AgentExecutor"]},"id":"dndnode_212","value":null},"selected":false,"positionAbsolute":{"x":2305.358581775794,"y":425.31903576387776},"dragging":false}],"edges":[{"source":"dndnode_206","sourceHandle":"WebBaseLoader|dndnode_206|WebBaseLoader|BaseLoader","target":"dndnode_207","targetHandle":"BaseLoader|documents|dndnode_207","className":"animate-pulse","id":"reactflow__edge-dndnode_206WebBaseLoader|dndnode_206|WebBaseLoader|BaseLoader-dndnode_207BaseLoader|documents|dndnode_207","selected":false},{"source":"dndnode_207","sourceHandle":"CharacterTextSplitter|dndnode_207|CharacterTextSplitter|BaseDocumentTransformer|TextSplitter","target":"dndnode_209","targetHandle":"TextSplitter|documents|dndnode_209","className":"animate-pulse","id":"reactflow__edge-dndnode_207CharacterTextSplitter|dndnode_207|CharacterTextSplitter|BaseDocumentTransformer|TextSplitter-dndnode_209TextSplitter|documents|dndnode_209","selected":false},{"source":"dndnode_208","sourceHandle":"OpenAIEmbeddings|dndnode_208|OpenAIEmbeddings|Embeddings","target":"dndnode_209","targetHandle":"Embeddings|embedding|dndnode_209","className":"animate-pulse","id":"reactflow__edge-dndnode_208OpenAIEmbeddings|dndnode_208|OpenAIEmbeddings|Embeddings-dndnode_209Embeddings|embedding|dndnode_209","selected":false},{"source":"dndnode_209","sourceHandle":"Chroma|dndnode_209|Chroma|VectorStore","target":"dndnode_210","targetHandle":"VectorStore|vectorstore|dndnode_210","className":"animate-pulse","id":"reactflow__edge-dndnode_209Chroma|dndnode_209|Chroma|VectorStore-dndnode_210VectorStore|vectorstore|dndnode_210","selected":false},{"source":"dndnode_210","sourceHandle":"VectorStoreInfo|dndnode_210|VectorStoreInfo","target":"dndnode_212","targetHandle":"VectorStoreInfo|vectorstoreinfo|dndnode_212","className":"animate-pulse","id":"reactflow__edge-dndnode_210VectorStoreInfo|dndnode_210|VectorStoreInfo-dndnode_212VectorStoreInfo|vectorstoreinfo|dndnode_212","selected":false},{"source":"dndnode_211","sourceHandle":"OpenAI|dndnode_211|BaseLLM|BaseOpenAI|OpenAI|BaseLanguageModel","target":"dndnode_212","targetHandle":"BaseLanguageModel|llm|dndnode_212","className":"animate-pulse","id":"reactflow__edge-dndnode_211OpenAI|dndnode_211|BaseLLM|BaseOpenAI|OpenAI|BaseLanguageModel-dndnode_212BaseLanguageModel|llm|dndnode_212","selected":false}],"viewport":{"x":115.45066272803774,"y":111.39970589300202,"zoom":0.5000000000000002}}}
\ No newline at end of file
diff --git a/docs/data/example.pdf b/docs/data/example.pdf
new file mode 100644
index 000000000..3863fd6d2
Binary files /dev/null and b/docs/data/example.pdf differ
diff --git a/docs/data/llm_chain.json b/docs/data/llm_chain.json
new file mode 100644
index 000000000..2933e7e92
--- /dev/null
+++ b/docs/data/llm_chain.json
@@ -0,0 +1 @@
+{"description":"","name":"New Flow","id":"3ec9b945-02a1-481b-9d52-2a2d67677b09","data":{"nodes":[{"width":384,"height":265,"id":"dndnode_194","type":"genericNode","position":{"x":760.2694953200939,"y":176.93739631967088},"data":{"type":"PromptTemplate","node":{"template":{"input_variables":{"required":true,"placeholder":"","show":false,"multiline":false,"password":false,"name":"input_variables","advanced":false,"type":"str","list":true},"output_parser":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"output_parser","advanced":false,"type":"BaseOutputParser","list":false},"partial_variables":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"partial_variables","advanced":false,"type":"code","list":false},"template":{"required":true,"placeholder":"","show":true,"multiline":true,"password":false,"name":"template","advanced":false,"type":"prompt","list":false,"value":"I want you to act as a naming consultant for new companies.\n\nHere are some examples of good company names:\n\n- search engine, Google\n- social media, Facebook\n- video sharing, YouTube\n\nThe name should be short, catchy, and easy to remember.\n\nWhat is a good name for a company that makes {product}?"},"template_format":{"required":false,"placeholder":"","show":false,"multiline":false,"value":"f-string","password":false,"name":"template_format","advanced":false,"type":"str","list":false},"validate_template":{"required":false,"placeholder":"","show":false,"multiline":false,"value":true,"password":false,"name":"validate_template","advanced":false,"type":"bool","list":false},"_type":"PromptTemplate"},"description":"Schema to represent a prompt for an LLM.","base_classes":["PromptTemplate","BasePromptTemplate","StringPromptTemplate"]},"id":"dndnode_194","value":null},"selected":false,"positionAbsolute":{"x":760.2694953200939,"y":176.93739631967088},"dragging":false},{"width":384,"height":597,"id":"dndnode_195","type":"genericNode","position":{"x":772.707635444933,"y":496.2580253961801},"data":{"type":"OpenAI","node":{"template":{"cache":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"cache","advanced":false,"type":"bool","list":false},"verbose":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"verbose","advanced":false,"type":"bool","list":false},"callbacks":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"callbacks","advanced":false,"type":"langchain.callbacks.base.BaseCallbackHandler","list":true},"client":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"client","advanced":false,"type":"Any","list":false},"model_name":{"required":false,"placeholder":"","show":true,"multiline":false,"value":"text-davinci-003","password":false,"options":["text-davinci-003","text-davinci-002","text-curie-001","text-babbage-001","text-ada-001"],"name":"model_name","advanced":false,"type":"str","list":true},"temperature":{"required":false,"placeholder":"","show":true,"multiline":false,"value":0.7,"password":false,"name":"temperature","advanced":false,"type":"float","list":false},"max_tokens":{"required":false,"placeholder":"","show":true,"multiline":false,"value":256,"password":true,"name":"max_tokens","advanced":false,"type":"int","list":false},"top_p":{"required":false,"placeholder":"","show":false,"multiline":false,"value":1,"password":false,"name":"top_p","advanced":false,"type":"float","list":false},"frequency_penalty":{"required":false,"placeholder":"","show":false,"multiline":false,"value":0,"password":false,"name":"frequency_penalty","advanced":false,"type":"float","list":false},"presence_penalty":{"required":false,"placeholder":"","show":false,"multiline":false,"value":0,"password":false,"name":"presence_penalty","advanced":false,"type":"float","list":false},"n":{"required":false,"placeholder":"","show":false,"multiline":false,"value":1,"password":false,"name":"n","advanced":false,"type":"int","list":false},"best_of":{"required":false,"placeholder":"","show":false,"multiline":false,"value":1,"password":false,"name":"best_of","advanced":false,"type":"int","list":false},"model_kwargs":{"required":false,"placeholder":"","show":true,"multiline":false,"password":false,"name":"model_kwargs","advanced":true,"type":"code","list":false},"openai_api_key":{"required":false,"placeholder":"","show":true,"multiline":false,"value":"","password":true,"name":"openai_api_key","display_name":"OpenAI API Key","advanced":false,"type":"str","list":false},"openai_api_base":{"required":false,"placeholder":"","show":true,"multiline":false,"password":true,"name":"openai_api_base","advanced":false,"type":"str","list":false,"value":""},"openai_organization":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"openai_organization","advanced":false,"type":"str","list":false},"batch_size":{"required":false,"placeholder":"","show":false,"multiline":false,"value":20,"password":false,"name":"batch_size","advanced":false,"type":"int","list":false},"request_timeout":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"request_timeout","advanced":false,"type":"float","list":false},"logit_bias":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"logit_bias","advanced":false,"type":"code","list":false},"max_retries":{"required":false,"placeholder":"","show":false,"multiline":false,"value":6,"password":false,"name":"max_retries","advanced":false,"type":"int","list":false},"streaming":{"required":false,"placeholder":"","show":false,"multiline":false,"value":false,"password":false,"name":"streaming","advanced":false,"type":"bool","list":false},"allowed_special":{"required":false,"placeholder":"","show":false,"multiline":false,"value":[],"password":false,"name":"allowed_special","advanced":false,"type":"Literal'all'","list":true},"disallowed_special":{"required":false,"placeholder":"","show":false,"multiline":false,"value":"all","password":false,"name":"disallowed_special","advanced":false,"type":"Literal'all'","list":false},"_type":"OpenAI"},"description":"Wrapper around OpenAI large language models.","base_classes":["BaseLLM","BaseOpenAI","OpenAI","BaseLanguageModel"]},"id":"dndnode_195","value":null},"selected":false,"positionAbsolute":{"x":772.707635444933,"y":496.2580253961801},"dragging":false},{"width":384,"height":307,"id":"dndnode_196","type":"genericNode","position":{"x":1358.0205275141518,"y":385.99468770628937},"data":{"type":"LLMChain","node":{"template":{"memory":{"required":false,"placeholder":"","show":true,"multiline":false,"password":false,"name":"memory","advanced":false,"type":"BaseMemory","list":false},"callbacks":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"callbacks","advanced":false,"type":"langchain.callbacks.base.BaseCallbackHandler","list":true},"verbose":{"required":false,"placeholder":"","show":true,"multiline":false,"value":false,"password":false,"name":"verbose","advanced":true,"type":"bool","list":false},"prompt":{"required":false,"placeholder":"","show":true,"multiline":false,"password":false,"name":"prompt","advanced":false,"type":"BasePromptTemplate","list":false},"llm":{"required":true,"placeholder":"","show":true,"multiline":false,"password":false,"name":"llm","advanced":false,"type":"BaseLanguageModel","list":false},"output_key":{"required":true,"placeholder":"","show":true,"multiline":false,"value":"text","password":false,"name":"output_key","advanced":true,"type":"str","list":false},"_type":"LLMChain"},"description":"Chain to run queries against LLMs.","base_classes":["LLMChain","Chain","function"]},"id":"dndnode_196","value":null},"selected":false,"positionAbsolute":{"x":1358.0205275141518,"y":385.99468770628937},"dragging":false}],"edges":[{"source":"dndnode_194","sourceHandle":"PromptTemplate|dndnode_194|PromptTemplate|BasePromptTemplate|StringPromptTemplate","target":"dndnode_196","targetHandle":"BasePromptTemplate|prompt|dndnode_196","className":"animate-pulse","id":"reactflow__edge-dndnode_194PromptTemplate|dndnode_194|PromptTemplate|BasePromptTemplate|StringPromptTemplate-dndnode_196BasePromptTemplate|prompt|dndnode_196","selected":false},{"source":"dndnode_195","sourceHandle":"OpenAI|dndnode_195|BaseLLM|BaseOpenAI|OpenAI|BaseLanguageModel","target":"dndnode_196","targetHandle":"BaseLanguageModel|llm|dndnode_196","className":"animate-pulse","id":"reactflow__edge-dndnode_195OpenAI|dndnode_195|BaseLLM|BaseOpenAI|OpenAI|BaseLanguageModel-dndnode_196BaseLanguageModel|llm|dndnode_196","selected":false}],"viewport":{"x":-133.04526476210015,"y":-22.181822961625073,"zoom":0.697371833175203}}}
\ No newline at end of file
diff --git a/docs/data/openapi.yaml b/docs/data/openapi.yaml
new file mode 100644
index 000000000..8962cccc7
--- /dev/null
+++ b/docs/data/openapi.yaml
@@ -0,0 +1,3650 @@
+openapi: 3.0.0
+info:
+ title: OpenAI API
+ description: APIs for sampling from and fine-tuning language models
+ version: '1.2.0'
+servers:
+ - url: https://api.openai.com/v1
+tags:
+- name: OpenAI
+ description: The OpenAI REST API
+paths:
+ /engines:
+ get:
+ operationId: listEngines
+ deprecated: true
+ tags:
+ - OpenAI
+ summary: Lists the currently available (non-finetuned) models, and provides basic information about each one such as the owner and availability.
+ responses:
+ "200":
+ description: OK
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ListEnginesResponse'
+ x-oaiMeta:
+ name: List engines
+ group: engines
+ path: list
+ examples:
+ curl: |
+ curl https://api.openai.com/v1/engines \
+ -H 'Authorization: Bearer YOUR_API_KEY'
+ python: |
+ import os
+ import openai
+ openai.api_key = os.getenv("OPENAI_API_KEY")
+ openai.Engine.list()
+ node.js: |
+ const { Configuration, OpenAIApi } = require("openai");
+ const configuration = new Configuration({
+ apiKey: process.env.OPENAI_API_KEY,
+ });
+ const openai = new OpenAIApi(configuration);
+ const response = await openai.listEngines();
+ response: |
+ {
+ "data": [
+ {
+ "id": "engine-id-0",
+ "object": "engine",
+ "owner": "organization-owner",
+ "ready": true
+ },
+ {
+ "id": "engine-id-2",
+ "object": "engine",
+ "owner": "organization-owner",
+ "ready": true
+ },
+ {
+ "id": "engine-id-3",
+ "object": "engine",
+ "owner": "openai",
+ "ready": false
+ },
+ ],
+ "object": "list"
+ }
+
+ /engines/{engine_id}:
+ get:
+ operationId: retrieveEngine
+ deprecated: true
+ tags:
+ - OpenAI
+ summary: Retrieves a model instance, providing basic information about it such as the owner and availability.
+ parameters:
+ - in: path
+ name: engine_id
+ required: true
+ schema:
+ type: string
+ # ideally this will be an actual ID, so this will always work from browser
+ example:
+ davinci
+ description: &engine_id_description >
+ The ID of the engine to use for this request
+ responses:
+ "200":
+ description: OK
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Engine'
+ x-oaiMeta:
+ name: Retrieve engine
+ group: engines
+ path: retrieve
+ examples:
+ curl: |
+ curl https://api.openai.com/v1/engines/VAR_model_id \
+ -H 'Authorization: Bearer YOUR_API_KEY'
+ python: |
+ import os
+ import openai
+ openai.api_key = os.getenv("OPENAI_API_KEY")
+ openai.Engine.retrieve("VAR_model_id")
+ node.js: |
+ const { Configuration, OpenAIApi } = require("openai");
+ const configuration = new Configuration({
+ apiKey: process.env.OPENAI_API_KEY,
+ });
+ const openai = new OpenAIApi(configuration);
+ const response = await openai.retrieveEngine("VAR_model_id");
+ response: |
+ {
+ "id": "VAR_model_id",
+ "object": "engine",
+ "owner": "openai",
+ "ready": true
+ }
+
+ /completions:
+ post:
+ operationId: createCompletion
+ tags:
+ - OpenAI
+ summary: Creates a completion for the provided prompt and parameters
+ requestBody:
+ required: true
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/CreateCompletionRequest'
+ responses:
+ "200":
+ description: OK
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/CreateCompletionResponse'
+ x-oaiMeta:
+ name: Create completion
+ group: completions
+ path: create
+ examples:
+ curl: |
+ curl https://api.openai.com/v1/completions \
+ -H 'Content-Type: application/json' \
+ -H 'Authorization: Bearer YOUR_API_KEY' \
+ -d '{
+ "model": "VAR_model_id",
+ "prompt": "Say this is a test",
+ "max_tokens": 7,
+ "temperature": 0
+ }'
+ python: |
+ import os
+ import openai
+ openai.api_key = os.getenv("OPENAI_API_KEY")
+ openai.Completion.create(
+ model="VAR_model_id",
+ prompt="Say this is a test",
+ max_tokens=7,
+ temperature=0
+ )
+ node.js: |
+ const { Configuration, OpenAIApi } = require("openai");
+ const configuration = new Configuration({
+ apiKey: process.env.OPENAI_API_KEY,
+ });
+ const openai = new OpenAIApi(configuration);
+ const response = await openai.createCompletion({
+ model: "VAR_model_id",
+ prompt: "Say this is a test",
+ max_tokens: 7,
+ temperature: 0,
+ });
+ parameters: |
+ {
+ "model": "VAR_model_id",
+ "prompt": "Say this is a test",
+ "max_tokens": 7,
+ "temperature": 0,
+ "top_p": 1,
+ "n": 1,
+ "stream": false,
+ "logprobs": null,
+ "stop": "\n"
+ }
+ response: |
+ {
+ "id": "cmpl-uqkvlQyYK7bGYrRHQ0eXlWi7",
+ "object": "text_completion",
+ "created": 1589478378,
+ "model": "VAR_model_id",
+ "choices": [
+ {
+ "text": "\n\nThis is indeed a test",
+ "index": 0,
+ "logprobs": null,
+ "finish_reason": "length"
+ }
+ ],
+ "usage": {
+ "prompt_tokens": 5,
+ "completion_tokens": 7,
+ "total_tokens": 12
+ }
+ }
+ /chat/completions:
+ post:
+ operationId: createChatCompletion
+ tags:
+ - OpenAI
+ summary: Creates a completion for the chat message
+ requestBody:
+ required: true
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/CreateChatCompletionRequest'
+ responses:
+ "200":
+ description: OK
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/CreateChatCompletionResponse'
+
+ x-oaiMeta:
+ name: Create chat completion
+ group: chat
+ path: create
+ beta: true
+ examples:
+ curl: |
+ curl https://api.openai.com/v1/chat/completions \
+ -H 'Content-Type: application/json' \
+ -H 'Authorization: Bearer YOUR_API_KEY' \
+ -d '{
+ "model": "gpt-3.5-turbo",
+ "messages": [{"role": "user", "content": "Hello!"}]
+ }'
+ python: |
+ import os
+ import openai
+ openai.api_key = os.getenv("OPENAI_API_KEY")
+
+ completion = openai.ChatCompletion.create(
+ model="gpt-3.5-turbo",
+ messages=[
+ {"role": "user", "content": "Hello!"}
+ ]
+ )
+
+ print(completion.choices[0].message)
+ node.js: |
+ const { Configuration, OpenAIApi } = require("openai");
+
+ const configuration = new Configuration({
+ apiKey: process.env.OPENAI_API_KEY,
+ });
+ const openai = new OpenAIApi(configuration);
+
+ const completion = await openai.createChatCompletion({
+ model: "gpt-3.5-turbo",
+ messages: [{role: "user", content: "Hello world"}],
+ });
+ console.log(completion.data.choices[0].message);
+ parameters: |
+ {
+ "model": "gpt-3.5-turbo",
+ "messages": [{"role": "user", "content": "Hello!"}]
+ }
+ response: |
+ {
+ "id": "chatcmpl-123",
+ "object": "chat.completion",
+ "created": 1677652288,
+ "choices": [{
+ "index": 0,
+ "message": {
+ "role": "assistant",
+ "content": "\n\nHello there, how may I assist you today?",
+ },
+ "finish_reason": "stop"
+ }],
+ "usage": {
+ "prompt_tokens": 9,
+ "completion_tokens": 12,
+ "total_tokens": 21
+ }
+ }
+
+ /edits:
+ post:
+ operationId: createEdit
+ tags:
+ - OpenAI
+ summary: Creates a new edit for the provided input, instruction, and parameters.
+ requestBody:
+ required: true
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/CreateEditRequest'
+ responses:
+ "200":
+ description: OK
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/CreateEditResponse'
+ x-oaiMeta:
+ name: Create edit
+ group: edits
+ path: create
+ examples:
+ curl: |
+ curl https://api.openai.com/v1/edits \
+ -H 'Content-Type: application/json' \
+ -H 'Authorization: Bearer YOUR_API_KEY' \
+ -d '{
+ "model": "VAR_model_id",
+ "input": "What day of the wek is it?",
+ "instruction": "Fix the spelling mistakes"
+ }'
+ python: |
+ import os
+ import openai
+ openai.api_key = os.getenv("OPENAI_API_KEY")
+ openai.Edit.create(
+ model="VAR_model_id",
+ input="What day of the wek is it?",
+ instruction="Fix the spelling mistakes"
+ )
+ node.js: |
+ const { Configuration, OpenAIApi } = require("openai");
+ const configuration = new Configuration({
+ apiKey: process.env.OPENAI_API_KEY,
+ });
+ const openai = new OpenAIApi(configuration);
+ const response = await openai.createEdit({
+ model: "VAR_model_id",
+ input: "What day of the wek is it?",
+ instruction: "Fix the spelling mistakes",
+ });
+ parameters: |
+ {
+ "model": "VAR_model_id",
+ "input": "What day of the wek is it?",
+ "instruction": "Fix the spelling mistakes",
+ }
+ response: |
+ {
+ "object": "edit",
+ "created": 1589478378,
+ "choices": [
+ {
+ "text": "What day of the week is it?",
+ "index": 0,
+ }
+ ],
+ "usage": {
+ "prompt_tokens": 25,
+ "completion_tokens": 32,
+ "total_tokens": 57
+ }
+ }
+
+ /images/generations:
+ post:
+ operationId: createImage
+ tags:
+ - OpenAI
+ summary: Creates an image given a prompt.
+ requestBody:
+ required: true
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/CreateImageRequest'
+ responses:
+ "200":
+ description: OK
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ImagesResponse'
+ x-oaiMeta:
+ name: Create image
+ group: images
+ path: create
+ beta: true
+ examples:
+ curl: |
+ curl https://api.openai.com/v1/images/generations \
+ -H 'Content-Type: application/json' \
+ -H 'Authorization: Bearer YOUR_API_KEY' \
+ -d '{
+ "prompt": "A cute baby sea otter",
+ "n": 2,
+ "size": "1024x1024"
+ }'
+ python: |
+ import os
+ import openai
+ openai.api_key = os.getenv("OPENAI_API_KEY")
+ openai.Image.create(
+ prompt="A cute baby sea otter",
+ n=2,
+ size="1024x1024"
+ )
+ node.js: |
+ const { Configuration, OpenAIApi } = require("openai");
+ const configuration = new Configuration({
+ apiKey: process.env.OPENAI_API_KEY,
+ });
+ const openai = new OpenAIApi(configuration);
+ const response = await openai.createImage({
+ prompt: "A cute baby sea otter",
+ n: 2,
+ size: "1024x1024",
+ });
+ parameters: |
+ {
+ "prompt": "A cute baby sea otter",
+ "n": 2,
+ "size": "1024x1024"
+ }
+ response: |
+ {
+ "created": 1589478378,
+ "data": [
+ {
+ "url": "https://..."
+ },
+ {
+ "url": "https://..."
+ }
+ ]
+ }
+
+ /images/edits:
+ post:
+ operationId: createImageEdit
+ tags:
+ - OpenAI
+ summary: Creates an edited or extended image given an original image and a prompt.
+ requestBody:
+ required: true
+ content:
+ multipart/form-data:
+ schema:
+ $ref: '#/components/schemas/CreateImageEditRequest'
+ responses:
+ "200":
+ description: OK
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ImagesResponse'
+ x-oaiMeta:
+ name: Create image edit
+ group: images
+ path: create-edit
+ beta: true
+ examples:
+ curl: |
+ curl https://api.openai.com/v1/images/edits \
+ -H 'Authorization: Bearer YOUR_API_KEY' \
+ -F image='@otter.png' \
+ -F mask='@mask.png' \
+ -F prompt="A cute baby sea otter wearing a beret" \
+ -F n=2 \
+ -F size="1024x1024"
+ python: |
+ import os
+ import openai
+ openai.api_key = os.getenv("OPENAI_API_KEY")
+ openai.Image.create_edit(
+ image=open("otter.png", "rb"),
+ mask=open("mask.png", "rb"),
+ prompt="A cute baby sea otter wearing a beret",
+ n=2,
+ size="1024x1024"
+ )
+ node.js: |
+ const { Configuration, OpenAIApi } = require("openai");
+ const configuration = new Configuration({
+ apiKey: process.env.OPENAI_API_KEY,
+ });
+ const openai = new OpenAIApi(configuration);
+ const response = await openai.createImageEdit(
+ fs.createReadStream("otter.png"),
+ fs.createReadStream("mask.png"),
+ "A cute baby sea otter wearing a beret",
+ 2,
+ "1024x1024"
+ );
+ response: |
+ {
+ "created": 1589478378,
+ "data": [
+ {
+ "url": "https://..."
+ },
+ {
+ "url": "https://..."
+ }
+ ]
+ }
+
+ /images/variations:
+ post:
+ operationId: createImageVariation
+ tags:
+ - OpenAI
+ summary: Creates a variation of a given image.
+ requestBody:
+ required: true
+ content:
+ multipart/form-data:
+ schema:
+ $ref: '#/components/schemas/CreateImageVariationRequest'
+ responses:
+ "200":
+ description: OK
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ImagesResponse'
+ x-oaiMeta:
+ name: Create image variation
+ group: images
+ path: create-variation
+ beta: true
+ examples:
+ curl: |
+ curl https://api.openai.com/v1/images/variations \
+ -H 'Authorization: Bearer YOUR_API_KEY' \
+ -F image='@otter.png' \
+ -F n=2 \
+ -F size="1024x1024"
+ python: |
+ import os
+ import openai
+ openai.api_key = os.getenv("OPENAI_API_KEY")
+ openai.Image.create_variation(
+ image=open("otter.png", "rb"),
+ n=2,
+ size="1024x1024"
+ )
+ node.js: |
+ const { Configuration, OpenAIApi } = require("openai");
+ const configuration = new Configuration({
+ apiKey: process.env.OPENAI_API_KEY,
+ });
+ const openai = new OpenAIApi(configuration);
+ const response = await openai.createImageVariation(
+ fs.createReadStream("otter.png"),
+ 2,
+ "1024x1024"
+ );
+ response: |
+ {
+ "created": 1589478378,
+ "data": [
+ {
+ "url": "https://..."
+ },
+ {
+ "url": "https://..."
+ }
+ ]
+ }
+
+ /embeddings:
+ post:
+ operationId: createEmbedding
+ tags:
+ - OpenAI
+ summary: Creates an embedding vector representing the input text.
+ requestBody:
+ required: true
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/CreateEmbeddingRequest'
+ responses:
+ "200":
+ description: OK
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/CreateEmbeddingResponse'
+ x-oaiMeta:
+ name: Create embeddings
+ group: embeddings
+ path: create
+ examples:
+ curl: |
+ curl https://api.openai.com/v1/embeddings \
+ -X POST \
+ -H "Authorization: Bearer YOUR_API_KEY" \
+ -H "Content-Type: application/json" \
+ -d '{"input": "The food was delicious and the waiter...",
+ "model": "text-embedding-ada-002"}'
+
+ python: |
+ import os
+ import openai
+ openai.api_key = os.getenv("OPENAI_API_KEY")
+ openai.Embedding.create(
+ model="text-embedding-ada-002",
+ input="The food was delicious and the waiter..."
+ )
+ node.js: |
+ const { Configuration, OpenAIApi } = require("openai");
+ const configuration = new Configuration({
+ apiKey: process.env.OPENAI_API_KEY,
+ });
+ const openai = new OpenAIApi(configuration);
+ const response = await openai.createEmbedding({
+ model: "text-embedding-ada-002",
+ input: "The food was delicious and the waiter...",
+ });
+ parameters: |
+ {
+ "model": "text-embedding-ada-002",
+ "input": "The food was delicious and the waiter..."
+ }
+ response: |
+ {
+ "object": "list",
+ "data": [
+ {
+ "object": "embedding",
+ "embedding": [
+ 0.0023064255,
+ -0.009327292,
+ .... (1536 floats total for ada-002)
+ -0.0028842222,
+ ],
+ "index": 0
+ }
+ ],
+ "model": "text-embedding-ada-002",
+ "usage": {
+ "prompt_tokens": 8,
+ "total_tokens": 8
+ }
+ }
+
+ /audio/transcriptions:
+ post:
+ operationId: createTranscription
+ tags:
+ - OpenAI
+ summary: Transcribes audio into the input language.
+ requestBody:
+ required: true
+ content:
+ multipart/form-data:
+ schema:
+ $ref: '#/components/schemas/CreateTranscriptionRequest'
+ responses:
+ "200":
+ description: OK
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/CreateTranscriptionResponse'
+ x-oaiMeta:
+ name: Create transcription
+ group: audio
+ path: create
+ beta: true
+ examples:
+ curl: |
+ curl https://api.openai.com/v1/audio/transcriptions \
+ -X POST \
+ -H 'Authorization: Bearer TOKEN' \
+ -H 'Content-Type: multipart/form-data' \
+ -F file=@/path/to/file/audio.mp3 \
+ -F model=whisper-1
+ python: |
+ import os
+ import openai
+ openai.api_key = os.getenv("OPENAI_API_KEY")
+ audio_file = open("audio.mp3", "rb")
+ transcript = openai.Audio.transcribe("whisper-1", audio_file)
+ node: |
+ const { Configuration, OpenAIApi } = require("openai");
+ const configuration = new Configuration({
+ apiKey: process.env.OPENAI_API_KEY,
+ });
+ const openai = new OpenAIApi(configuration);
+ const resp = await openai.createTranscription(
+ fs.createReadStream("audio.mp3"),
+ "whisper-1"
+ );
+ parameters: |
+ {
+ "file": "audio.mp3",
+ "model": "whisper-1"
+ }
+ response: |
+ {
+ "text": "Imagine the wildest idea that you've ever had, and you're curious about how it might scale to something that's a 100, a 1,000 times bigger. This is a place where you can get to do that."
+ }
+
+ /audio/translations:
+ post:
+ operationId: createTranslation
+ tags:
+ - OpenAI
+ summary: Translates audio into into English.
+ requestBody:
+ required: true
+ content:
+ multipart/form-data:
+ schema:
+ $ref: '#/components/schemas/CreateTranslationRequest'
+ responses:
+ "200":
+ description: OK
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/CreateTranslationResponse'
+ x-oaiMeta:
+ name: Create translation
+ group: audio
+ path: create
+ beta: true
+ examples:
+ curl: |
+ curl https://api.openai.com/v1/audio/translations \
+ -X POST \
+ -H 'Authorization: Bearer TOKEN' \
+ -H 'Content-Type: multipart/form-data' \
+ -F file=@/path/to/file/german.m4a \
+ -F model=whisper-1
+ python: |
+ import os
+ import openai
+ openai.api_key = os.getenv("OPENAI_API_KEY")
+ audio_file = open("german.m4a", "rb")
+ transcript = openai.Audio.translate("whisper-1", audio_file)
+ node: |
+ const { Configuration, OpenAIApi } = require("openai");
+ const configuration = new Configuration({
+ apiKey: process.env.OPENAI_API_KEY,
+ });
+ const openai = new OpenAIApi(configuration);
+ const resp = await openai.createTranslation(
+ fs.createReadStream("audio.mp3"),
+ "whisper-1"
+ );
+ parameters: |
+ {
+ "file": "german.m4a",
+ "model": "whisper-1"
+ }
+ response: |
+ {
+ "text": "Hello, my name is Wolfgang and I come from Germany. Where are you heading today?"
+ }
+
+ /engines/{engine_id}/search:
+ post:
+ operationId: createSearch
+ deprecated: true
+ tags:
+ - OpenAI
+ summary: |
+ The search endpoint computes similarity scores between provided query and documents. Documents can be passed directly to the API if there are no more than 200 of them.
+
+ To go beyond the 200 document limit, documents can be processed offline and then used for efficient retrieval at query time. When `file` is set, the search endpoint searches over all the documents in the given file and returns up to the `max_rerank` number of documents. These documents will be returned along with their search scores.
+
+ The similarity score is a positive score that usually ranges from 0 to 300 (but can sometimes go higher), where a score above 200 usually means the document is semantically similar to the query.
+ parameters:
+ - in: path
+ name: engine_id
+ required: true
+ schema:
+ type: string
+ example: davinci
+ description: The ID of the engine to use for this request. You can select one of `ada`, `babbage`, `curie`, or `davinci`.
+ requestBody:
+ required: true
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/CreateSearchRequest'
+ responses:
+ "200":
+ description: OK
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/CreateSearchResponse'
+ x-oaiMeta:
+ name: Create search
+ group: searches
+ path: create
+ examples:
+ curl: |
+ curl https://api.openai.com/v1/engines/davinci/search \
+ -H "Content-Type: application/json" \
+ -H 'Authorization: Bearer YOUR_API_KEY' \
+ -d '{
+ "documents": ["White House", "hospital", "school"],
+ "query": "the president"
+ }'
+ python: |
+ import os
+ import openai
+ openai.api_key = os.getenv("OPENAI_API_KEY")
+ openai.Engine("davinci").search(
+ documents=["White House", "hospital", "school"],
+ query="the president"
+ )
+ node.js: |
+ const { Configuration, OpenAIApi } = require("openai");
+ const configuration = new Configuration({
+ apiKey: process.env.OPENAI_API_KEY,
+ });
+ const openai = new OpenAIApi(configuration);
+ const response = await openai.createSearch("davinci", {
+ documents: ["White House", "hospital", "school"],
+ query: "the president",
+ });
+ parameters: |
+ {
+ "documents": [
+ "White House",
+ "hospital",
+ "school"
+ ],
+ "query": "the president"
+ }
+ response: |
+ {
+ "data": [
+ {
+ "document": 0,
+ "object": "search_result",
+ "score": 215.412
+ },
+ {
+ "document": 1,
+ "object": "search_result",
+ "score": 40.316
+ },
+ {
+ "document": 2,
+ "object": "search_result",
+ "score": 55.226
+ }
+ ],
+ "object": "list"
+ }
+
+ /files:
+ get:
+ operationId: listFiles
+ tags:
+ - OpenAI
+ summary: Returns a list of files that belong to the user's organization.
+ responses:
+ "200":
+ description: OK
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ListFilesResponse'
+ x-oaiMeta:
+ name: List files
+ group: files
+ path: list
+ examples:
+ curl: |
+ curl https://api.openai.com/v1/files \
+ -H 'Authorization: Bearer YOUR_API_KEY'
+ python: |
+ import os
+ import openai
+ openai.api_key = os.getenv("OPENAI_API_KEY")
+ openai.File.list()
+ node.js: |
+ const { Configuration, OpenAIApi } = require("openai");
+ const configuration = new Configuration({
+ apiKey: process.env.OPENAI_API_KEY,
+ });
+ const openai = new OpenAIApi(configuration);
+ const response = await openai.listFiles();
+ response: |
+ {
+ "data": [
+ {
+ "id": "file-ccdDZrC3iZVNiQVeEA6Z66wf",
+ "object": "file",
+ "bytes": 175,
+ "created_at": 1613677385,
+ "filename": "train.jsonl",
+ "purpose": "search"
+ },
+ {
+ "id": "file-XjGxS3KTG0uNmNOK362iJua3",
+ "object": "file",
+ "bytes": 140,
+ "created_at": 1613779121,
+ "filename": "puppy.jsonl",
+ "purpose": "search"
+ }
+ ],
+ "object": "list"
+ }
+ post:
+ operationId: createFile
+ tags:
+ - OpenAI
+ summary: |
+ Upload a file that contains document(s) to be used across various endpoints/features. Currently, the size of all the files uploaded by one organization can be up to 1 GB. Please contact us if you need to increase the storage limit.
+
+ requestBody:
+ required: true
+ content:
+ multipart/form-data:
+ schema:
+ $ref: '#/components/schemas/CreateFileRequest'
+ responses:
+ "200":
+ description: OK
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/OpenAIFile'
+ x-oaiMeta:
+ name: Upload file
+ group: files
+ path: upload
+ examples:
+ curl: |
+ curl https://api.openai.com/v1/files \
+ -H "Authorization: Bearer YOUR_API_KEY" \
+ -F purpose="fine-tune" \
+ -F file='@mydata.jsonl'
+
+ python: |
+ import os
+ import openai
+ openai.api_key = os.getenv("OPENAI_API_KEY")
+ openai.File.create(
+ file=open("mydata.jsonl", "rb"),
+ purpose='fine-tune'
+ )
+ node.js: |
+ const fs = require("fs");
+ const { Configuration, OpenAIApi } = require("openai");
+ const configuration = new Configuration({
+ apiKey: process.env.OPENAI_API_KEY,
+ });
+ const openai = new OpenAIApi(configuration);
+ const response = await openai.createFile(
+ fs.createReadStream("mydata.jsonl"),
+ "fine-tune"
+ );
+ response: |
+ {
+ "id": "file-XjGxS3KTG0uNmNOK362iJua3",
+ "object": "file",
+ "bytes": 140,
+ "created_at": 1613779121,
+ "filename": "mydata.jsonl",
+ "purpose": "fine-tune"
+ }
+
+ /files/{file_id}:
+ delete:
+ operationId: deleteFile
+ tags:
+ - OpenAI
+ summary: Delete a file.
+ parameters:
+ - in: path
+ name: file_id
+ required: true
+ schema:
+ type: string
+ description: The ID of the file to use for this request
+ responses:
+ "200":
+ description: OK
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/DeleteFileResponse'
+ x-oaiMeta:
+ name: Delete file
+ group: files
+ path: delete
+ examples:
+ curl: |
+ curl https://api.openai.com/v1/files/file-XjGxS3KTG0uNmNOK362iJua3 \
+ -X DELETE \
+ -H 'Authorization: Bearer YOUR_API_KEY'
+ python: |
+ import os
+ import openai
+ openai.api_key = os.getenv("OPENAI_API_KEY")
+ openai.File.delete("file-XjGxS3KTG0uNmNOK362iJua3")
+ node.js: |
+ const { Configuration, OpenAIApi } = require("openai");
+ const configuration = new Configuration({
+ apiKey: process.env.OPENAI_API_KEY,
+ });
+ const openai = new OpenAIApi(configuration);
+ const response = await openai.deleteFile("file-XjGxS3KTG0uNmNOK362iJua3");
+ response: |
+ {
+ "id": "file-XjGxS3KTG0uNmNOK362iJua3",
+ "object": "file",
+ "deleted": true
+ }
+ get:
+ operationId: retrieveFile
+ tags:
+ - OpenAI
+ summary: Returns information about a specific file.
+ parameters:
+ - in: path
+ name: file_id
+ required: true
+ schema:
+ type: string
+ description: The ID of the file to use for this request
+ responses:
+ "200":
+ description: OK
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/OpenAIFile'
+ x-oaiMeta:
+ name: Retrieve file
+ group: files
+ path: retrieve
+ examples:
+ curl: |
+ curl https://api.openai.com/v1/files/file-XjGxS3KTG0uNmNOK362iJua3 \
+ -H 'Authorization: Bearer YOUR_API_KEY'
+ python: |
+ import os
+ import openai
+ openai.api_key = os.getenv("OPENAI_API_KEY")
+ openai.File.retrieve("file-XjGxS3KTG0uNmNOK362iJua3")
+ node.js: |
+ const { Configuration, OpenAIApi } = require("openai");
+ const configuration = new Configuration({
+ apiKey: process.env.OPENAI_API_KEY,
+ });
+ const openai = new OpenAIApi(configuration);
+ const response = await openai.retrieveFile("file-XjGxS3KTG0uNmNOK362iJua3");
+ response: |
+ {
+ "id": "file-XjGxS3KTG0uNmNOK362iJua3",
+ "object": "file",
+ "bytes": 140,
+ "created_at": 1613779657,
+ "filename": "mydata.jsonl",
+ "purpose": "fine-tune"
+ }
+
+ /files/{file_id}/content:
+ get:
+ operationId: downloadFile
+ tags:
+ - OpenAI
+ summary: Returns the contents of the specified file
+ parameters:
+ - in: path
+ name: file_id
+ required: true
+ schema:
+ type: string
+ description: The ID of the file to use for this request
+ responses:
+ "200":
+ description: OK
+ content:
+ application/json:
+ schema:
+ type: string
+ x-oaiMeta:
+ name: Retrieve file content
+ group: files
+ path: retrieve-content
+ examples:
+ curl: |
+ curl https://api.openai.com/v1/files/file-XjGxS3KTG0uNmNOK362iJua3/content \
+ -H 'Authorization: Bearer YOUR_API_KEY' > file.jsonl
+ python: |
+ import os
+ import openai
+ openai.api_key = os.getenv("OPENAI_API_KEY")
+ content = openai.File.download("file-XjGxS3KTG0uNmNOK362iJua3")
+ node.js: |
+ const { Configuration, OpenAIApi } = require("openai");
+ const configuration = new Configuration({
+ apiKey: process.env.OPENAI_API_KEY,
+ });
+ const openai = new OpenAIApi(configuration);
+ const response = await openai.downloadFile("file-XjGxS3KTG0uNmNOK362iJua3");
+
+ /answers:
+ post:
+ operationId: createAnswer
+ deprecated: true
+ tags:
+ - OpenAI
+ summary: |
+ Answers the specified question using the provided documents and examples.
+
+ The endpoint first [searches](/docs/api-reference/searches) over provided documents or files to find relevant context. The relevant context is combined with the provided examples and question to create the prompt for [completion](/docs/api-reference/completions).
+ requestBody:
+ required: true
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/CreateAnswerRequest'
+ responses:
+ "200":
+ description: OK
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/CreateAnswerResponse'
+ x-oaiMeta:
+ name: Create answer
+ group: answers
+ path: create
+ examples:
+ curl: |
+ curl https://api.openai.com/v1/answers \
+ -X POST \
+ -H "Authorization: Bearer YOUR_API_KEY" \
+ -H 'Content-Type: application/json' \
+ -d '{
+ "documents": ["Puppy A is happy.", "Puppy B is sad."],
+ "question": "which puppy is happy?",
+ "search_model": "ada",
+ "model": "curie",
+ "examples_context": "In 2017, U.S. life expectancy was 78.6 years.",
+ "examples": [["What is human life expectancy in the United States?","78 years."]],
+ "max_tokens": 5,
+ "stop": ["\n", "<|endoftext|>"]
+ }'
+
+ python: |
+ import os
+ import openai
+ openai.api_key = os.getenv("OPENAI_API_KEY")
+ openai.Answer.create(
+ search_model="ada",
+ model="curie",
+ question="which puppy is happy?",
+ documents=["Puppy A is happy.", "Puppy B is sad."],
+ examples_context="In 2017, U.S. life expectancy was 78.6 years.",
+ examples=[["What is human life expectancy in the United States?","78 years."]],
+ max_tokens=5,
+ stop=["\n", "<|endoftext|>"],
+ )
+ node.js: |
+ const { Configuration, OpenAIApi } = require("openai");
+ const configuration = new Configuration({
+ apiKey: process.env.OPENAI_API_KEY,
+ });
+ const openai = new OpenAIApi(configuration);
+ const response = await openai.createAnswer({
+ search_model: "ada",
+ model: "curie",
+ question: "which puppy is happy?",
+ documents: ["Puppy A is happy.", "Puppy B is sad."],
+ examples_context: "In 2017, U.S. life expectancy was 78.6 years.",
+ examples: [["What is human life expectancy in the United States?","78 years."]],
+ max_tokens: 5,
+ stop: ["\n", "<|endoftext|>"],
+ });
+ parameters: |
+ {
+ "documents": ["Puppy A is happy.", "Puppy B is sad."],
+ "question": "which puppy is happy?",
+ "search_model": "ada",
+ "model": "curie",
+ "examples_context": "In 2017, U.S. life expectancy was 78.6 years.",
+ "examples": [["What is human life expectancy in the United States?","78 years."]],
+ "max_tokens": 5,
+ "stop": ["\n", "<|endoftext|>"]
+ }
+ response: |
+ {
+ "answers": [
+ "puppy A."
+ ],
+ "completion": "cmpl-2euVa1kmKUuLpSX600M41125Mo9NI",
+ "model": "curie:2020-05-03",
+ "object": "answer",
+ "search_model": "ada",
+ "selected_documents": [
+ {
+ "document": 0,
+ "text": "Puppy A is happy. "
+ },
+ {
+ "document": 1,
+ "text": "Puppy B is sad. "
+ }
+ ]
+ }
+
+ /classifications:
+ post:
+ operationId: createClassification
+ deprecated: true
+ tags:
+ - OpenAI
+ summary: |
+ Classifies the specified `query` using provided examples.
+
+ The endpoint first [searches](/docs/api-reference/searches) over the labeled examples
+ to select the ones most relevant for the particular query. Then, the relevant examples
+ are combined with the query to construct a prompt to produce the final label via the
+ [completions](/docs/api-reference/completions) endpoint.
+
+ Labeled examples can be provided via an uploaded `file`, or explicitly listed in the
+ request using the `examples` parameter for quick tests and small scale use cases.
+ requestBody:
+ required: true
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/CreateClassificationRequest'
+ responses:
+ "200":
+ description: OK
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/CreateClassificationResponse'
+ x-oaiMeta:
+ name: Create classification
+ group: classifications
+ path: create
+ examples:
+ curl: |
+ curl https://api.openai.com/v1/classifications \
+ -X POST \
+ -H "Authorization: Bearer YOUR_API_KEY" \
+ -H 'Content-Type: application/json' \
+ -d '{
+ "examples": [
+ ["A happy moment", "Positive"],
+ ["I am sad.", "Negative"],
+ ["I am feeling awesome", "Positive"]],
+ "query": "It is a raining day :(",
+ "search_model": "ada",
+ "model": "curie",
+ "labels":["Positive", "Negative", "Neutral"]
+ }'
+ python: |
+ import os
+ import openai
+ openai.api_key = os.getenv("OPENAI_API_KEY")
+ openai.Classification.create(
+ search_model="ada",
+ model="curie",
+ examples=[
+ ["A happy moment", "Positive"],
+ ["I am sad.", "Negative"],
+ ["I am feeling awesome", "Positive"]
+ ],
+ query="It is a raining day :(",
+ labels=["Positive", "Negative", "Neutral"],
+ )
+ node.js: |
+ const { Configuration, OpenAIApi } = require("openai");
+ const configuration = new Configuration({
+ apiKey: process.env.OPENAI_API_KEY,
+ });
+ const openai = new OpenAIApi(configuration);
+ const response = await openai.createClassification({
+ search_model: "ada",
+ model: "curie",
+ examples: [
+ ["A happy moment", "Positive"],
+ ["I am sad.", "Negative"],
+ ["I am feeling awesome", "Positive"]
+ ],
+ query:"It is a raining day :(",
+ labels: ["Positive", "Negative", "Neutral"],
+ });
+ parameters: |
+ {
+ "examples": [
+ ["A happy moment", "Positive"],
+ ["I am sad.", "Negative"],
+ ["I am feeling awesome", "Positive"]
+ ],
+ "labels": ["Positive", "Negative", "Neutral"],
+ "query": "It is a raining day :(",
+ "search_model": "ada",
+ "model": "curie"
+ }
+ response: |
+ {
+ "completion": "cmpl-2euN7lUVZ0d4RKbQqRV79IiiE6M1f",
+ "label": "Negative",
+ "model": "curie:2020-05-03",
+ "object": "classification",
+ "search_model": "ada",
+ "selected_examples": [
+ {
+ "document": 1,
+ "label": "Negative",
+ "text": "I am sad."
+ },
+ {
+ "document": 0,
+ "label": "Positive",
+ "text": "A happy moment"
+ },
+ {
+ "document": 2,
+ "label": "Positive",
+ "text": "I am feeling awesome"
+ }
+ ]
+ }
+
+ /fine-tunes:
+ post:
+ operationId: createFineTune
+ tags:
+ - OpenAI
+ summary: |
+ Creates a job that fine-tunes a specified model from a given dataset.
+
+ Response includes details of the enqueued job including job status and the name of the fine-tuned models once complete.
+
+ [Learn more about Fine-tuning](/docs/guides/fine-tuning)
+ requestBody:
+ required: true
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/CreateFineTuneRequest'
+ responses:
+ "200":
+ description: OK
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/FineTune'
+ x-oaiMeta:
+ name: Create fine-tune
+ group: fine-tunes
+ path: create
+ examples:
+ curl: |
+ curl https://api.openai.com/v1/fine-tunes \
+ -X POST \
+ -H "Content-Type: application/json" \
+ -H "Authorization: Bearer YOUR_API_KEY" \
+ -d '{
+ "training_file": "file-XGinujblHPwGLSztz8cPS8XY"
+ }'
+ python: |
+ import os
+ import openai
+ openai.api_key = os.getenv("OPENAI_API_KEY")
+ openai.FineTune.create(training_file="file-XGinujblHPwGLSztz8cPS8XY")
+ node.js: |
+ const { Configuration, OpenAIApi } = require("openai");
+ const configuration = new Configuration({
+ apiKey: process.env.OPENAI_API_KEY,
+ });
+ const openai = new OpenAIApi(configuration);
+ const response = await openai.createFineTune({
+ training_file: "file-XGinujblHPwGLSztz8cPS8XY",
+ });
+ response: |
+ {
+ "id": "ft-AF1WoRqd3aJAHsqc9NY7iL8F",
+ "object": "fine-tune",
+ "model": "curie",
+ "created_at": 1614807352,
+ "events": [
+ {
+ "object": "fine-tune-event",
+ "created_at": 1614807352,
+ "level": "info",
+ "message": "Job enqueued. Waiting for jobs ahead to complete. Queue number: 0."
+ }
+ ],
+ "fine_tuned_model": null,
+ "hyperparams": {
+ "batch_size": 4,
+ "learning_rate_multiplier": 0.1,
+ "n_epochs": 4,
+ "prompt_loss_weight": 0.1,
+ },
+ "organization_id": "org-...",
+ "result_files": [],
+ "status": "pending",
+ "validation_files": [],
+ "training_files": [
+ {
+ "id": "file-XGinujblHPwGLSztz8cPS8XY",
+ "object": "file",
+ "bytes": 1547276,
+ "created_at": 1610062281,
+ "filename": "my-data-train.jsonl",
+ "purpose": "fine-tune-train"
+ }
+ ],
+ "updated_at": 1614807352,
+ }
+ get:
+ operationId: listFineTunes
+ tags:
+ - OpenAI
+ summary: |
+ List your organization's fine-tuning jobs
+ responses:
+ "200":
+ description: OK
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ListFineTunesResponse'
+ x-oaiMeta:
+ name: List fine-tunes
+ group: fine-tunes
+ path: list
+ examples:
+ curl: |
+ curl https://api.openai.com/v1/fine-tunes \
+ -H 'Authorization: Bearer YOUR_API_KEY'
+ python: |
+ import os
+ import openai
+ openai.api_key = os.getenv("OPENAI_API_KEY")
+ openai.FineTune.list()
+ node.js: |
+ const { Configuration, OpenAIApi } = require("openai");
+ const configuration = new Configuration({
+ apiKey: process.env.OPENAI_API_KEY,
+ });
+ const openai = new OpenAIApi(configuration);
+ const response = await openai.listFineTunes();
+ response: |
+ {
+ "object": "list",
+ "data": [
+ {
+ "id": "ft-AF1WoRqd3aJAHsqc9NY7iL8F",
+ "object": "fine-tune",
+ "model": "curie",
+ "created_at": 1614807352,
+ "fine_tuned_model": null,
+ "hyperparams": { ... },
+ "organization_id": "org-...",
+ "result_files": [],
+ "status": "pending",
+ "validation_files": [],
+ "training_files": [ { ... } ],
+ "updated_at": 1614807352,
+ },
+ { ... },
+ { ... }
+ ]
+ }
+
+ /fine-tunes/{fine_tune_id}:
+ get:
+ operationId: retrieveFineTune
+ tags:
+ - OpenAI
+ summary: |
+ Gets info about the fine-tune job.
+
+ [Learn more about Fine-tuning](/docs/guides/fine-tuning)
+ parameters:
+ - in: path
+ name: fine_tune_id
+ required: true
+ schema:
+ type: string
+ example:
+ ft-AF1WoRqd3aJAHsqc9NY7iL8F
+ description: |
+ The ID of the fine-tune job
+ responses:
+ "200":
+ description: OK
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/FineTune'
+ x-oaiMeta:
+ name: Retrieve fine-tune
+ group: fine-tunes
+ path: retrieve
+ examples:
+ curl: |
+ curl https://api.openai.com/v1/fine-tunes/ft-AF1WoRqd3aJAHsqc9NY7iL8F \
+ -H "Authorization: Bearer YOUR_API_KEY"
+ python: |
+ import os
+ import openai
+ openai.api_key = os.getenv("OPENAI_API_KEY")
+ openai.FineTune.retrieve(id="ft-AF1WoRqd3aJAHsqc9NY7iL8F")
+ node.js: |
+ const { Configuration, OpenAIApi } = require("openai");
+ const configuration = new Configuration({
+ apiKey: process.env.OPENAI_API_KEY,
+ });
+ const openai = new OpenAIApi(configuration);
+ const response = await openai.retrieveFineTune("ft-AF1WoRqd3aJAHsqc9NY7iL8F");
+ response: |
+ {
+ "id": "ft-AF1WoRqd3aJAHsqc9NY7iL8F",
+ "object": "fine-tune",
+ "model": "curie",
+ "created_at": 1614807352,
+ "events": [
+ {
+ "object": "fine-tune-event",
+ "created_at": 1614807352,
+ "level": "info",
+ "message": "Job enqueued. Waiting for jobs ahead to complete. Queue number: 0."
+ },
+ {
+ "object": "fine-tune-event",
+ "created_at": 1614807356,
+ "level": "info",
+ "message": "Job started."
+ },
+ {
+ "object": "fine-tune-event",
+ "created_at": 1614807861,
+ "level": "info",
+ "message": "Uploaded snapshot: curie:ft-acmeco-2021-03-03-21-44-20."
+ },
+ {
+ "object": "fine-tune-event",
+ "created_at": 1614807864,
+ "level": "info",
+ "message": "Uploaded result files: file-QQm6ZpqdNwAaVC3aSz5sWwLT."
+ },
+ {
+ "object": "fine-tune-event",
+ "created_at": 1614807864,
+ "level": "info",
+ "message": "Job succeeded."
+ }
+ ],
+ "fine_tuned_model": "curie:ft-acmeco-2021-03-03-21-44-20",
+ "hyperparams": {
+ "batch_size": 4,
+ "learning_rate_multiplier": 0.1,
+ "n_epochs": 4,
+ "prompt_loss_weight": 0.1,
+ },
+ "organization_id": "org-...",
+ "result_files": [
+ {
+ "id": "file-QQm6ZpqdNwAaVC3aSz5sWwLT",
+ "object": "file",
+ "bytes": 81509,
+ "created_at": 1614807863,
+ "filename": "compiled_results.csv",
+ "purpose": "fine-tune-results"
+ }
+ ],
+ "status": "succeeded",
+ "validation_files": [],
+ "training_files": [
+ {
+ "id": "file-XGinujblHPwGLSztz8cPS8XY",
+ "object": "file",
+ "bytes": 1547276,
+ "created_at": 1610062281,
+ "filename": "my-data-train.jsonl",
+ "purpose": "fine-tune-train"
+ }
+ ],
+ "updated_at": 1614807865,
+ }
+
+ /fine-tunes/{fine_tune_id}/cancel:
+ post:
+ operationId: cancelFineTune
+ tags:
+ - OpenAI
+ summary: |
+ Immediately cancel a fine-tune job.
+ parameters:
+ - in: path
+ name: fine_tune_id
+ required: true
+ schema:
+ type: string
+ example:
+ ft-AF1WoRqd3aJAHsqc9NY7iL8F
+ description: |
+ The ID of the fine-tune job to cancel
+ responses:
+ "200":
+ description: OK
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/FineTune'
+ x-oaiMeta:
+ name: Cancel fine-tune
+ group: fine-tunes
+ path: cancel
+ examples:
+ curl: |
+ curl https://api.openai.com/v1/fine-tunes/ft-AF1WoRqd3aJAHsqc9NY7iL8F/cancel \
+ -X POST \
+ -H "Authorization: Bearer YOUR_API_KEY"
+ python: |
+ import os
+ import openai
+ openai.api_key = os.getenv("OPENAI_API_KEY")
+ openai.FineTune.cancel(id="ft-AF1WoRqd3aJAHsqc9NY7iL8F")
+ node.js: |
+ const { Configuration, OpenAIApi } = require("openai");
+ const configuration = new Configuration({
+ apiKey: process.env.OPENAI_API_KEY,
+ });
+ const openai = new OpenAIApi(configuration);
+ const response = await openai.cancelFineTune("ft-AF1WoRqd3aJAHsqc9NY7iL8F");
+ response: |
+ {
+ "id": "ft-xhrpBbvVUzYGo8oUO1FY4nI7",
+ "object": "fine-tune",
+ "model": "curie",
+ "created_at": 1614807770,
+ "events": [ { ... } ],
+ "fine_tuned_model": null,
+ "hyperparams": { ... },
+ "organization_id": "org-...",
+ "result_files": [],
+ "status": "cancelled",
+ "validation_files": [],
+ "training_files": [
+ {
+ "id": "file-XGinujblHPwGLSztz8cPS8XY",
+ "object": "file",
+ "bytes": 1547276,
+ "created_at": 1610062281,
+ "filename": "my-data-train.jsonl",
+ "purpose": "fine-tune-train"
+ }
+ ],
+ "updated_at": 1614807789,
+ }
+
+ /fine-tunes/{fine_tune_id}/events:
+ get:
+ operationId: listFineTuneEvents
+ tags:
+ - OpenAI
+ summary: |
+ Get fine-grained status updates for a fine-tune job.
+ parameters:
+ - in: path
+ name: fine_tune_id
+ required: true
+ schema:
+ type: string
+ example:
+ ft-AF1WoRqd3aJAHsqc9NY7iL8F
+ description: |
+ The ID of the fine-tune job to get events for.
+ - in: query
+ name: stream
+ required: false
+ schema:
+ type: boolean
+ default: false
+ description: |
+ Whether to stream events for the fine-tune job. If set to true,
+ events will be sent as data-only
+ [server-sent events](https://developer.mozilla.org/en-US/docs/Web/API/Server-sent_events/Using_server-sent_events#Event_stream_format)
+ as they become available. The stream will terminate with a
+ `data: [DONE]` message when the job is finished (succeeded, cancelled,
+ or failed).
+
+ If set to false, only events generated so far will be returned.
+ responses:
+ "200":
+ description: OK
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ListFineTuneEventsResponse'
+ x-oaiMeta:
+ name: List fine-tune events
+ group: fine-tunes
+ path: events
+ examples:
+ curl: |
+ curl https://api.openai.com/v1/fine-tunes/ft-AF1WoRqd3aJAHsqc9NY7iL8F/events \
+ -H "Authorization: Bearer YOUR_API_KEY"
+ python: |
+ import os
+ import openai
+ openai.api_key = os.getenv("OPENAI_API_KEY")
+ openai.FineTune.list_events(id="ft-AF1WoRqd3aJAHsqc9NY7iL8F")
+ node.js: |
+ const { Configuration, OpenAIApi } = require("openai");
+ const configuration = new Configuration({
+ apiKey: process.env.OPENAI_API_KEY,
+ });
+ const openai = new OpenAIApi(configuration);
+ const response = await openai.listFineTuneEvents("ft-AF1WoRqd3aJAHsqc9NY7iL8F");
+ response: |
+ {
+ "object": "list",
+ "data": [
+ {
+ "object": "fine-tune-event",
+ "created_at": 1614807352,
+ "level": "info",
+ "message": "Job enqueued. Waiting for jobs ahead to complete. Queue number: 0."
+ },
+ {
+ "object": "fine-tune-event",
+ "created_at": 1614807356,
+ "level": "info",
+ "message": "Job started."
+ },
+ {
+ "object": "fine-tune-event",
+ "created_at": 1614807861,
+ "level": "info",
+ "message": "Uploaded snapshot: curie:ft-acmeco-2021-03-03-21-44-20."
+ },
+ {
+ "object": "fine-tune-event",
+ "created_at": 1614807864,
+ "level": "info",
+ "message": "Uploaded result files: file-QQm6ZpqdNwAaVC3aSz5sWwLT."
+ },
+ {
+ "object": "fine-tune-event",
+ "created_at": 1614807864,
+ "level": "info",
+ "message": "Job succeeded."
+ }
+ ]
+ }
+
+ /models:
+ get:
+ operationId: listModels
+ tags:
+ - OpenAI
+ summary: Lists the currently available models, and provides basic information about each one such as the owner and availability.
+ responses:
+ "200":
+ description: OK
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ListModelsResponse'
+ x-oaiMeta:
+ name: List models
+ group: models
+ path: list
+ examples:
+ curl: |
+ curl https://api.openai.com/v1/models \
+ -H 'Authorization: Bearer YOUR_API_KEY'
+ python: |
+ import os
+ import openai
+ openai.api_key = os.getenv("OPENAI_API_KEY")
+ openai.Model.list()
+ node.js: |
+ const { Configuration, OpenAIApi } = require("openai");
+ const configuration = new Configuration({
+ apiKey: process.env.OPENAI_API_KEY,
+ });
+ const openai = new OpenAIApi(configuration);
+ const response = await openai.listModels();
+ response: |
+ {
+ "data": [
+ {
+ "id": "model-id-0",
+ "object": "model",
+ "owned_by": "organization-owner",
+ "permission": [...]
+ },
+ {
+ "id": "model-id-1",
+ "object": "model",
+ "owned_by": "organization-owner",
+ "permission": [...]
+ },
+ {
+ "id": "model-id-2",
+ "object": "model",
+ "owned_by": "openai",
+ "permission": [...]
+ },
+ ],
+ "object": "list"
+ }
+
+ /models/{model}:
+ get:
+ operationId: retrieveModel
+ tags:
+ - OpenAI
+ summary: Retrieves a model instance, providing basic information about the model such as the owner and permissioning.
+ parameters:
+ - in: path
+ name: model
+ required: true
+ schema:
+ type: string
+ # ideally this will be an actual ID, so this will always work from browser
+ example:
+ text-davinci-001
+ description:
+ The ID of the model to use for this request
+ responses:
+ "200":
+ description: OK
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Model'
+ x-oaiMeta:
+ name: Retrieve model
+ group: models
+ path: retrieve
+ examples:
+ curl: |
+ curl https://api.openai.com/v1/models/VAR_model_id \
+ -H 'Authorization: Bearer YOUR_API_KEY'
+ python: |
+ import os
+ import openai
+ openai.api_key = os.getenv("OPENAI_API_KEY")
+ openai.Model.retrieve("VAR_model_id")
+ node.js: |
+ const { Configuration, OpenAIApi } = require("openai");
+ const configuration = new Configuration({
+ apiKey: process.env.OPENAI_API_KEY,
+ });
+ const openai = new OpenAIApi(configuration);
+ const response = await openai.retrieveModel("VAR_model_id");
+ response: |
+ {
+ "id": "VAR_model_id",
+ "object": "model",
+ "owned_by": "openai",
+ "permission": [...]
+ }
+ delete:
+ operationId: deleteModel
+ tags:
+ - OpenAI
+ summary: Delete a fine-tuned model. You must have the Owner role in your organization.
+ parameters:
+ - in: path
+ name: model
+ required: true
+ schema:
+ type: string
+ example: curie:ft-acmeco-2021-03-03-21-44-20
+ description: The model to delete
+ responses:
+ "200":
+ description: OK
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/DeleteModelResponse'
+ x-oaiMeta:
+ name: Delete fine-tune model
+ group: fine-tunes
+ path: delete-model
+ examples:
+ curl: |
+ curl https://api.openai.com/v1/models/curie:ft-acmeco-2021-03-03-21-44-20 \
+ -X DELETE \
+ -H "Authorization: Bearer YOUR_API_KEY"
+ python: |
+ import os
+ import openai
+ openai.api_key = os.getenv("OPENAI_API_KEY")
+ openai.Model.delete("curie:ft-acmeco-2021-03-03-21-44-20")
+ node.js: |
+ const { Configuration, OpenAIApi } = require("openai");
+ const configuration = new Configuration({
+ apiKey: process.env.OPENAI_API_KEY,
+ });
+ const openai = new OpenAIApi(configuration);
+ const response = await openai.deleteModel('curie:ft-acmeco-2021-03-03-21-44-20');
+ response: |
+ {
+ "id": "curie:ft-acmeco-2021-03-03-21-44-20",
+ "object": "model",
+ "deleted": true
+ }
+
+ /moderations:
+ post:
+ operationId: createModeration
+ tags:
+ - OpenAI
+ summary: Classifies if text violates OpenAI's Content Policy
+ requestBody:
+ required: true
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/CreateModerationRequest'
+ responses:
+ "200":
+ description: OK
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/CreateModerationResponse'
+ x-oaiMeta:
+ name: Create moderation
+ group: moderations
+ path: create
+ examples:
+ curl: |
+ curl https://api.openai.com/v1/moderations \
+ -H 'Content-Type: application/json' \
+ -H 'Authorization: Bearer YOUR_API_KEY' \
+ -d '{
+ "input": "I want to kill them."
+ }'
+ python: |
+ import os
+ import openai
+ openai.api_key = os.getenv("OPENAI_API_KEY")
+ openai.Moderation.create(
+ input="I want to kill them.",
+ )
+ node.js: |
+ const { Configuration, OpenAIApi } = require("openai");
+ const configuration = new Configuration({
+ apiKey: process.env.OPENAI_API_KEY,
+ });
+ const openai = new OpenAIApi(configuration);
+ const response = await openai.createModeration({
+ input: "I want to kill them.",
+ });
+ parameters: |
+ {
+ "input": "I want to kill them."
+ }
+ response: |
+ {
+ "id": "modr-5MWoLO",
+ "model": "text-moderation-001",
+ "results": [
+ {
+ "categories": {
+ "hate": false,
+ "hate/threatening": true,
+ "self-harm": false,
+ "sexual": false,
+ "sexual/minors": false,
+ "violence": true,
+ "violence/graphic": false
+ },
+ "category_scores": {
+ "hate": 0.22714105248451233,
+ "hate/threatening": 0.4132447838783264,
+ "self-harm": 0.005232391878962517,
+ "sexual": 0.01407341007143259,
+ "sexual/minors": 0.0038522258400917053,
+ "violence": 0.9223177433013916,
+ "violence/graphic": 0.036865197122097015
+ },
+ "flagged": true
+ }
+ ]
+ }
+
+components:
+ schemas:
+ ListEnginesResponse:
+ type: object
+ properties:
+ object:
+ type: string
+ data:
+ type: array
+ items:
+ $ref: '#/components/schemas/Engine'
+ required:
+ - object
+ - data
+
+ ListModelsResponse:
+ type: object
+ properties:
+ object:
+ type: string
+ data:
+ type: array
+ items:
+ $ref: '#/components/schemas/Model'
+ required:
+ - object
+ - data
+
+ DeleteModelResponse:
+ type: object
+ properties:
+ id:
+ type: string
+ object:
+ type: string
+ deleted:
+ type: boolean
+ required:
+ - id
+ - object
+ - deleted
+
+ CreateCompletionRequest:
+ type: object
+ properties:
+ model: &model_configuration
+ description: ID of the model to use. You can use the [List models](/docs/api-reference/models/list) API to see all of your available models, or see our [Model overview](/docs/models/overview) for descriptions of them.
+ type: string
+ prompt:
+ description: &completions_prompt_description |
+ The prompt(s) to generate completions for, encoded as a string, array of strings, array of tokens, or array of token arrays.
+
+ Note that <|endoftext|> is the document separator that the model sees during training, so if a prompt is not specified the model will generate as if from the beginning of a new document.
+ default: '<|endoftext|>'
+ nullable: true
+ oneOf:
+ - type: string
+ default: ''
+ example: "This is a test."
+ - type: array
+ items:
+ type: string
+ default: ''
+ example: "This is a test."
+ - type: array
+ minItems: 1
+ items:
+ type: integer
+ example: "[1212, 318, 257, 1332, 13]"
+ - type: array
+ minItems: 1
+ items:
+ type: array
+ minItems: 1
+ items:
+ type: integer
+ example: "[[1212, 318, 257, 1332, 13]]"
+ suffix:
+ description:
+ The suffix that comes after a completion of inserted text.
+ default: null
+ nullable: true
+ type: string
+ example: "test."
+ max_tokens:
+ type: integer
+ minimum: 0
+ default: 16
+ example: 16
+ nullable: true
+ description: &completions_max_tokens_description |
+ The maximum number of [tokens](/tokenizer) to generate in the completion.
+
+ The token count of your prompt plus `max_tokens` cannot exceed the model's context length. Most models have a context length of 2048 tokens (except for the newest models, which support 4096).
+ temperature:
+ type: number
+ minimum: 0
+ maximum: 2
+ default: 1
+ example: 1
+ nullable: true
+ description: &completions_temperature_description |
+ What sampling temperature to use, between 0 and 2. Higher values like 0.8 will make the output more random, while lower values like 0.2 will make it more focused and deterministic.
+
+ We generally recommend altering this or `top_p` but not both.
+ top_p:
+ type: number
+ minimum: 0
+ maximum: 1
+ default: 1
+ example: 1
+ nullable: true
+ description: &completions_top_p_description |
+ An alternative to sampling with temperature, called nucleus sampling, where the model considers the results of the tokens with top_p probability mass. So 0.1 means only the tokens comprising the top 10% probability mass are considered.
+
+ We generally recommend altering this or `temperature` but not both.
+ n:
+ type: integer
+ minimum: 1
+ maximum: 128
+ default: 1
+ example: 1
+ nullable: true
+ description: &completions_completions_description |
+ How many completions to generate for each prompt.
+
+ **Note:** Because this parameter generates many completions, it can quickly consume your token quota. Use carefully and ensure that you have reasonable settings for `max_tokens` and `stop`.
+ stream:
+ description: >
+ Whether to stream back partial progress. If set, tokens will be sent as data-only [server-sent events](https://developer.mozilla.org/en-US/docs/Web/API/Server-sent_events/Using_server-sent_events#Event_stream_format)
+ as they become available, with the stream terminated by a `data: [DONE]` message.
+ type: boolean
+ nullable: true
+ default: false
+ logprobs: &completions_logprobs_configuration
+ type: integer
+ minimum: 0
+ maximum: 5
+ default: null
+ nullable: true
+ description: &completions_logprobs_description |
+ Include the log probabilities on the `logprobs` most likely tokens, as well the chosen tokens. For example, if `logprobs` is 5, the API will return a list of the 5 most likely tokens. The API will always return the `logprob` of the sampled token, so there may be up to `logprobs+1` elements in the response.
+
+ The maximum value for `logprobs` is 5. If you need more than this, please contact us through our [Help center](https://help.openai.com) and describe your use case.
+ echo:
+ type: boolean
+ default: false
+ nullable: true
+ description: &completions_echo_description >
+ Echo back the prompt in addition to the completion
+ stop:
+ description: &completions_stop_description >
+ Up to 4 sequences where the API will stop generating further tokens. The returned text will not contain the stop sequence.
+ default: null
+ nullable: true
+ oneOf:
+ - type: string
+ default: <|endoftext|>
+ example: "\n"
+ nullable: true
+ - type: array
+ minItems: 1
+ maxItems: 4
+ items:
+ type: string
+ example: '["\n"]'
+ presence_penalty:
+ type: number
+ default: 0
+ minimum: -2
+ maximum: 2
+ nullable: true
+ description: &completions_presence_penalty_description |
+ Number between -2.0 and 2.0. Positive values penalize new tokens based on whether they appear in the text so far, increasing the model's likelihood to talk about new topics.
+
+ [See more information about frequency and presence penalties.](/docs/api-reference/parameter-details)
+ frequency_penalty:
+ type: number
+ default: 0
+ minimum: -2
+ maximum: 2
+ nullable: true
+ description: &completions_frequency_penalty_description |
+ Number between -2.0 and 2.0. Positive values penalize new tokens based on their existing frequency in the text so far, decreasing the model's likelihood to repeat the same line verbatim.
+
+ [See more information about frequency and presence penalties.](/docs/api-reference/parameter-details)
+ best_of:
+ type: integer
+ default: 1
+ minimum: 0
+ maximum: 20
+ nullable: true
+ description: &completions_best_of_description |
+ Generates `best_of` completions server-side and returns the "best" (the one with the highest log probability per token). Results cannot be streamed.
+
+ When used with `n`, `best_of` controls the number of candidate completions and `n` specifies how many to return – `best_of` must be greater than `n`.
+
+ **Note:** Because this parameter generates many completions, it can quickly consume your token quota. Use carefully and ensure that you have reasonable settings for `max_tokens` and `stop`.
+ logit_bias: &completions_logit_bias
+ type: object
+ x-oaiTypeLabel: map
+ default: null
+ nullable: true
+ description: &completions_logit_bias_description |
+ Modify the likelihood of specified tokens appearing in the completion.
+
+ Accepts a json object that maps tokens (specified by their token ID in the GPT tokenizer) to an associated bias value from -100 to 100. You can use this [tokenizer tool](/tokenizer?view=bpe) (which works for both GPT-2 and GPT-3) to convert text to token IDs. Mathematically, the bias is added to the logits generated by the model prior to sampling. The exact effect will vary per model, but values between -1 and 1 should decrease or increase likelihood of selection; values like -100 or 100 should result in a ban or exclusive selection of the relevant token.
+
+ As an example, you can pass `{"50256": -100}` to prevent the <|endoftext|> token from being generated.
+ user: &end_user_param_configuration
+ type: string
+ example: user-1234
+ description: |
+ A unique identifier representing your end-user, which can help OpenAI to monitor and detect abuse. [Learn more](/docs/guides/safety-best-practices/end-user-ids).
+ required:
+ - model
+
+ CreateCompletionResponse:
+ type: object
+ properties:
+ id:
+ type: string
+ object:
+ type: string
+ created:
+ type: integer
+ model:
+ type: string
+ choices:
+ type: array
+ items:
+ type: object
+ properties:
+ text:
+ type: string
+ index:
+ type: integer
+ logprobs:
+ type: object
+ nullable: true
+ properties:
+ tokens:
+ type: array
+ items:
+ type: string
+ token_logprobs:
+ type: array
+ items:
+ type: number
+ top_logprobs:
+ type: array
+ items:
+ type: object
+ text_offset:
+ type: array
+ items:
+ type: integer
+ finish_reason:
+ type: string
+ usage:
+ type: object
+ properties:
+ prompt_tokens:
+ type: integer
+ completion_tokens:
+ type: integer
+ total_tokens:
+ type: integer
+ required:
+ - prompt_tokens
+ - completion_tokens
+ - total_tokens
+ required:
+ - id
+ - object
+ - created
+ - model
+ - choices
+
+ ChatCompletionRequestMessage:
+ type: object
+ properties:
+ role:
+ type: string
+ enum: ["system", "user", "assistant"]
+ description: The role of the author of this message.
+ content:
+ type: string
+ description: The contents of the message
+ name:
+ type: string
+ description: The name of the user in a multi-user chat
+ required:
+ - role
+ - content
+
+ ChatCompletionResponseMessage:
+ type: object
+ properties:
+ role:
+ type: string
+ enum: ["system", "user", "assistant"]
+ description: The role of the author of this message.
+ content:
+ type: string
+ description: The contents of the message
+ required:
+ - role
+ - content
+
+ CreateChatCompletionRequest:
+ type: object
+ properties:
+ model:
+ description: ID of the model to use. Currently, only `gpt-3.5-turbo` and `gpt-3.5-turbo-0301` are supported.
+ type: string
+ messages:
+ description: The messages to generate chat completions for, in the [chat format](/docs/guides/chat/introduction).
+ type: array
+ minItems: 1
+ items:
+ $ref: '#/components/schemas/ChatCompletionRequestMessage'
+ temperature:
+ type: number
+ minimum: 0
+ maximum: 2
+ default: 1
+ example: 1
+ nullable: true
+ description: *completions_temperature_description
+ top_p:
+ type: number
+ minimum: 0
+ maximum: 1
+ default: 1
+ example: 1
+ nullable: true
+ description: *completions_top_p_description
+ n:
+ type: integer
+ minimum: 1
+ maximum: 128
+ default: 1
+ example: 1
+ nullable: true
+ description: How many chat completion choices to generate for each input message.
+ stream:
+ description: >
+ If set, partial message deltas will be sent, like in ChatGPT. Tokens will be sent as data-only [server-sent events](https://developer.mozilla.org/en-US/docs/Web/API/Server-sent_events/Using_server-sent_events#Event_stream_format)
+ as they become available, with the stream terminated by a `data: [DONE]` message.
+ type: boolean
+ nullable: true
+ default: false
+ stop:
+ description: |
+ Up to 4 sequences where the API will stop generating further tokens.
+ default: null
+ oneOf:
+ - type: string
+ nullable: true
+ - type: array
+ minItems: 1
+ maxItems: 4
+ items:
+ type: string
+ max_tokens:
+ description: |
+ The maximum number of tokens allowed for the generated answer. By default, the number of tokens the model can return will be (4096 - prompt tokens).
+ default: inf
+ type: integer
+ presence_penalty:
+ type: number
+ default: 0
+ minimum: -2
+ maximum: 2
+ nullable: true
+ description: *completions_presence_penalty_description
+ frequency_penalty:
+ type: number
+ default: 0
+ minimum: -2
+ maximum: 2
+ nullable: true
+ description: *completions_frequency_penalty_description
+ logit_bias:
+ type: object
+ x-oaiTypeLabel: map
+ default: null
+ nullable: true
+ description: |
+ Modify the likelihood of specified tokens appearing in the completion.
+
+ Accepts a json object that maps tokens (specified by their token ID in the tokenizer) to an associated bias value from -100 to 100. Mathematically, the bias is added to the logits generated by the model prior to sampling. The exact effect will vary per model, but values between -1 and 1 should decrease or increase likelihood of selection; values like -100 or 100 should result in a ban or exclusive selection of the relevant token.
+ user: *end_user_param_configuration
+ required:
+ - model
+ - messages
+
+ CreateChatCompletionResponse:
+ type: object
+ properties:
+ id:
+ type: string
+ object:
+ type: string
+ created:
+ type: integer
+ model:
+ type: string
+ choices:
+ type: array
+ items:
+ type: object
+ properties:
+ index:
+ type: integer
+ message:
+ $ref: '#/components/schemas/ChatCompletionResponseMessage'
+ finish_reason:
+ type: string
+ usage:
+ type: object
+ properties:
+ prompt_tokens:
+ type: integer
+ completion_tokens:
+ type: integer
+ total_tokens:
+ type: integer
+ required:
+ - prompt_tokens
+ - completion_tokens
+ - total_tokens
+ required:
+ - id
+ - object
+ - created
+ - model
+ - choices
+
+ CreateEditRequest:
+ type: object
+ properties:
+ model:
+ description: ID of the model to use. You can use the `text-davinci-edit-001` or `code-davinci-edit-001` model with this endpoint.
+ type: string
+ input:
+ description:
+ The input text to use as a starting point for the edit.
+ type: string
+ default: ''
+ nullable: true
+ example: "What day of the wek is it?"
+ instruction:
+ description:
+ The instruction that tells the model how to edit the prompt.
+ type: string
+ example: "Fix the spelling mistakes."
+ n:
+ type: integer
+ minimum: 1
+ maximum: 20
+ default: 1
+ example: 1
+ nullable: true
+ description:
+ How many edits to generate for the input and instruction.
+ temperature:
+ type: number
+ minimum: 0
+ maximum: 2
+ default: 1
+ example: 1
+ nullable: true
+ description: *completions_temperature_description
+ top_p:
+ type: number
+ minimum: 0
+ maximum: 1
+ default: 1
+ example: 1
+ nullable: true
+ description: *completions_top_p_description
+ required:
+ - model
+ - instruction
+
+ CreateEditResponse:
+ type: object
+ properties:
+ object:
+ type: string
+ created:
+ type: integer
+ choices:
+ type: array
+ items:
+ type: object
+ properties:
+ text:
+ type: string
+ index:
+ type: integer
+ logprobs:
+ type: object
+ nullable: true
+ properties:
+ tokens:
+ type: array
+ items:
+ type: string
+ token_logprobs:
+ type: array
+ items:
+ type: number
+ top_logprobs:
+ type: array
+ items:
+ type: object
+ text_offset:
+ type: array
+ items:
+ type: integer
+ finish_reason:
+ type: string
+ usage:
+ type: object
+ properties:
+ prompt_tokens:
+ type: integer
+ completion_tokens:
+ type: integer
+ total_tokens:
+ type: integer
+ required:
+ - prompt_tokens
+ - completion_tokens
+ - total_tokens
+ required:
+ - object
+ - created
+ - choices
+ - usage
+
+ CreateImageRequest:
+ type: object
+ properties:
+ prompt:
+ description: A text description of the desired image(s). The maximum length is 1000 characters.
+ type: string
+ example: "A cute baby sea otter"
+ n: &images_n
+ type: integer
+ minimum: 1
+ maximum: 10
+ default: 1
+ example: 1
+ nullable: true
+ description: The number of images to generate. Must be between 1 and 10.
+ size: &images_size
+ type: string
+ enum: ["256x256", "512x512", "1024x1024"]
+ default: "1024x1024"
+ example: "1024x1024"
+ nullable: true
+ description: The size of the generated images. Must be one of `256x256`, `512x512`, or `1024x1024`.
+ response_format: &images_response_format
+ type: string
+ enum: ["url", "b64_json"]
+ default: "url"
+ example: "url"
+ nullable: true
+ description: The format in which the generated images are returned. Must be one of `url` or `b64_json`.
+ user: *end_user_param_configuration
+ required:
+ - prompt
+
+ ImagesResponse:
+ properties:
+ created:
+ type: integer
+ data:
+ type: array
+ items:
+ type: object
+ properties:
+ url:
+ type: string
+ b64_json:
+ type: string
+ required:
+ - created
+ - data
+
+ CreateImageEditRequest:
+ type: object
+ properties:
+ image:
+ description: The image to edit. Must be a valid PNG file, less than 4MB, and square. If mask is not provided, image must have transparency, which will be used as the mask.
+ type: string
+ format: binary
+ mask:
+ description: An additional image whose fully transparent areas (e.g. where alpha is zero) indicate where `image` should be edited. Must be a valid PNG file, less than 4MB, and have the same dimensions as `image`.
+ type: string
+ format: binary
+ prompt:
+ description: A text description of the desired image(s). The maximum length is 1000 characters.
+ type: string
+ example: "A cute baby sea otter wearing a beret"
+ n: *images_n
+ size: *images_size
+ response_format: *images_response_format
+ user: *end_user_param_configuration
+ required:
+ - prompt
+ - image
+
+ CreateImageVariationRequest:
+ type: object
+ properties:
+ image:
+ description: The image to use as the basis for the variation(s). Must be a valid PNG file, less than 4MB, and square.
+ type: string
+ format: binary
+ n: *images_n
+ size: *images_size
+ response_format: *images_response_format
+ user: *end_user_param_configuration
+ required:
+ - image
+
+ CreateModerationRequest:
+ type: object
+ properties:
+ input:
+ description: The input text to classify
+ oneOf:
+ - type: string
+ default: ''
+ example: "I want to kill them."
+ - type: array
+ items:
+ type: string
+ default: ''
+ example: "I want to kill them."
+ model:
+ description: |
+ Two content moderations models are available: `text-moderation-stable` and `text-moderation-latest`.
+
+ The default is `text-moderation-latest` which will be automatically upgraded over time. This ensures you are always using our most accurate model. If you use `text-moderation-stable`, we will provide advanced notice before updating the model. Accuracy of `text-moderation-stable` may be slightly lower than for `text-moderation-latest`.
+ type: string
+ nullable: false
+ default: "text-moderation-latest"
+ example: "text-moderation-stable"
+ required:
+ - input
+
+ CreateModerationResponse:
+ type: object
+ properties:
+ id:
+ type: string
+ model:
+ type: string
+ results:
+ type: array
+ items:
+ type: object
+ properties:
+ flagged:
+ type: boolean
+ categories:
+ type: object
+ properties:
+ hate:
+ type: boolean
+ hate/threatening:
+ type: boolean
+ self-harm:
+ type: boolean
+ sexual:
+ type: boolean
+ sexual/minors:
+ type: boolean
+ violence:
+ type: boolean
+ violence/graphic:
+ type: boolean
+ required:
+ - hate
+ - hate/threatening
+ - self-harm
+ - sexual
+ - sexual/minors
+ - violence
+ - violence/graphic
+ category_scores:
+ type: object
+ properties:
+ hate:
+ type: number
+ hate/threatening:
+ type: number
+ self-harm:
+ type: number
+ sexual:
+ type: number
+ sexual/minors:
+ type: number
+ violence:
+ type: number
+ violence/graphic:
+ type: number
+ required:
+ - hate
+ - hate/threatening
+ - self-harm
+ - sexual
+ - sexual/minors
+ - violence
+ - violence/graphic
+ required:
+ - flagged
+ - categories
+ - category_scores
+ required:
+ - id
+ - model
+ - results
+
+ CreateSearchRequest:
+ type: object
+ properties:
+ query:
+ description: Query to search against the documents.
+ type: string
+ example: "the president"
+ minLength: 1
+ documents:
+ description: |
+ Up to 200 documents to search over, provided as a list of strings.
+
+ The maximum document length (in tokens) is 2034 minus the number of tokens in the query.
+
+ You should specify either `documents` or a `file`, but not both.
+ type: array
+ minItems: 1
+ maxItems: 200
+ items:
+ type: string
+ nullable: true
+ example: "['White House', 'hospital', 'school']"
+ file:
+ description: |
+ The ID of an uploaded file that contains documents to search over.
+
+ You should specify either `documents` or a `file`, but not both.
+ type: string
+ nullable: true
+ max_rerank:
+ description: |
+ The maximum number of documents to be re-ranked and returned by search.
+
+ This flag only takes effect when `file` is set.
+ type: integer
+ minimum: 1
+ default: 200
+ nullable: true
+ return_metadata: &return_metadata_configuration
+ description: |
+ A special boolean flag for showing metadata. If set to `true`, each document entry in the returned JSON will contain a "metadata" field.
+
+ This flag only takes effect when `file` is set.
+ type: boolean
+ default: false
+ nullable: true
+ user: *end_user_param_configuration
+ required:
+ - query
+
+ CreateSearchResponse:
+ type: object
+ properties:
+ object:
+ type: string
+ model:
+ type: string
+ data:
+ type: array
+ items:
+ type: object
+ properties:
+ object:
+ type: string
+ document:
+ type: integer
+ score:
+ type: number
+
+ ListFilesResponse:
+ type: object
+ properties:
+ object:
+ type: string
+ data:
+ type: array
+ items:
+ $ref: '#/components/schemas/OpenAIFile'
+ required:
+ - object
+ - data
+
+ CreateFileRequest:
+ type: object
+ additionalProperties: false
+ properties:
+ file:
+ description: |
+ Name of the [JSON Lines](https://jsonlines.readthedocs.io/en/latest/) file to be uploaded.
+
+ If the `purpose` is set to "fine-tune", each line is a JSON record with "prompt" and "completion" fields representing your [training examples](/docs/guides/fine-tuning/prepare-training-data).
+ type: string
+ format: binary
+ purpose:
+ description: |
+ The intended purpose of the uploaded documents.
+
+ Use "fine-tune" for [Fine-tuning](/docs/api-reference/fine-tunes). This allows us to validate the format of the uploaded file.
+
+ type: string
+ required:
+ - file
+ - purpose
+
+ DeleteFileResponse:
+ type: object
+ properties:
+ id:
+ type: string
+ object:
+ type: string
+ deleted:
+ type: boolean
+ required:
+ - id
+ - object
+ - deleted
+
+ CreateAnswerRequest:
+ type: object
+ additionalProperties: false
+ properties:
+ model:
+ description: ID of the model to use for completion. You can select one of `ada`, `babbage`, `curie`, or `davinci`.
+ type: string
+ question:
+ description: Question to get answered.
+ type: string
+ minLength: 1
+ example: "What is the capital of Japan?"
+ examples:
+ description: List of (question, answer) pairs that will help steer the model towards the tone and answer format you'd like. We recommend adding 2 to 3 examples.
+ type: array
+ minItems: 1
+ maxItems: 200
+ items:
+ type: array
+ minItems: 2
+ maxItems: 2
+ items:
+ type: string
+ minLength: 1
+ example: "[['What is the capital of Canada?', 'Ottawa'], ['Which province is Ottawa in?', 'Ontario']]"
+ examples_context:
+ description: A text snippet containing the contextual information used to generate the answers for the `examples` you provide.
+ type: string
+ example: "Ottawa, Canada's capital, is located in the east of southern Ontario, near the city of Montréal and the U.S. border."
+ documents:
+ description: |
+ List of documents from which the answer for the input `question` should be derived. If this is an empty list, the question will be answered based on the question-answer examples.
+
+ You should specify either `documents` or a `file`, but not both.
+ type: array
+ maxItems: 200
+ items:
+ type: string
+ example: "['Japan is an island country in East Asia, located in the northwest Pacific Ocean.', 'Tokyo is the capital and most populous prefecture of Japan.']"
+ nullable: true
+ file:
+ description: |
+ The ID of an uploaded file that contains documents to search over. See [upload file](/docs/api-reference/files/upload) for how to upload a file of the desired format and purpose.
+
+ You should specify either `documents` or a `file`, but not both.
+ type: string
+ nullable: true
+ search_model: &search_model_configuration
+ description: ID of the model to use for [Search](/docs/api-reference/searches/create). You can select one of `ada`, `babbage`, `curie`, or `davinci`.
+ type: string
+ default: ada
+ nullable: true
+ max_rerank:
+ description: The maximum number of documents to be ranked by [Search](/docs/api-reference/searches/create) when using `file`. Setting it to a higher value leads to improved accuracy but with increased latency and cost.
+ type: integer
+ default: 200
+ nullable: true
+ temperature:
+ description: What sampling temperature to use, between 0 and 2. Higher values like 0.8 will make the output more random, while lower values like 0.2 will make it more focused and deterministic.
+ type: number
+ default: 0
+ nullable: true
+ logprobs: &context_completions_logprobs_configuration
+ type: integer
+ minimum: 0
+ maximum: 5
+ default: null
+ nullable: true
+ description: |
+ Include the log probabilities on the `logprobs` most likely tokens, as well the chosen tokens. For example, if `logprobs` is 5, the API will return a list of the 5 most likely tokens. The API will always return the `logprob` of the sampled token, so there may be up to `logprobs+1` elements in the response.
+
+ The maximum value for `logprobs` is 5. If you need more than this, please contact us through our [Help center](https://help.openai.com) and describe your use case.
+
+ When `logprobs` is set, `completion` will be automatically added into `expand` to get the logprobs.
+ max_tokens:
+ description: The maximum number of tokens allowed for the generated answer
+ type: integer
+ default: 16
+ nullable: true
+ stop:
+ description: *completions_stop_description
+ default: null
+ oneOf:
+ - type: string
+ default: <|endoftext|>
+ example: "\n"
+ - type: array
+ minItems: 1
+ maxItems: 4
+ items:
+ type: string
+ example: '["\n"]'
+ nullable: true
+ n:
+ description: How many answers to generate for each question.
+ type: integer
+ minimum: 1
+ maximum: 10
+ default: 1
+ nullable: true
+ logit_bias: *completions_logit_bias
+ return_metadata: *return_metadata_configuration
+ return_prompt: &return_prompt_configuration
+ description: If set to `true`, the returned JSON will include a "prompt" field containing the final prompt that was used to request a completion. This is mainly useful for debugging purposes.
+ type: boolean
+ default: false
+ nullable: true
+ expand: &expand_configuration
+ description: If an object name is in the list, we provide the full information of the object; otherwise, we only provide the object ID. Currently we support `completion` and `file` objects for expansion.
+ type: array
+ items: {}
+ nullable: true
+ default: []
+ user: *end_user_param_configuration
+ required:
+ - model
+ - question
+ - examples
+ - examples_context
+
+ CreateAnswerResponse:
+ type: object
+ properties:
+ object:
+ type: string
+ model:
+ type: string
+ search_model:
+ type: string
+ completion:
+ type: string
+ answers:
+ type: array
+ items:
+ type: string
+ selected_documents:
+ type: array
+ items:
+ type: object
+ properties:
+ document:
+ type: integer
+ text:
+ type: string
+
+ CreateClassificationRequest:
+ type: object
+ additionalProperties: false
+ properties:
+ model: *model_configuration
+ query:
+ description: Query to be classified.
+ type: string
+ minLength: 1
+ example: "The plot is not very attractive."
+ examples:
+ description: |
+ A list of examples with labels, in the following format:
+
+ `[["The movie is so interesting.", "Positive"], ["It is quite boring.", "Negative"], ...]`
+
+ All the label strings will be normalized to be capitalized.
+
+ You should specify either `examples` or `file`, but not both.
+ type: array
+ minItems: 2
+ maxItems: 200
+ items:
+ type: array
+ minItems: 2
+ maxItems: 2
+ items:
+ type: string
+ minLength: 1
+ example: "[['Do not see this film.', 'Negative'], ['Smart, provocative and blisteringly funny.', 'Positive']]"
+ nullable: true
+ file:
+ description: |
+ The ID of the uploaded file that contains training examples. See [upload file](/docs/api-reference/files/upload) for how to upload a file of the desired format and purpose.
+
+ You should specify either `examples` or `file`, but not both.
+ type: string
+ nullable: true
+ labels:
+ description: The set of categories being classified. If not specified, candidate labels will be automatically collected from the examples you provide. All the label strings will be normalized to be capitalized.
+ type: array
+ minItems: 2
+ maxItems: 200
+ default: null
+ items:
+ type: string
+ example: ["Positive", "Negative"]
+ nullable: true
+ search_model: *search_model_configuration
+ temperature:
+ description:
+ What sampling temperature to use, between 0 and 2. Higher values like 0.8 will make the output more random, while lower values like 0.2 will make it more focused and deterministic.
+ type: number
+ minimum: 0
+ maximum: 2
+ default: 0
+ nullable: true
+ example: 0
+ logprobs: *context_completions_logprobs_configuration
+ max_examples:
+ description: The maximum number of examples to be ranked by [Search](/docs/api-reference/searches/create) when using `file`. Setting it to a higher value leads to improved accuracy but with increased latency and cost.
+ type: integer
+ default: 200
+ nullable: true
+ logit_bias: *completions_logit_bias
+ return_prompt: *return_prompt_configuration
+ return_metadata: *return_metadata_configuration
+ expand: *expand_configuration
+ user: *end_user_param_configuration
+ required:
+ - model
+ - query
+
+ CreateClassificationResponse:
+ type: object
+ properties:
+ object:
+ type: string
+ model:
+ type: string
+ search_model:
+ type: string
+ completion:
+ type: string
+ label:
+ type: string
+ selected_examples:
+ type: array
+ items:
+ type: object
+ properties:
+ document:
+ type: integer
+ text:
+ type: string
+ label:
+ type: string
+
+ CreateFineTuneRequest:
+ type: object
+ properties:
+ training_file:
+ description: |
+ The ID of an uploaded file that contains training data.
+
+ See [upload file](/docs/api-reference/files/upload) for how to upload a file.
+
+ Your dataset must be formatted as a JSONL file, where each training
+ example is a JSON object with the keys "prompt" and "completion".
+ Additionally, you must upload your file with the purpose `fine-tune`.
+
+ See the [fine-tuning guide](/docs/guides/fine-tuning/creating-training-data) for more details.
+ type: string
+ example: "file-ajSREls59WBbvgSzJSVWxMCB"
+ validation_file:
+ description: |
+ The ID of an uploaded file that contains validation data.
+
+ If you provide this file, the data is used to generate validation
+ metrics periodically during fine-tuning. These metrics can be viewed in
+ the [fine-tuning results file](/docs/guides/fine-tuning/analyzing-your-fine-tuned-model).
+ Your train and validation data should be mutually exclusive.
+
+ Your dataset must be formatted as a JSONL file, where each validation
+ example is a JSON object with the keys "prompt" and "completion".
+ Additionally, you must upload your file with the purpose `fine-tune`.
+
+ See the [fine-tuning guide](/docs/guides/fine-tuning/creating-training-data) for more details.
+ type: string
+ nullable: true
+ example: "file-XjSREls59WBbvgSzJSVWxMCa"
+ model:
+ description: |
+ The name of the base model to fine-tune. You can select one of "ada",
+ "babbage", "curie", "davinci", or a fine-tuned model created after 2022-04-21.
+ To learn more about these models, see the
+ [Models](https://platform.openai.com/docs/models) documentation.
+ default: "curie"
+ type: string
+ nullable: true
+ n_epochs:
+ description: |
+ The number of epochs to train the model for. An epoch refers to one
+ full cycle through the training dataset.
+ default: 4
+ type: integer
+ nullable: true
+ batch_size:
+ description: |
+ The batch size to use for training. The batch size is the number of
+ training examples used to train a single forward and backward pass.
+
+ By default, the batch size will be dynamically configured to be
+ ~0.2% of the number of examples in the training set, capped at 256 -
+ in general, we've found that larger batch sizes tend to work better
+ for larger datasets.
+ default: null
+ type: integer
+ nullable: true
+ learning_rate_multiplier:
+ description: |
+ The learning rate multiplier to use for training.
+ The fine-tuning learning rate is the original learning rate used for
+ pretraining multiplied by this value.
+
+ By default, the learning rate multiplier is the 0.05, 0.1, or 0.2
+ depending on final `batch_size` (larger learning rates tend to
+ perform better with larger batch sizes). We recommend experimenting
+ with values in the range 0.02 to 0.2 to see what produces the best
+ results.
+ default: null
+ type: number
+ nullable: true
+ prompt_loss_weight:
+ description: |
+ The weight to use for loss on the prompt tokens. This controls how
+ much the model tries to learn to generate the prompt (as compared
+ to the completion which always has a weight of 1.0), and can add
+ a stabilizing effect to training when completions are short.
+
+ If prompts are extremely long (relative to completions), it may make
+ sense to reduce this weight so as to avoid over-prioritizing
+ learning the prompt.
+ default: 0.01
+ type: number
+ nullable: true
+ compute_classification_metrics:
+ description: |
+ If set, we calculate classification-specific metrics such as accuracy
+ and F-1 score using the validation set at the end of every epoch.
+ These metrics can be viewed in the [results file](/docs/guides/fine-tuning/analyzing-your-fine-tuned-model).
+
+ In order to compute classification metrics, you must provide a
+ `validation_file`. Additionally, you must
+ specify `classification_n_classes` for multiclass classification or
+ `classification_positive_class` for binary classification.
+ type: boolean
+ default: false
+ nullable: true
+ classification_n_classes:
+ description: |
+ The number of classes in a classification task.
+
+ This parameter is required for multiclass classification.
+ type: integer
+ default: null
+ nullable: true
+ classification_positive_class:
+ description: |
+ The positive class in binary classification.
+
+ This parameter is needed to generate precision, recall, and F1
+ metrics when doing binary classification.
+ type: string
+ default: null
+ nullable: true
+ classification_betas:
+ description: |
+ If this is provided, we calculate F-beta scores at the specified
+ beta values. The F-beta score is a generalization of F-1 score.
+ This is only used for binary classification.
+
+ With a beta of 1 (i.e. the F-1 score), precision and recall are
+ given the same weight. A larger beta score puts more weight on
+ recall and less on precision. A smaller beta score puts more weight
+ on precision and less on recall.
+ type: array
+ items:
+ type: number
+ example: [0.6, 1, 1.5, 2]
+ default: null
+ nullable: true
+ suffix:
+ description: |
+ A string of up to 40 characters that will be added to your fine-tuned model name.
+
+ For example, a `suffix` of "custom-model-name" would produce a model name like `ada:ft-your-org:custom-model-name-2022-02-15-04-21-04`.
+ type: string
+ minLength: 1
+ maxLength: 40
+ default: null
+ nullable: true
+ required:
+ - training_file
+
+ ListFineTunesResponse:
+ type: object
+ properties:
+ object:
+ type: string
+ data:
+ type: array
+ items:
+ $ref: '#/components/schemas/FineTune'
+ required:
+ - object
+ - data
+
+ ListFineTuneEventsResponse:
+ type: object
+ properties:
+ object:
+ type: string
+ data:
+ type: array
+ items:
+ $ref: '#/components/schemas/FineTuneEvent'
+ required:
+ - object
+ - data
+
+ CreateEmbeddingRequest:
+ type: object
+ additionalProperties: false
+ properties:
+ model: *model_configuration
+ input:
+ description: |
+ Input text to get embeddings for, encoded as a string or array of tokens. To get embeddings for multiple inputs in a single request, pass an array of strings or array of token arrays. Each input must not exceed 8192 tokens in length.
+ example: "The quick brown fox jumped over the lazy dog"
+ oneOf:
+ - type: string
+ default: ''
+ example: "This is a test."
+ - type: array
+ items:
+ type: string
+ default: ''
+ example: "This is a test."
+ - type: array
+ minItems: 1
+ items:
+ type: integer
+ example: "[1212, 318, 257, 1332, 13]"
+ - type: array
+ minItems: 1
+ items:
+ type: array
+ minItems: 1
+ items:
+ type: integer
+ example: "[[1212, 318, 257, 1332, 13]]"
+ user: *end_user_param_configuration
+ required:
+ - model
+ - input
+
+ CreateEmbeddingResponse:
+ type: object
+ properties:
+ object:
+ type: string
+ model:
+ type: string
+ data:
+ type: array
+ items:
+ type: object
+ properties:
+ index:
+ type: integer
+ object:
+ type: string
+ embedding:
+ type: array
+ items:
+ type: number
+ required:
+ - index
+ - object
+ - embedding
+ usage:
+ type: object
+ properties:
+ prompt_tokens:
+ type: integer
+ total_tokens:
+ type: integer
+ required:
+ - prompt_tokens
+ - total_tokens
+ required:
+ - object
+ - model
+ - data
+ - usage
+
+ CreateTranscriptionRequest:
+ type: object
+ additionalProperties: false
+ properties:
+ file:
+ description: |
+ The audio file to transcribe, in one of these formats: mp3, mp4, mpeg, mpga, m4a, wav, or webm.
+ type: string
+ format: binary
+ model:
+ description: |
+ ID of the model to use. Only `whisper-1` is currently available.
+ type: string
+ prompt:
+ description: |
+ An optional text to guide the model's style or continue a previous audio segment. The [prompt](/docs/guides/speech-to-text/prompting) should match the audio language.
+ type: string
+ response_format:
+ description: |
+ The format of the transcript output, in one of these options: json, text, srt, verbose_json, or vtt.
+ type: string
+ default: json
+ temperature:
+ description: |
+ The sampling temperature, between 0 and 1. Higher values like 0.8 will make the output more random, while lower values like 0.2 will make it more focused and deterministic. If set to 0, the model will use [log probability](https://en.wikipedia.org/wiki/Log_probability) to automatically increase the temperature until certain thresholds are hit.
+ type: number
+ default: 0
+ language:
+ description: |
+ The language of the input audio. Supplying the input language in [ISO-639-1](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes) format will improve accuracy and latency.
+ type: string
+ required:
+ - file
+ - model
+
+ # Note: This does not currently support the non-default response format types.
+ CreateTranscriptionResponse:
+ type: object
+ properties:
+ text:
+ type: string
+ required:
+ - text
+
+ CreateTranslationRequest:
+ type: object
+ additionalProperties: false
+ properties:
+ file:
+ description: |
+ The audio file to translate, in one of these formats: mp3, mp4, mpeg, mpga, m4a, wav, or webm.
+ type: string
+ format: binary
+ model:
+ description: |
+ ID of the model to use. Only `whisper-1` is currently available.
+ type: string
+ prompt:
+ description: |
+ An optional text to guide the model's style or continue a previous audio segment. The [prompt](/docs/guides/speech-to-text/prompting) should be in English.
+ type: string
+ response_format:
+ description: |
+ The format of the transcript output, in one of these options: json, text, srt, verbose_json, or vtt.
+ type: string
+ default: json
+ temperature:
+ description: |
+ The sampling temperature, between 0 and 1. Higher values like 0.8 will make the output more random, while lower values like 0.2 will make it more focused and deterministic. If set to 0, the model will use [log probability](https://en.wikipedia.org/wiki/Log_probability) to automatically increase the temperature until certain thresholds are hit.
+ type: number
+ default: 0
+ required:
+ - file
+ - model
+
+ # Note: This does not currently support the non-default response format types.
+ CreateTranslationResponse:
+ type: object
+ properties:
+ text:
+ type: string
+ required:
+ - text
+
+ Engine:
+ title: Engine
+ properties:
+ id:
+ type: string
+ object:
+ type: string
+ created:
+ type: integer
+ nullable: true
+ ready:
+ type: boolean
+ required:
+ - id
+ - object
+ - created
+ - ready
+
+ Model:
+ title: Model
+ properties:
+ id:
+ type: string
+ object:
+ type: string
+ created:
+ type: integer
+ owned_by:
+ type: string
+ required:
+ - id
+ - object
+ - created
+ - owned_by
+
+ OpenAIFile:
+ title: OpenAIFile
+ properties:
+ id:
+ type: string
+ object:
+ type: string
+ bytes:
+ type: integer
+ created_at:
+ type: integer
+ filename:
+ type: string
+ purpose:
+ type: string
+ status:
+ type: string
+ status_details:
+ type: object
+ nullable: true
+ required:
+ - id
+ - object
+ - bytes
+ - created_at
+ - filename
+ - purpose
+
+ FineTune:
+ title: FineTune
+ properties:
+ id:
+ type: string
+ object:
+ type: string
+ created_at:
+ type: integer
+ updated_at:
+ type: integer
+ model:
+ type: string
+ fine_tuned_model:
+ type: string
+ nullable: true
+ organization_id:
+ type: string
+ status:
+ type: string
+ hyperparams:
+ type: object
+ training_files:
+ type: array
+ items:
+ $ref: '#/components/schemas/OpenAIFile'
+ validation_files:
+ type: array
+ items:
+ $ref: '#/components/schemas/OpenAIFile'
+ result_files:
+ type: array
+ items:
+ $ref: '#/components/schemas/OpenAIFile'
+ events:
+ type: array
+ items:
+ $ref: '#/components/schemas/FineTuneEvent'
+ required:
+ - id
+ - object
+ - created_at
+ - updated_at
+ - model
+ - fine_tuned_model
+ - organization_id
+ - status
+ - hyperparams
+ - training_files
+ - validation_files
+ - result_files
+
+ FineTuneEvent:
+ title: FineTuneEvent
+ properties:
+ object:
+ type: string
+ created_at:
+ type: integer
+ level:
+ type: string
+ message:
+ type: string
+ required:
+ - object
+ - created_at
+ - level
+ - message
+
+x-oaiMeta:
+ groups:
+ - id: models
+ title: Models
+ description: |
+ List and describe the various models available in the API. You can refer to the [Models](/docs/models) documentation to understand what models are available and the differences between them.
+ - id: completions
+ title: Completions
+ description: |
+ Given a prompt, the model will return one or more predicted completions, and can also return the probabilities of alternative tokens at each position.
+ - id: chat
+ title: Chat
+ description: |
+ Given a chat conversation, the model will return a chat completion response.
+ - id: edits
+ title: Edits
+ description: |
+ Given a prompt and an instruction, the model will return an edited version of the prompt.
+ - id: images
+ title: Images
+ description: |
+ Given a prompt and/or an input image, the model will generate a new image.
+
+ Related guide: [Image generation](/docs/guides/images)
+ - id: embeddings
+ title: Embeddings
+ description: |
+ Get a vector representation of a given input that can be easily consumed by machine learning models and algorithms.
+
+ Related guide: [Embeddings](/docs/guides/embeddings)
+ - id: audio
+ title: Audio
+ description: |
+ Learn how to turn audio into text.
+
+ Related guide: [Speech to text](/docs/guides/speech-to-text)
+ - id: files
+ title: Files
+ description: |
+ Files are used to upload documents that can be used with features like [Fine-tuning](/docs/api-reference/fine-tunes).
+ - id: fine-tunes
+ title: Fine-tunes
+ description: |
+ Manage fine-tuning jobs to tailor a model to your specific training data.
+
+ Related guide: [Fine-tune models](/docs/guides/fine-tuning)
+ - id: moderations
+ title: Moderations
+ description: |
+ Given a input text, outputs if the model classifies it as violating OpenAI's content policy.
+
+ Related guide: [Moderations](/docs/guides/moderation)
+ - id: searches
+ title: Searches
+ warning:
+ title: This endpoint is deprecated and will be removed on December 3rd, 2022
+ message: We’ve developed new methods with better performance. [Learn more](https://help.openai.com/en/articles/6272952-search-transition-guide).
+ description: |
+ Given a query and a set of documents or labels, the model ranks each document based on its semantic similarity to the provided query.
+
+ Related guide: [Search](/docs/guides/search)
+ - id: classifications
+ title: Classifications
+ warning:
+ title: This endpoint is deprecated and will be removed on December 3rd, 2022
+ message: We’ve developed new methods with better performance. [Learn more](https://help.openai.com/en/articles/6272941-classifications-transition-guide).
+ description: |
+ Given a query and a set of labeled examples, the model will predict the most likely label for the query. Useful as a drop-in replacement for any ML classification or text-to-label task.
+
+ Related guide: [Classification](/docs/guides/classifications)
+ - id: answers
+ title: Answers
+ warning:
+ title: This endpoint is deprecated and will be removed on December 3rd, 2022
+ message: We’ve developed new methods with better performance. [Learn more](https://help.openai.com/en/articles/6233728-answers-transition-guide).
+ description: |
+ Given a question, a set of documents, and some examples, the API generates an answer to the question based on the information in the set of documents. This is useful for question-answering applications on sources of truth, like company documentation or a knowledge base.
+
+ Related guide: [Question answering](/docs/guides/answers)
+ - id: engines
+ title: Engines
+ description: These endpoints describe and provide access to the various engines available in the API.
+ warning:
+ title: The Engines endpoints are deprecated.
+ message: Please use their replacement, [Models](/docs/api-reference/models), instead. [Learn more](https://help.openai.com/TODO).
diff --git a/docs/static/data/organizations-100.csv b/docs/data/organizations-100.csv
similarity index 100%
rename from docs/static/data/organizations-100.csv
rename to docs/data/organizations-100.csv
diff --git a/docs/data/state_of_the_union.txt b/docs/data/state_of_the_union.txt
new file mode 100644
index 000000000..d50175de4
--- /dev/null
+++ b/docs/data/state_of_the_union.txt
@@ -0,0 +1,723 @@
+Madam Speaker, Madam Vice President, our First Lady and Second Gentleman. Members of Congress and the Cabinet. Justices of the Supreme Court. My fellow Americans.
+
+Last year COVID-19 kept us apart. This year we are finally together again.
+
+Tonight, we meet as Democrats Republicans and Independents. But most importantly as Americans.
+
+With a duty to one another to the American people to the Constitution.
+
+And with an unwavering resolve that freedom will always triumph over tyranny.
+
+Six days ago, Russia’s Vladimir Putin sought to shake the foundations of the free world thinking he could make it bend to his menacing ways. But he badly miscalculated.
+
+He thought he could roll into Ukraine and the world would roll over. Instead he met a wall of strength he never imagined.
+
+He met the Ukrainian people.
+
+From President Zelenskyy to every Ukrainian, their fearlessness, their courage, their determination, inspires the world.
+
+Groups of citizens blocking tanks with their bodies. Everyone from students to retirees teachers turned soldiers defending their homeland.
+
+In this struggle as President Zelenskyy said in his speech to the European Parliament “Light will win over darkness.” The Ukrainian Ambassador to the United States is here tonight.
+
+Let each of us here tonight in this Chamber send an unmistakable signal to Ukraine and to the world.
+
+Please rise if you are able and show that, Yes, we the United States of America stand with the Ukrainian people.
+
+Throughout our history we’ve learned this lesson when dictators do not pay a price for their aggression they cause more chaos.
+
+They keep moving.
+
+And the costs and the threats to America and the world keep rising.
+
+That’s why the NATO Alliance was created to secure peace and stability in Europe after World War 2.
+
+The United States is a member along with 29 other nations.
+
+It matters. American diplomacy matters. American resolve matters.
+
+Putin’s latest attack on Ukraine was premeditated and unprovoked.
+
+He rejected repeated efforts at diplomacy.
+
+He thought the West and NATO wouldn’t respond. And he thought he could divide us at home. Putin was wrong. We were ready. Here is what we did.
+
+We prepared extensively and carefully.
+
+We spent months building a coalition of other freedom-loving nations from Europe and the Americas to Asia and Africa to confront Putin.
+
+I spent countless hours unifying our European allies. We shared with the world in advance what we knew Putin was planning and precisely how he would try to falsely justify his aggression.
+
+We countered Russia’s lies with truth.
+
+And now that he has acted the free world is holding him accountable.
+
+Along with twenty-seven members of the European Union including France, Germany, Italy, as well as countries like the United Kingdom, Canada, Japan, Korea, Australia, New Zealand, and many others, even Switzerland.
+
+We are inflicting pain on Russia and supporting the people of Ukraine. Putin is now isolated from the world more than ever.
+
+Together with our allies –we are right now enforcing powerful economic sanctions.
+
+We are cutting off Russia’s largest banks from the international financial system.
+
+Preventing Russia’s central bank from defending the Russian Ruble making Putin’s $630 Billion “war fund” worthless.
+
+We are choking off Russia’s access to technology that will sap its economic strength and weaken its military for years to come.
+
+Tonight I say to the Russian oligarchs and corrupt leaders who have bilked billions of dollars off this violent regime no more.
+
+The U.S. Department of Justice is assembling a dedicated task force to go after the crimes of Russian oligarchs.
+
+We are joining with our European allies to find and seize your yachts your luxury apartments your private jets. We are coming for your ill-begotten gains.
+
+And tonight I am announcing that we will join our allies in closing off American air space to all Russian flights – further isolating Russia – and adding an additional squeeze –on their economy. The Ruble has lost 30% of its value.
+
+The Russian stock market has lost 40% of its value and trading remains suspended. Russia’s economy is reeling and Putin alone is to blame.
+
+Together with our allies we are providing support to the Ukrainians in their fight for freedom. Military assistance. Economic assistance. Humanitarian assistance.
+
+We are giving more than $1 Billion in direct assistance to Ukraine.
+
+And we will continue to aid the Ukrainian people as they defend their country and to help ease their suffering.
+
+Let me be clear, our forces are not engaged and will not engage in conflict with Russian forces in Ukraine.
+
+Our forces are not going to Europe to fight in Ukraine, but to defend our NATO Allies – in the event that Putin decides to keep moving west.
+
+For that purpose we’ve mobilized American ground forces, air squadrons, and ship deployments to protect NATO countries including Poland, Romania, Latvia, Lithuania, and Estonia.
+
+As I have made crystal clear the United States and our Allies will defend every inch of territory of NATO countries with the full force of our collective power.
+
+And we remain clear-eyed. The Ukrainians are fighting back with pure courage. But the next few days weeks, months, will be hard on them.
+
+Putin has unleashed violence and chaos. But while he may make gains on the battlefield – he will pay a continuing high price over the long run.
+
+And a proud Ukrainian people, who have known 30 years of independence, have repeatedly shown that they will not tolerate anyone who tries to take their country backwards.
+
+To all Americans, I will be honest with you, as I’ve always promised. A Russian dictator, invading a foreign country, has costs around the world.
+
+And I’m taking robust action to make sure the pain of our sanctions is targeted at Russia’s economy. And I will use every tool at our disposal to protect American businesses and consumers.
+
+Tonight, I can announce that the United States has worked with 30 other countries to release 60 Million barrels of oil from reserves around the world.
+
+America will lead that effort, releasing 30 Million barrels from our own Strategic Petroleum Reserve. And we stand ready to do more if necessary, unified with our allies.
+
+These steps will help blunt gas prices here at home. And I know the news about what’s happening can seem alarming.
+
+But I want you to know that we are going to be okay.
+
+When the history of this era is written Putin’s war on Ukraine will have left Russia weaker and the rest of the world stronger.
+
+While it shouldn’t have taken something so terrible for people around the world to see what’s at stake now everyone sees it clearly.
+
+We see the unity among leaders of nations and a more unified Europe a more unified West. And we see unity among the people who are gathering in cities in large crowds around the world even in Russia to demonstrate their support for Ukraine.
+
+In the battle between democracy and autocracy, democracies are rising to the moment, and the world is clearly choosing the side of peace and security.
+
+This is a real test. It’s going to take time. So let us continue to draw inspiration from the iron will of the Ukrainian people.
+
+To our fellow Ukrainian Americans who forge a deep bond that connects our two nations we stand with you.
+
+Putin may circle Kyiv with tanks, but he will never gain the hearts and souls of the Ukrainian people.
+
+He will never extinguish their love of freedom. He will never weaken the resolve of the free world.
+
+We meet tonight in an America that has lived through two of the hardest years this nation has ever faced.
+
+The pandemic has been punishing.
+
+And so many families are living paycheck to paycheck, struggling to keep up with the rising cost of food, gas, housing, and so much more.
+
+I understand.
+
+I remember when my Dad had to leave our home in Scranton, Pennsylvania to find work. I grew up in a family where if the price of food went up, you felt it.
+
+That’s why one of the first things I did as President was fight to pass the American Rescue Plan.
+
+Because people were hurting. We needed to act, and we did.
+
+Few pieces of legislation have done more in a critical moment in our history to lift us out of crisis.
+
+It fueled our efforts to vaccinate the nation and combat COVID-19. It delivered immediate economic relief for tens of millions of Americans.
+
+Helped put food on their table, keep a roof over their heads, and cut the cost of health insurance.
+
+And as my Dad used to say, it gave people a little breathing room.
+
+And unlike the $2 Trillion tax cut passed in the previous administration that benefitted the top 1% of Americans, the American Rescue Plan helped working people—and left no one behind.
+
+And it worked. It created jobs. Lots of jobs.
+
+In fact—our economy created over 6.5 Million new jobs just last year, more jobs created in one year
+than ever before in the history of America.
+
+Our economy grew at a rate of 5.7% last year, the strongest growth in nearly 40 years, the first step in bringing fundamental change to an economy that hasn’t worked for the working people of this nation for too long.
+
+For the past 40 years we were told that if we gave tax breaks to those at the very top, the benefits would trickle down to everyone else.
+
+But that trickle-down theory led to weaker economic growth, lower wages, bigger deficits, and the widest gap between those at the top and everyone else in nearly a century.
+
+Vice President Harris and I ran for office with a new economic vision for America.
+
+Invest in America. Educate Americans. Grow the workforce. Build the economy from the bottom up
+and the middle out, not from the top down.
+
+Because we know that when the middle class grows, the poor have a ladder up and the wealthy do very well.
+
+America used to have the best roads, bridges, and airports on Earth.
+
+Now our infrastructure is ranked 13th in the world.
+
+We won’t be able to compete for the jobs of the 21st Century if we don’t fix that.
+
+That’s why it was so important to pass the Bipartisan Infrastructure Law—the most sweeping investment to rebuild America in history.
+
+This was a bipartisan effort, and I want to thank the members of both parties who worked to make it happen.
+
+We’re done talking about infrastructure weeks.
+
+We’re going to have an infrastructure decade.
+
+It is going to transform America and put us on a path to win the economic competition of the 21st Century that we face with the rest of the world—particularly with China.
+
+As I’ve told Xi Jinping, it is never a good bet to bet against the American people.
+
+We’ll create good jobs for millions of Americans, modernizing roads, airports, ports, and waterways all across America.
+
+And we’ll do it all to withstand the devastating effects of the climate crisis and promote environmental justice.
+
+We’ll build a national network of 500,000 electric vehicle charging stations, begin to replace poisonous lead pipes—so every child—and every American—has clean water to drink at home and at school, provide affordable high-speed internet for every American—urban, suburban, rural, and tribal communities.
+
+4,000 projects have already been announced.
+
+And tonight, I’m announcing that this year we will start fixing over 65,000 miles of highway and 1,500 bridges in disrepair.
+
+When we use taxpayer dollars to rebuild America – we are going to Buy American: buy American products to support American jobs.
+
+The federal government spends about $600 Billion a year to keep the country safe and secure.
+
+There’s been a law on the books for almost a century
+to make sure taxpayers’ dollars support American jobs and businesses.
+
+Every Administration says they’ll do it, but we are actually doing it.
+
+We will buy American to make sure everything from the deck of an aircraft carrier to the steel on highway guardrails are made in America.
+
+But to compete for the best jobs of the future, we also need to level the playing field with China and other competitors.
+
+That’s why it is so important to pass the Bipartisan Innovation Act sitting in Congress that will make record investments in emerging technologies and American manufacturing.
+
+Let me give you one example of why it’s so important to pass it.
+
+If you travel 20 miles east of Columbus, Ohio, you’ll find 1,000 empty acres of land.
+
+It won’t look like much, but if you stop and look closely, you’ll see a “Field of dreams,” the ground on which America’s future will be built.
+
+This is where Intel, the American company that helped build Silicon Valley, is going to build its $20 billion semiconductor “mega site”.
+
+Up to eight state-of-the-art factories in one place. 10,000 new good-paying jobs.
+
+Some of the most sophisticated manufacturing in the world to make computer chips the size of a fingertip that power the world and our everyday lives.
+
+Smartphones. The Internet. Technology we have yet to invent.
+
+But that’s just the beginning.
+
+Intel’s CEO, Pat Gelsinger, who is here tonight, told me they are ready to increase their investment from
+$20 billion to $100 billion.
+
+That would be one of the biggest investments in manufacturing in American history.
+
+And all they’re waiting for is for you to pass this bill.
+
+So let’s not wait any longer. Send it to my desk. I’ll sign it.
+
+And we will really take off.
+
+And Intel is not alone.
+
+There’s something happening in America.
+
+Just look around and you’ll see an amazing story.
+
+The rebirth of the pride that comes from stamping products “Made In America.” The revitalization of American manufacturing.
+
+Companies are choosing to build new factories here, when just a few years ago, they would have built them overseas.
+
+That’s what is happening. Ford is investing $11 billion to build electric vehicles, creating 11,000 jobs across the country.
+
+GM is making the largest investment in its history—$7 billion to build electric vehicles, creating 4,000 jobs in Michigan.
+
+All told, we created 369,000 new manufacturing jobs in America just last year.
+
+Powered by people I’ve met like JoJo Burgess, from generations of union steelworkers from Pittsburgh, who’s here with us tonight.
+
+As Ohio Senator Sherrod Brown says, “It’s time to bury the label “Rust Belt.”
+
+It’s time.
+
+But with all the bright spots in our economy, record job growth and higher wages, too many families are struggling to keep up with the bills.
+
+Inflation is robbing them of the gains they might otherwise feel.
+
+I get it. That’s why my top priority is getting prices under control.
+
+Look, our economy roared back faster than most predicted, but the pandemic meant that businesses had a hard time hiring enough workers to keep up production in their factories.
+
+The pandemic also disrupted global supply chains.
+
+When factories close, it takes longer to make goods and get them from the warehouse to the store, and prices go up.
+
+Look at cars.
+
+Last year, there weren’t enough semiconductors to make all the cars that people wanted to buy.
+
+And guess what, prices of automobiles went up.
+
+So—we have a choice.
+
+One way to fight inflation is to drive down wages and make Americans poorer.
+
+I have a better plan to fight inflation.
+
+Lower your costs, not your wages.
+
+Make more cars and semiconductors in America.
+
+More infrastructure and innovation in America.
+
+More goods moving faster and cheaper in America.
+
+More jobs where you can earn a good living in America.
+
+And instead of relying on foreign supply chains, let’s make it in America.
+
+Economists call it “increasing the productive capacity of our economy.”
+
+I call it building a better America.
+
+My plan to fight inflation will lower your costs and lower the deficit.
+
+17 Nobel laureates in economics say my plan will ease long-term inflationary pressures. Top business leaders and most Americans support my plan. And here’s the plan:
+
+First – cut the cost of prescription drugs. Just look at insulin. One in ten Americans has diabetes. In Virginia, I met a 13-year-old boy named Joshua Davis.
+
+He and his Dad both have Type 1 diabetes, which means they need insulin every day. Insulin costs about $10 a vial to make.
+
+But drug companies charge families like Joshua and his Dad up to 30 times more. I spoke with Joshua’s mom.
+
+Imagine what it’s like to look at your child who needs insulin and have no idea how you’re going to pay for it.
+
+What it does to your dignity, your ability to look your child in the eye, to be the parent you expect to be.
+
+Joshua is here with us tonight. Yesterday was his birthday. Happy birthday, buddy.
+
+For Joshua, and for the 200,000 other young people with Type 1 diabetes, let’s cap the cost of insulin at $35 a month so everyone can afford it.
+
+Drug companies will still do very well. And while we’re at it let Medicare negotiate lower prices for prescription drugs, like the VA already does.
+
+Look, the American Rescue Plan is helping millions of families on Affordable Care Act plans save $2,400 a year on their health care premiums. Let’s close the coverage gap and make those savings permanent.
+
+Second – cut energy costs for families an average of $500 a year by combatting climate change.
+
+Let’s provide investments and tax credits to weatherize your homes and businesses to be energy efficient and you get a tax credit; double America’s clean energy production in solar, wind, and so much more; lower the price of electric vehicles, saving you another $80 a month because you’ll never have to pay at the gas pump again.
+
+Third – cut the cost of child care. Many families pay up to $14,000 a year for child care per child.
+
+Middle-class and working families shouldn’t have to pay more than 7% of their income for care of young children.
+
+My plan will cut the cost in half for most families and help parents, including millions of women, who left the workforce during the pandemic because they couldn’t afford child care, to be able to get back to work.
+
+My plan doesn’t stop there. It also includes home and long-term care. More affordable housing. And Pre-K for every 3- and 4-year-old.
+
+All of these will lower costs.
+
+And under my plan, nobody earning less than $400,000 a year will pay an additional penny in new taxes. Nobody.
+
+The one thing all Americans agree on is that the tax system is not fair. We have to fix it.
+
+I’m not looking to punish anyone. But let’s make sure corporations and the wealthiest Americans start paying their fair share.
+
+Just last year, 55 Fortune 500 corporations earned $40 billion in profits and paid zero dollars in federal income tax.
+
+That’s simply not fair. That’s why I’ve proposed a 15% minimum tax rate for corporations.
+
+We got more than 130 countries to agree on a global minimum tax rate so companies can’t get out of paying their taxes at home by shipping jobs and factories overseas.
+
+That’s why I’ve proposed closing loopholes so the very wealthy don’t pay a lower tax rate than a teacher or a firefighter.
+
+So that’s my plan. It will grow the economy and lower costs for families.
+
+So what are we waiting for? Let’s get this done. And while you’re at it, confirm my nominees to the Federal Reserve, which plays a critical role in fighting inflation.
+
+My plan will not only lower costs to give families a fair shot, it will lower the deficit.
+
+The previous Administration not only ballooned the deficit with tax cuts for the very wealthy and corporations, it undermined the watchdogs whose job was to keep pandemic relief funds from being wasted.
+
+But in my administration, the watchdogs have been welcomed back.
+
+We’re going after the criminals who stole billions in relief money meant for small businesses and millions of Americans.
+
+And tonight, I’m announcing that the Justice Department will name a chief prosecutor for pandemic fraud.
+
+By the end of this year, the deficit will be down to less than half what it was before I took office.
+
+The only president ever to cut the deficit by more than one trillion dollars in a single year.
+
+Lowering your costs also means demanding more competition.
+
+I’m a capitalist, but capitalism without competition isn’t capitalism.
+
+It’s exploitation—and it drives up prices.
+
+When corporations don’t have to compete, their profits go up, your prices go up, and small businesses and family farmers and ranchers go under.
+
+We see it happening with ocean carriers moving goods in and out of America.
+
+During the pandemic, these foreign-owned companies raised prices by as much as 1,000% and made record profits.
+
+Tonight, I’m announcing a crackdown on these companies overcharging American businesses and consumers.
+
+And as Wall Street firms take over more nursing homes, quality in those homes has gone down and costs have gone up.
+
+That ends on my watch.
+
+Medicare is going to set higher standards for nursing homes and make sure your loved ones get the care they deserve and expect.
+
+We’ll also cut costs and keep the economy going strong by giving workers a fair shot, provide more training and apprenticeships, hire them based on their skills not degrees.
+
+Let’s pass the Paycheck Fairness Act and paid leave.
+
+Raise the minimum wage to $15 an hour and extend the Child Tax Credit, so no one has to raise a family in poverty.
+
+Let’s increase Pell Grants and increase our historic support of HBCUs, and invest in what Jill—our First Lady who teaches full-time—calls America’s best-kept secret: community colleges.
+
+And let’s pass the PRO Act when a majority of workers want to form a union—they shouldn’t be stopped.
+
+When we invest in our workers, when we build the economy from the bottom up and the middle out together, we can do something we haven’t done in a long time: build a better America.
+
+For more than two years, COVID-19 has impacted every decision in our lives and the life of the nation.
+
+And I know you’re tired, frustrated, and exhausted.
+
+But I also know this.
+
+Because of the progress we’ve made, because of your resilience and the tools we have, tonight I can say
+we are moving forward safely, back to more normal routines.
+
+We’ve reached a new moment in the fight against COVID-19, with severe cases down to a level not seen since last July.
+
+Just a few days ago, the Centers for Disease Control and Prevention—the CDC—issued new mask guidelines.
+
+Under these new guidelines, most Americans in most of the country can now be mask free.
+
+And based on the projections, more of the country will reach that point across the next couple of weeks.
+
+Thanks to the progress we have made this past year, COVID-19 need no longer control our lives.
+
+I know some are talking about “living with COVID-19”. Tonight – I say that we will never just accept living with COVID-19.
+
+We will continue to combat the virus as we do other diseases. And because this is a virus that mutates and spreads, we will stay on guard.
+
+Here are four common sense steps as we move forward safely.
+
+First, stay protected with vaccines and treatments. We know how incredibly effective vaccines are. If you’re vaccinated and boosted you have the highest degree of protection.
+
+We will never give up on vaccinating more Americans. Now, I know parents with kids under 5 are eager to see a vaccine authorized for their children.
+
+The scientists are working hard to get that done and we’ll be ready with plenty of vaccines when they do.
+
+We’re also ready with anti-viral treatments. If you get COVID-19, the Pfizer pill reduces your chances of ending up in the hospital by 90%.
+
+We’ve ordered more of these pills than anyone in the world. And Pfizer is working overtime to get us 1 Million pills this month and more than double that next month.
+
+And we’re launching the “Test to Treat” initiative so people can get tested at a pharmacy, and if they’re positive, receive antiviral pills on the spot at no cost.
+
+If you’re immunocompromised or have some other vulnerability, we have treatments and free high-quality masks.
+
+We’re leaving no one behind or ignoring anyone’s needs as we move forward.
+
+And on testing, we have made hundreds of millions of tests available for you to order for free.
+
+Even if you already ordered free tests tonight, I am announcing that you can order more from covidtests.gov starting next week.
+
+Second – we must prepare for new variants. Over the past year, we’ve gotten much better at detecting new variants.
+
+If necessary, we’ll be able to deploy new vaccines within 100 days instead of many more months or years.
+
+And, if Congress provides the funds we need, we’ll have new stockpiles of tests, masks, and pills ready if needed.
+
+I cannot promise a new variant won’t come. But I can promise you we’ll do everything within our power to be ready if it does.
+
+Third – we can end the shutdown of schools and businesses. We have the tools we need.
+
+It’s time for Americans to get back to work and fill our great downtowns again. People working from home can feel safe to begin to return to the office.
+
+We’re doing that here in the federal government. The vast majority of federal workers will once again work in person.
+
+Our schools are open. Let’s keep it that way. Our kids need to be in school.
+
+And with 75% of adult Americans fully vaccinated and hospitalizations down by 77%, most Americans can remove their masks, return to work, stay in the classroom, and move forward safely.
+
+We achieved this because we provided free vaccines, treatments, tests, and masks.
+
+Of course, continuing this costs money.
+
+I will soon send Congress a request.
+
+The vast majority of Americans have used these tools and may want to again, so I expect Congress to pass it quickly.
+
+Fourth, we will continue vaccinating the world.
+
+We’ve sent 475 Million vaccine doses to 112 countries, more than any other nation.
+
+And we won’t stop.
+
+We have lost so much to COVID-19. Time with one another. And worst of all, so much loss of life.
+
+Let’s use this moment to reset. Let’s stop looking at COVID-19 as a partisan dividing line and see it for what it is: A God-awful disease.
+
+Let’s stop seeing each other as enemies, and start seeing each other for who we really are: Fellow Americans.
+
+We can’t change how divided we’ve been. But we can change how we move forward—on COVID-19 and other issues we must face together.
+
+I recently visited the New York City Police Department days after the funerals of Officer Wilbert Mora and his partner, Officer Jason Rivera.
+
+They were responding to a 9-1-1 call when a man shot and killed them with a stolen gun.
+
+Officer Mora was 27 years old.
+
+Officer Rivera was 22.
+
+Both Dominican Americans who’d grown up on the same streets they later chose to patrol as police officers.
+
+I spoke with their families and told them that we are forever in debt for their sacrifice, and we will carry on their mission to restore the trust and safety every community deserves.
+
+I’ve worked on these issues a long time.
+
+I know what works: Investing in crime preventionand community police officers who’ll walk the beat, who’ll know the neighborhood, and who can restore trust and safety.
+
+So let’s not abandon our streets. Or choose between safety and equal justice.
+
+Let’s come together to protect our communities, restore trust, and hold law enforcement accountable.
+
+That’s why the Justice Department required body cameras, banned chokeholds, and restricted no-knock warrants for its officers.
+
+That’s why the American Rescue Plan provided $350 Billion that cities, states, and counties can use to hire more police and invest in proven strategies like community violence interruption—trusted messengers breaking the cycle of violence and trauma and giving young people hope.
+
+We should all agree: The answer is not to Defund the police. The answer is to FUND the police with the resources and training they need to protect our communities.
+
+I ask Democrats and Republicans alike: Pass my budget and keep our neighborhoods safe.
+
+And I will keep doing everything in my power to crack down on gun trafficking and ghost guns you can buy online and make at home—they have no serial numbers and can’t be traced.
+
+And I ask Congress to pass proven measures to reduce gun violence. Pass universal background checks. Why should anyone on a terrorist list be able to purchase a weapon?
+
+Ban assault weapons and high-capacity magazines.
+
+Repeal the liability shield that makes gun manufacturers the only industry in America that can’t be sued.
+
+These laws don’t infringe on the Second Amendment. They save lives.
+
+The most fundamental right in America is the right to vote – and to have it counted. And it’s under assault.
+
+In state after state, new laws have been passed, not only to suppress the vote, but to subvert entire elections.
+
+We cannot let this happen.
+
+Tonight. I call on the Senate to: Pass the Freedom to Vote Act. Pass the John Lewis Voting Rights Act. And while you’re at it, pass the Disclose Act so Americans can know who is funding our elections.
+
+Tonight, I’d like to honor someone who has dedicated his life to serve this country: Justice Stephen Breyer—an Army veteran, Constitutional scholar, and retiring Justice of the United States Supreme Court. Justice Breyer, thank you for your service.
+
+One of the most serious constitutional responsibilities a President has is nominating someone to serve on the United States Supreme Court.
+
+And I did that 4 days ago, when I nominated Circuit Court of Appeals Judge Ketanji Brown Jackson. One of our nation’s top legal minds, who will continue Justice Breyer’s legacy of excellence.
+
+A former top litigator in private practice. A former federal public defender. And from a family of public school educators and police officers. A consensus builder. Since she’s been nominated, she’s received a broad range of support—from the Fraternal Order of Police to former judges appointed by Democrats and Republicans.
+
+And if we are to advance liberty and justice, we need to secure the Border and fix the immigration system.
+
+We can do both. At our border, we’ve installed new technology like cutting-edge scanners to better detect drug smuggling.
+
+We’ve set up joint patrols with Mexico and Guatemala to catch more human traffickers.
+
+We’re putting in place dedicated immigration judges so families fleeing persecution and violence can have their cases heard faster.
+
+We’re securing commitments and supporting partners in South and Central America to host more refugees and secure their own borders.
+
+We can do all this while keeping lit the torch of liberty that has led generations of immigrants to this land—my forefathers and so many of yours.
+
+Provide a pathway to citizenship for Dreamers, those on temporary status, farm workers, and essential workers.
+
+Revise our laws so businesses have the workers they need and families don’t wait decades to reunite.
+
+It’s not only the right thing to do—it’s the economically smart thing to do.
+
+That’s why immigration reform is supported by everyone from labor unions to religious leaders to the U.S. Chamber of Commerce.
+
+Let’s get it done once and for all.
+
+Advancing liberty and justice also requires protecting the rights of women.
+
+The constitutional right affirmed in Roe v. Wade—standing precedent for half a century—is under attack as never before.
+
+If we want to go forward—not backward—we must protect access to health care. Preserve a woman’s right to choose. And let’s continue to advance maternal health care in America.
+
+And for our LGBTQ+ Americans, let’s finally get the bipartisan Equality Act to my desk. The onslaught of state laws targeting transgender Americans and their families is wrong.
+
+As I said last year, especially to our younger transgender Americans, I will always have your back as your President, so you can be yourself and reach your God-given potential.
+
+While it often appears that we never agree, that isn’t true. I signed 80 bipartisan bills into law last year. From preventing government shutdowns to protecting Asian-Americans from still-too-common hate crimes to reforming military justice.
+
+And soon, we’ll strengthen the Violence Against Women Act that I first wrote three decades ago. It is important for us to show the nation that we can come together and do big things.
+
+So tonight I’m offering a Unity Agenda for the Nation. Four big things we can do together.
+
+First, beat the opioid epidemic.
+
+There is so much we can do. Increase funding for prevention, treatment, harm reduction, and recovery.
+
+Get rid of outdated rules that stop doctors from prescribing treatments. And stop the flow of illicit drugs by working with state and local law enforcement to go after traffickers.
+
+If you’re suffering from addiction, know you are not alone. I believe in recovery, and I celebrate the 23 million Americans in recovery.
+
+Second, let’s take on mental health. Especially among our children, whose lives and education have been turned upside down.
+
+The American Rescue Plan gave schools money to hire teachers and help students make up for lost learning.
+
+I urge every parent to make sure your school does just that. And we can all play a part—sign up to be a tutor or a mentor.
+
+Children were also struggling before the pandemic. Bullying, violence, trauma, and the harms of social media.
+
+As Frances Haugen, who is here with us tonight, has shown, we must hold social media platforms accountable for the national experiment they’re conducting on our children for profit.
+
+It’s time to strengthen privacy protections, ban targeted advertising to children, demand tech companies stop collecting personal data on our children.
+
+And let’s get all Americans the mental health services they need. More people they can turn to for help, and full parity between physical and mental health care.
+
+Third, support our veterans.
+
+Veterans are the best of us.
+
+I’ve always believed that we have a sacred obligation to equip all those we send to war and care for them and their families when they come home.
+
+My administration is providing assistance with job training and housing, and now helping lower-income veterans get VA care debt-free.
+
+Our troops in Iraq and Afghanistan faced many dangers.
+
+One was stationed at bases and breathing in toxic smoke from “burn pits” that incinerated wastes of war—medical and hazard material, jet fuel, and more.
+
+When they came home, many of the world’s fittest and best trained warriors were never the same.
+
+Headaches. Numbness. Dizziness.
+
+A cancer that would put them in a flag-draped coffin.
+
+I know.
+
+One of those soldiers was my son Major Beau Biden.
+
+We don’t know for sure if a burn pit was the cause of his brain cancer, or the diseases of so many of our troops.
+
+But I’m committed to finding out everything we can.
+
+Committed to military families like Danielle Robinson from Ohio.
+
+The widow of Sergeant First Class Heath Robinson.
+
+He was born a soldier. Army National Guard. Combat medic in Kosovo and Iraq.
+
+Stationed near Baghdad, just yards from burn pits the size of football fields.
+
+Heath’s widow Danielle is here with us tonight. They loved going to Ohio State football games. He loved building Legos with their daughter.
+
+But cancer from prolonged exposure to burn pits ravaged Heath’s lungs and body.
+
+Danielle says Heath was a fighter to the very end.
+
+He didn’t know how to stop fighting, and neither did she.
+
+Through her pain she found purpose to demand we do better.
+
+Tonight, Danielle—we are.
+
+The VA is pioneering new ways of linking toxic exposures to diseases, already helping more veterans get benefits.
+
+And tonight, I’m announcing we’re expanding eligibility to veterans suffering from nine respiratory cancers.
+
+I’m also calling on Congress: pass a law to make sure veterans devastated by toxic exposures in Iraq and Afghanistan finally get the benefits and comprehensive health care they deserve.
+
+And fourth, let’s end cancer as we know it.
+
+This is personal to me and Jill, to Kamala, and to so many of you.
+
+Cancer is the #2 cause of death in America–second only to heart disease.
+
+Last month, I announced our plan to supercharge
+the Cancer Moonshot that President Obama asked me to lead six years ago.
+
+Our goal is to cut the cancer death rate by at least 50% over the next 25 years, turn more cancers from death sentences into treatable diseases.
+
+More support for patients and families.
+
+To get there, I call on Congress to fund ARPA-H, the Advanced Research Projects Agency for Health.
+
+It’s based on DARPA—the Defense Department project that led to the Internet, GPS, and so much more.
+
+ARPA-H will have a singular purpose—to drive breakthroughs in cancer, Alzheimer’s, diabetes, and more.
+
+A unity agenda for the nation.
+
+We can do this.
+
+My fellow Americans—tonight , we have gathered in a sacred space—the citadel of our democracy.
+
+In this Capitol, generation after generation, Americans have debated great questions amid great strife, and have done great things.
+
+We have fought for freedom, expanded liberty, defeated totalitarianism and terror.
+
+And built the strongest, freest, and most prosperous nation the world has ever known.
+
+Now is the hour.
+
+Our moment of responsibility.
+
+Our test of resolve and conscience, of history itself.
+
+It is in this moment that our character is formed. Our purpose is found. Our future is forged.
+
+Well I know this nation.
+
+We will meet the test.
+
+To protect freedom and liberty, to expand fairness and opportunity.
+
+We will save democracy.
+
+As hard as these times have been, I am more optimistic about America today than I have been my whole life.
+
+Because I see the future that is within our grasp.
+
+Because I know there is simply nothing beyond our capacity.
+
+We are the only nation on Earth that has always turned every crisis we have faced into an opportunity.
+
+The only nation that can be defined by a single word: possibilities.
+
+So on this night, in our 245th year as a nation, I have come to report on the State of the Union.
+
+And my report is this: the State of the Union is strong—because you, the American people, are strong.
+
+We are stronger today than we were a year ago.
+
+And we will be stronger a year from now than we are today.
+
+Now is our moment to meet and overcome the challenges of our time.
+
+And we will, as one people.
+
+One America.
+
+The United States of America.
+
+May God bless you all. May God protect our troops.
\ No newline at end of file
diff --git a/docs/docs/components/agents.mdx b/docs/docs/components/agents.mdx
deleted file mode 100644
index 70d6dff91..000000000
--- a/docs/docs/components/agents.mdx
+++ /dev/null
@@ -1,2 +0,0 @@
-# Agents
-(coming soon)
\ No newline at end of file
diff --git a/docs/docs/components/chains.mdx b/docs/docs/components/chains.mdx
deleted file mode 100644
index 997066cbd..000000000
--- a/docs/docs/components/chains.mdx
+++ /dev/null
@@ -1,2 +0,0 @@
-# Chains
-(coming soon)
\ No newline at end of file
diff --git a/docs/docs/components/embeddings.mdx b/docs/docs/components/embeddings.mdx
deleted file mode 100644
index c4477db7c..000000000
--- a/docs/docs/components/embeddings.mdx
+++ /dev/null
@@ -1,2 +0,0 @@
-# Embeddings
-(coming soon)
\ No newline at end of file
diff --git a/docs/docs/components/llms.mdx b/docs/docs/components/llms.mdx
deleted file mode 100644
index b6a16aa6c..000000000
--- a/docs/docs/components/llms.mdx
+++ /dev/null
@@ -1,2 +0,0 @@
-# LLMs
-(coming soon)
\ No newline at end of file
diff --git a/docs/docs/components/loaders.mdx b/docs/docs/components/loaders.mdx
deleted file mode 100644
index 8e9289875..000000000
--- a/docs/docs/components/loaders.mdx
+++ /dev/null
@@ -1,2 +0,0 @@
-# Loaders
-(coming soon)
\ No newline at end of file
diff --git a/docs/docs/components/memories.mdx b/docs/docs/components/memories.mdx
deleted file mode 100644
index 6036ddf46..000000000
--- a/docs/docs/components/memories.mdx
+++ /dev/null
@@ -1,2 +0,0 @@
-# Memories
-(coming soon)
\ No newline at end of file
diff --git a/docs/docs/components/prompts.mdx b/docs/docs/components/prompts.mdx
deleted file mode 100644
index d6d702f21..000000000
--- a/docs/docs/components/prompts.mdx
+++ /dev/null
@@ -1,2 +0,0 @@
-# Prompts
-(coming soon)
\ No newline at end of file
diff --git a/docs/docs/components/text-splitters.mdx b/docs/docs/components/text-splitters.mdx
deleted file mode 100644
index 515271233..000000000
--- a/docs/docs/components/text-splitters.mdx
+++ /dev/null
@@ -1,2 +0,0 @@
-# Text Splitters
-(coming soon)
\ No newline at end of file
diff --git a/docs/docs/components/toolkits.mdx b/docs/docs/components/toolkits.mdx
deleted file mode 100644
index b7c8bb7f9..000000000
--- a/docs/docs/components/toolkits.mdx
+++ /dev/null
@@ -1,2 +0,0 @@
-# Toolkits
-(coming soon)
\ No newline at end of file
diff --git a/docs/docs/components/tools.mdx b/docs/docs/components/tools.mdx
deleted file mode 100644
index 9c6538280..000000000
--- a/docs/docs/components/tools.mdx
+++ /dev/null
@@ -1,2 +0,0 @@
-# Tools
-(coming soon)
\ No newline at end of file
diff --git a/docs/docs/components/utilities.mdx b/docs/docs/components/utilities.mdx
deleted file mode 100644
index a25048286..000000000
--- a/docs/docs/components/utilities.mdx
+++ /dev/null
@@ -1,2 +0,0 @@
-# Utilities
-(coming soon)
\ No newline at end of file
diff --git a/docs/docs/components/vector-stores.mdx b/docs/docs/components/vector-stores.mdx
deleted file mode 100644
index 221a89bcc..000000000
--- a/docs/docs/components/vector-stores.mdx
+++ /dev/null
@@ -1,2 +0,0 @@
-# Vector Stores
-(coming soon)
\ No newline at end of file
diff --git a/docs/docs/components/wrappers.mdx b/docs/docs/components/wrappers.mdx
deleted file mode 100644
index 7abde7a69..000000000
--- a/docs/docs/components/wrappers.mdx
+++ /dev/null
@@ -1,2 +0,0 @@
-# Wrappers
-(coming soon)
\ No newline at end of file
diff --git a/docs/docs/contributing/community.md b/docs/docs/contributing/community.md
deleted file mode 100644
index fb18b1172..000000000
--- a/docs/docs/contributing/community.md
+++ /dev/null
@@ -1,38 +0,0 @@
-# Community
-
-## 🤖 Join **Langflow** Discord server
-
- Join us to ask questions and showcase your projects.
-
- Let's bring together the building blocks of AI integration!
-
- Langflow [Discord](https://discord.gg/EqksyE2EX9) server.
-
----
-
-## 🐦 Stay tunned for **Langflow** on Twitter
-
-Follow [@logspace_ai](https://twitter.com/logspace_ai) on **Twitter** to get the latest news about **Langflow**.
-
----
-## ⭐️ Star **Langflow** on GitHub
-
-You can "star" **Langflow** in [GitHub](https://github.com/logspace-ai/langflow).
-
-By adding a star, other users will be able to find it more easily and see that it has been already useful for others.
-
----
-
-## 👀 Watch the GitHub repository for releases
-
-You can "watch" **Langflow** in [GitHub](https://github.com/logspace-ai/langflow).
-
-
-If you select "Watching" instead of "Releases only" you will receive notifications when someone creates a new issue or question. You can also specify that you only want to be notified about new issues, discussions, PRs, etc.
-
-
-Then you can try and help them solve those questions.
-
----
-
-Thanks! 🚀
\ No newline at end of file
diff --git a/docs/docs/contributing/how-contribute.md b/docs/docs/contributing/how-contribute.md
deleted file mode 100644
index cdccc271f..000000000
--- a/docs/docs/contributing/how-contribute.md
+++ /dev/null
@@ -1,62 +0,0 @@
-# How to contribute?
-
-👋 Hello there! We welcome contributions from developers of all levels to our open-source project on [GitHub](https://github.com/logspace-ai/langflow). If you'd like to contribute, please check our contributing guidelines and help make Langflow more accessible.
-
-As an open-source project in a rapidly developing field, we are extremely open
-to contributions, whether in the form of a new feature, improved infra, or better documentation.
-
-To contribute to this project, please follow a ["fork and pull request"](https://docs.github.com/en/get-started/quickstart/contributing-to-projects) workflow.
-
-Please do not try to push directly to this repo unless you are a maintainer.
-
----
-## Local development
-
-You can develop Langflow using docker compose, or locally.
-
-We provide a .vscode/launch.json file for debugging the backend in VSCode, which is a lot faster than using docker compose.
-
-Setting up hooks:
-```bash
-make init
-```
-
-This will install the pre-commit hooks, which will run `make format` on every commit.
-
-It is advised to run `make lint` before pushing to the repository.
-
----
-
-## Run locally
-
-Langflow can run locally by cloning the repository and installing the dependencies. We recommend using a virtual environment to isolate the dependencies from your system.
-
-Before you start, make sure you have the following installed:
-
-- Poetry (>=1.4)
-- Node.js
-
-Then install the dependencies and start the development server for the backend:
-
-```bash
-make install_backend
-make backend
-```
-
-And the frontend:
-
-```bash
-make frontend
-```
-
----
-
-## Docker compose
-
-The following snippet will run the backend and frontend in separate containers. The frontend will be available at `localhost:3000` and the backend at `localhost:7860`.
-
-```bash
-docker compose up --build
-# or
-make dev build=1
-```
\ No newline at end of file
diff --git a/docs/docs/deployment/jina-deployment.md b/docs/docs/deployment/jina-deployment.md
deleted file mode 100644
index bf9df051d..000000000
--- a/docs/docs/deployment/jina-deployment.md
+++ /dev/null
@@ -1,101 +0,0 @@
-# Deploy on Jina AI Cloud
-
-Langflow integrates with langchain-serve to provide a one-command deployment to [Jina AI Cloud](https://github.com/jina-ai/langchain-serve).
-
-Start by installing `langchain-serve` with
-
-```bash
-pip install -U langchain-serve
-```
-
-Then, run:
-
-```bash
-langflow --jcloud
-```
-
-```text
-🎉 Langflow server successfully deployed on Jina AI Cloud 🎉
-🔗 Click on the link to open the server (please allow ~1-2 minutes for the server to startup): https://.wolf.jina.ai/
-📖 Read more about managing the server: https://github.com/jina-ai/langchain-serve
-```
-
-**Complete (example) output:**
-
-```text
- 🚀 Deploying Langflow server on Jina AI Cloud
- ╭───────────────────────── 🎉 Flow is available! ──────────────────────────╮
- │ │
- │ ID langflow-e3dd8820ec │
- │ Gateway (Websocket) wss://langflow-e3dd8820ec.wolf.jina.ai │
- │ Dashboard https://dashboard.wolf.jina.ai/flow/e3dd8820ec │
- │ │
- ╰──────────────────────────────────────────────────────────────────────────╯
- ╭──────────────┬──────────────────────────────────────────────────────────────────────────────╮
- │ App ID │ langflow-e3dd8820ec │
- ├──────────────┼──────────────────────────────────────────────────────────────────────────────┤
- │ Phase │ Serving │
- ├──────────────┼──────────────────────────────────────────────────────────────────────────────┤
- │ Endpoint │ wss://langflow-e3dd8820ec.wolf.jina.ai │
- ├──────────────┼──────────────────────────────────────────────────────────────────────────────┤
- │ App logs │ dashboards.wolf.jina.ai │
- ├──────────────┼──────────────────────────────────────────────────────────────────────────────┤
- │ Swagger UI │ https://langflow-e3dd8820ec.wolf.jina.ai/docs │
- ├──────────────┼──────────────────────────────────────────────────────────────────────────────┤
- │ OpenAPI JSON │ https://langflow-e3dd8820ec.wolf.jina.ai/openapi.json │
- ╰──────────────┴──────────────────────────────────────────────────────────────────────────────╯
-
- 🎉 Langflow server successfully deployed on Jina AI Cloud 🎉
- 🔗 Click on the link to open the server (please allow ~1-2 minutes for the server to startup): https://langflow-e3dd8820ec.wolf.jina.ai/
- 📖 Read more about managing the server: https://github.com/jina-ai/langchain-serve
- ```
-## API Usage (with python)
-
-You can use Langflow directly on your browser or the API endpoints on Jina AI Cloud to interact with the server.
-
-```python
-import requests
-
-BASE_API_URL = "https://langflow-e3dd8820ec.wolf.jina.ai/api/v1/predict"
-FLOW_ID = "864c4f98-2e59-468b-8e13-79cd8da07468"
-# You can tweak the flow by adding a tweaks dictionary
-# e.g {"OpenAI-XXXXX": {"model_name": "gpt-4"}}
-TWEAKS = {
-"ChatOpenAI-g4jEr": {},
-"ConversationChain-UidfJ": {}
-}
-
-def run_flow(message: str, flow_id: str, tweaks: dict = None) -> dict:
- """
- Run a flow with a given message and optional tweaks.
-
- :param message: The message to send to the flow
- :param flow_id: The ID of the flow to run
- :param tweaks: Optional tweaks to customize the flow
- :return: The JSON response from the flow
- """
- api_url = f"{BASE_API_URL}/{flow_id}"
-
- payload = {"message": message}
-
- if tweaks:
- payload["tweaks"] = tweaks
-
- response = requests.post(api_url, json=payload)
- return response.json()
-
-# Setup any tweaks you want to apply to the flow
-print(run_flow("Your message", flow_id=FLOW_ID, tweaks=TWEAKS))
- ```
-
- ```json
-{
- "result": "Great choice! Bangalore in the 1920s was a vibrant city with a rich cultural and political scene. Here are some suggestions for things to see and do:\n\n1. Visit the Bangalore Palace - built in 1887, this stunning palace is a perfect example of Tudor-style architecture. It was home to the Maharaja of Mysore and is now open to the public.\n\n2. Attend a performance at the Ravindra Kalakshetra - this cultural center was built in the 1920s and is still a popular venue for music and dance performances.\n\n3. Explore the neighborhoods of Basavanagudi and Malleswaram - both of these areas have retained much of their old-world charm and are great places to walk around and soak up the atmosphere.\n\n4. Check out the Bangalore Club - founded in 1868, this exclusive social club was a favorite haunt of the British expat community in the 1920s.\n\n5. Attend a meeting of the Indian National Congress - founded in 1885, the INC was a major force in the Indian independence movement and held many meetings and rallies in Bangalore in the 1920s.\n\nHope you enjoy your trip to 1920s Bangalore!"
-}
- ```
-
-:::info
-
-Read more about resource customization, cost, and management of Langflow apps on Jina AI Cloud in the **[langchain-serve](https://github.com/jina-ai/langchain-serve)** repository.
-
-:::
\ No newline at end of file
diff --git a/docs/docs/examples/buffer-memory.mdx b/docs/docs/examples/buffer-memory.mdx
deleted file mode 100644
index c3e886cf9..000000000
--- a/docs/docs/examples/buffer-memory.mdx
+++ /dev/null
@@ -1,25 +0,0 @@
-# Buffer Memory
-
-For certain applications, retaining past interactions is crucial. For that, chains and agents may accept a memory component as one of their input parameters. The `ConversationBufferMemory` component is one of them. It stores messages and extracts them into variables.
-
-## ⛓️ Langflow Example
-
-import ThemedImage from "@theme/ThemedImage";
-import useBaseUrl from "@docusaurus/useBaseUrl";
-import ZoomableImage from "/src/theme/ZoomableImage.js";
-
-
-
-#### Download Flow
-
-:::note LangChain Components 🦜🔗
-
-- [`ConversationBufferMemory`](https://python.langchain.com/docs/modules/memory/how_to/buffer)
-- [`ConversationChain`](https://python.langchain.com/docs/modules/chains/)
-- [`ChatOpenAI`](https://python.langchain.com/docs/modules/model_io/models/chat/integrations/openai)
- :::
diff --git a/docs/docs/examples/conversation-chain.mdx b/docs/docs/examples/conversation-chain.mdx
deleted file mode 100644
index b8cbb11bb..000000000
--- a/docs/docs/examples/conversation-chain.mdx
+++ /dev/null
@@ -1,28 +0,0 @@
-# Conversation Chain
-
-This example shows how to instantiate a simple `ConversationChain` component using a Language Model (LLM). Once the Node Status turns green 🟢, the chat will be ready to take in user messages. Here, we used `ChatOpenAI` to act as the required LLM input, but you can use any LLM for this purpose.
-
-:::info
-Make sure to always get the API key from the provider.
-:::
-
-## ⛓️ Langflow Example
-
-import ThemedImage from "@theme/ThemedImage";
-import useBaseUrl from "@docusaurus/useBaseUrl";
-import ZoomableImage from "/src/theme/ZoomableImage.js";
-
-
-
-#### Download Flow
-
-:::note LangChain Components 🦜🔗
-
-- [`ConversationChain`](https://python.langchain.com/docs/modules/chains/)
-- [`ChatOpenAI`](https://python.langchain.com/docs/modules/model_io/models/chat/integrations/openai)
- :::
diff --git a/docs/docs/examples/csv-loader.mdx b/docs/docs/examples/csv-loader.mdx
deleted file mode 100644
index de808ec3d..000000000
--- a/docs/docs/examples/csv-loader.mdx
+++ /dev/null
@@ -1,42 +0,0 @@
-# CSV Loader
-
-The `VectoStoreAgent` component retrieves information from one or more vector stores. This example shows a `VectoStoreAgent` connected to a CSV file through the `Chroma` vector store. Process description:
-
-- The `CSVLoader` loads a CSV file into a list of documents.
-- The extracted data is then processed by the `CharacterTextSplitter`, which splits the text into small, meaningful chunks (usually sentences).
-- These chunks feed the `Chroma` vector store, which converts them into vectors and stores them for fast indexing.
-- Finally, the agent accesses the information of the vector store through the `VectorStoreInfo` tool.
-
-:::info
-The vector store is used for efficient semantic search, while `VectorStoreInfo` carries information about it, such as its name and description. Embeddings are a way to represent words, phrases, or any entities in a vector space. Learn more about them [here](https://platform.openai.com/docs/guides/embeddings/what-are-embeddings).
-:::
-
-:::tip
-Once you build this flow, ask questions about the data in the chat interface (e.g., number of rows or columns).
-:::
-
-## ⛓️ Langflow Example
-
-import ThemedImage from "@theme/ThemedImage";
-import useBaseUrl from "@docusaurus/useBaseUrl";
-import ZoomableImage from "/src/theme/ZoomableImage.js";
-
-
-
-#### Download Flow
-
-:::note LangChain Components 🦜🔗
-
-- [`CSVLoader`](https://python.langchain.com/docs/modules/data_connection/document_loaders/integrations/csv)
-- [`CharacterTextSplitter`](https://python.langchain.com/docs/modules/data_connection/document_transformers/text_splitters/character_text_splitter)
-- [`OpenAIEmbedding`](https://python.langchain.com/docs/modules/data_connection/text_embedding/integrations/openai)
-- [`Chroma`](https://python.langchain.com/docs/modules/data_connection/vectorstores/integrations/chroma)
-- [`VectorStoreInfo`](https://python.langchain.com/docs/modules/data_connection/vectorstores/)
-- [`OpenAI`](https://python.langchain.com/docs/modules/model_io/models/llms/integrations/openai)
-- [`VectorStoreAgent`](https://python.langchain.com/docs/modules/agents/toolkits/vectorstore)
- :::
diff --git a/docs/docs/examples/how-upload-examples.mdx b/docs/docs/examples/how-upload-examples.mdx
deleted file mode 100644
index 8a4306212..000000000
--- a/docs/docs/examples/how-upload-examples.mdx
+++ /dev/null
@@ -1,29 +0,0 @@
-import ThemedImage from "@theme/ThemedImage";
-import useBaseUrl from "@docusaurus/useBaseUrl";
-import ZoomableImage from "/src/theme/ZoomableImage.js";
-
-# 📚 How to Upload Examples?
-
-We welcome all examples that can help our community learn and explore Langflow's capabilities.
-Langflow Examples is a repository on [GitHub](https://github.com/logspace-ai/langflow_examples) that contains examples of flows that people can use for inspiration and learning.
-
-
-
-
-
-To upload examples, please follow these steps:
-
-1. **Create a Flow:** First, create a flow using Langflow. You can use any of the available templates or create a new flow from scratch.
-
-2. **Export the Flow:** Once you have created a flow, export it as a JSON file. Make sure to give your file a descriptive name and include a brief description of what it does.
-
-3. **Submit a Pull Request:** Finally, submit a pull request (PR) to the examples repo. Make sure to include your JSON file in the PR.
-
-If your example uses any third-party libraries or packages, please include them in your PR and make sure that your example follows the [**⛓️ Langflow Code Of Conduct**](https://github.com/logspace-ai/langflow/blob/dev/CODE_OF_CONDUCT.md).
diff --git a/docs/docs/examples/midjourney-prompt-chain.mdx b/docs/docs/examples/midjourney-prompt-chain.mdx
deleted file mode 100644
index d3ca57c91..000000000
--- a/docs/docs/examples/midjourney-prompt-chain.mdx
+++ /dev/null
@@ -1,40 +0,0 @@
-# MidJourney Prompt Chain
-
-The `MidJourneyPromptChain` can be used to generate imaginative and detailed MidJourney prompts.
-
-For example, type something like:
-
-```bash
-Dragon
-```
-
-And get a response such as:
-
-```text
-Imagine a mysterious forest, the trees are tall and ancient, their branches reaching up to the sky. Through the darkness, a dragon emerges from the shadows, its scales shimmering in the moonlight. Its wingspan is immense, and its eyes glow with a fierce intensity. It is a majestic and powerful creature, one that commands both respect and fear.
-```
-
-:::tip
-Notice that the `ConversationSummaryMemory` stores a summary of the conversation over time. Try using it to create better prompts as the conversation goes on.
-:::
-
-## ⛓️ Langflow Example
-
-import ThemedImage from "@theme/ThemedImage";
-import useBaseUrl from "@docusaurus/useBaseUrl";
-import ZoomableImage from "/src/theme/ZoomableImage.js";
-
-
-
-#### Download Flow
-
-:::note LangChain Components 🦜🔗
-
-- [`OpenAI`](https://python.langchain.com/docs/modules/model_io/models/llms/integrations/openai)
-- [`ConversationSummaryMemory`](https://python.langchain.com/docs/modules/memory/how_to/summary)
- :::
diff --git a/docs/docs/examples/multiple-vectorstores.mdx b/docs/docs/examples/multiple-vectorstores.mdx
deleted file mode 100644
index 36890c866..000000000
--- a/docs/docs/examples/multiple-vectorstores.mdx
+++ /dev/null
@@ -1,52 +0,0 @@
-# Multiple Vector Stores
-
-The example below shows an agent operating with two vector stores built upon different data sources.
-
-The `TextLoader` loads a TXT file, while the `WebBaseLoader` pulls text from webpages into a document format to accessed downstream. The `Chroma` vector stores are created analogous to what we have demonstrated in our [CSV Loader](/examples/csv-loader.mdx) example. Finally, the `VectorStoreRouterAgent` constructs an agent that routes between the vector stores.
-
-:::info
-Get the TXT file used [here](https://github.com/hwchase17/chat-your-data/blob/master/state_of_the_union.txt).
-:::
-
-URL used by the `WebBaseLoader`:
-
-```txt
-https://pt.wikipedia.org/wiki/Harry_Potter
-```
-
-:::tip
-When you build the flow, request information about one of the sources. The agent should be able to use the correct source to generate a response.
-:::
-
-:::info
-Learn more about Multiple Vector Stores [here](https://python.langchain.com/docs/modules/agents/toolkits/vectorstore?highlight=Multiple%20Vector%20Stores#multiple-vectorstores).
-:::
-
-## ⛓️ Langflow Example
-
-import ThemedImage from "@theme/ThemedImage";
-import useBaseUrl from "@docusaurus/useBaseUrl";
-import ZoomableImage from "/src/theme/ZoomableImage.js";
-
-
-
-#### Download Flow
-
-:::note LangChain Components 🦜🔗
-
-- [`WebBaseLoader`](https://python.langchain.com/docs/modules/data_connection/document_loaders/integrations/web_base)
-- [`TextLoader`](https://python.langchain.com/docs/modules/data_connection/document_loaders/integrations/unstructured_file)
-- [`CharacterTextSplitter`](https://python.langchain.com/docs/modules/data_connection/document_transformers/text_splitters/character_text_splitter)
-- [`OpenAIEmbedding`](https://python.langchain.com/docs/modules/data_connection/text_embedding/integrations/openai)
-- [`Chroma`](https://python.langchain.com/docs/modules/data_connection/vectorstores/integrations/chroma)
-- [`VectorStoreInfo`](https://python.langchain.com/docs/modules/data_connection/vectorstores/)
-- [`OpenAI`](https://python.langchain.com/docs/modules/model_io/models/llms/integrations/openai)
-- [`VectorStoreRouterToolkit`](https://python.langchain.com/docs/modules/agents/toolkits/vectorstore)
-- [`VectorStoreRouterAgent`](https://python.langchain.com/docs/modules/agents/toolkits/vectorstore)
-
-:::
diff --git a/docs/docs/examples/python-function.mdx b/docs/docs/examples/python-function.mdx
deleted file mode 100644
index 12a262a3f..000000000
--- a/docs/docs/examples/python-function.mdx
+++ /dev/null
@@ -1,48 +0,0 @@
-# Python Function
-
-Langflow allows you to create a customized tool using the `PythonFunction` connected to a `Tool` component. In this example, Regex is used in Python to validate a pattern.
-
-```python
-import re
-
-def is_brazilian_zipcode(zipcode: str) -> bool:
- pattern = r"\d{5}-?\d{3}"
-
- # Check if the zip code matches the pattern
- if re.match(pattern, zipcode):
- return True
-
- return False
-```
-
-:::tip
-When a tool is called, it is often desirable to have its output returned directly to the user. You can do this by setting the **return_direct** flag for a tool to be True.
-:::
-
-The `AgentInitializer` component is a quick way to construct an agent from the model and tools.
-
-:::info
-The `PythonFunction` is a custom component that uses the LangChain 🦜🔗 tool decorator. Learn more about it [here](https://python.langchain.com/docs/modules/agents/tools/how_to/custom_tools).
-:::
-
-## ⛓️ Langflow Example
-
-import ThemedImage from "@theme/ThemedImage";
-import useBaseUrl from "@docusaurus/useBaseUrl";
-import ZoomableImage from "/src/theme/ZoomableImage.js";
-
-
-
-#### Download Flow
-
-:::note LangChain Components 🦜🔗
-
-- [`PythonFunctionTool`](https://python.langchain.com/docs/modules/agents/tools/how_to/custom_tools)
-- [`ChatOpenAI`](https://python.langchain.com/docs/modules/model_io/models/chat/integrations/openai)
-- [`AgentInitializer`](https://python.langchain.com/docs/modules/agents/)
- :::
diff --git a/docs/docs/examples/serp-api-tool.mdx b/docs/docs/examples/serp-api-tool.mdx
deleted file mode 100644
index a7e1d3d8e..000000000
--- a/docs/docs/examples/serp-api-tool.mdx
+++ /dev/null
@@ -1,45 +0,0 @@
-# Serp API Tool
-
-The [Serp API](https://serpapi.com/) (Search Engine Results Page) allows developers to scrape results from search engines such as Google, Bing and Yahoo, and can be used as in Langflow through the `Search` component.
-
-:::info
-To use the Serp API, you first need to sign up [Serp API](https://serpapi.com/) for an API key on the provider's website.
-:::
-
-Here, the `ZeroShotPrompt` component specifies a prompt template for the `ZeroShotAgent`. Set a _Prefix_ and _Suffix_ with rules for the agent to obey. In the example, we used default templates.
-
-The `LLMChain` is a simple chain that takes in a prompt template, formats it with the user input, and returns the response from an LLM.
-
-:::tip
-In this example, we used [`ChatOpenAI`](https://platform.openai.com/) as the LLM, but feel free to experiment with other Language Models!
-:::
-
-The `ZeroShotAgent` takes the `LLMChain` and the `Search` tool as inputs, using the tool to find information when necessary.
-
-:::info
-Learn more about the Serp API [here](https://python.langchain.com/docs/modules/agents/tools/integrations/serpapi).
-:::
-
-## ⛓️ Langflow Example
-
-import ThemedImage from "@theme/ThemedImage";
-import useBaseUrl from "@docusaurus/useBaseUrl";
-import ZoomableImage from "/src/theme/ZoomableImage.js";
-
-
-
-#### Download Flow
-
-:::note LangChain Components 🦜🔗
-
-- [`ZeroShotPrompt`](https://python.langchain.com/docs/modules/model_io/prompts/prompt_templates/)
-- [`OpenAI`](https://python.langchain.com/docs/modules/model_io/models/llms/integrations/openai)
-- [`LLMChain`](https://python.langchain.com/docs/modules/chains/foundational/llm_chain)
-- [`Search`](https://python.langchain.com/docs/modules/agents/tools/integrations/serpapi)
-- [`ZeroShotAgent`](https://python.langchain.com/docs/modules/agents/how_to/custom_mrkl_agent)
- :::
diff --git a/docs/docs/getting-started/creating-flows.mdx b/docs/docs/getting-started/creating-flows.mdx
deleted file mode 100644
index b09951f42..000000000
--- a/docs/docs/getting-started/creating-flows.mdx
+++ /dev/null
@@ -1,37 +0,0 @@
-import ThemedImage from "@theme/ThemedImage";
-import useBaseUrl from "@docusaurus/useBaseUrl";
-import ZoomableImage from "/src/theme/ZoomableImage.js";
-import ReactPlayer from "react-player";
-
-# 🎨 Creating Flows
-
-## Compose
-
-Creating flows with Langflow is easy. Drag sidebar components onto the canvas and connect them together to create your pipeline. Langflow provides a range of [LangChain components](https://python.langchain.com/docs/modules/) to choose from, including LLMs, prompt serializers, agents, and chains.
-
-
-
-## Fork
-
-The easiest way to start with Langflow is by forking a **community example**. Forking an example stores a copy in your project collection, allowing you to edit and save the modified version as a new flow.
-
-
-
-
-
-## Build
-
-Building a flow means validating if the components have prerequisites fulfilled and are properly instantiated. When a chat message is sent, the flow will run for the first time, executing the pipeline.
-
-
-
-
diff --git a/docs/docs/getting-started/hugging-face-spaces.mdx b/docs/docs/getting-started/hugging-face-spaces.mdx
deleted file mode 100644
index e8b3852a9..000000000
--- a/docs/docs/getting-started/hugging-face-spaces.mdx
+++ /dev/null
@@ -1,20 +0,0 @@
-# 🤗 HuggingFace Spaces
-
-A fully featured version of Langflow can be accessed via HuggingFace spaces with no installation required.
-
-import ThemedImage from "@theme/ThemedImage";
-import useBaseUrl from "@docusaurus/useBaseUrl";
-import ZoomableImage from "/src/theme/ZoomableImage.js";
-
-
-
-
-
-Check out Langflow on [HuggingFace Spaces](https://huggingface.co/spaces/Logspace/Langflow).
diff --git a/docs/docs/getting-started/installation.md b/docs/docs/getting-started/installation.md
deleted file mode 100644
index c3ad54239..000000000
--- a/docs/docs/getting-started/installation.md
+++ /dev/null
@@ -1,15 +0,0 @@
-# 📦 How to install?
-
-## Installation
-
-You can install Langflow from pip:
-
-```bash
-pip install langflow
-```
-
-Next, run:
-
-```bash
-langflow
-```
\ No newline at end of file
diff --git a/docs/docs/guidelines/chat-interface.mdx b/docs/docs/guidelines/chat-interface.mdx
deleted file mode 100644
index c09f00076..000000000
--- a/docs/docs/guidelines/chat-interface.mdx
+++ /dev/null
@@ -1,64 +0,0 @@
-import ThemedImage from "@theme/ThemedImage";
-import useBaseUrl from "@docusaurus/useBaseUrl";
-import ZoomableImage from "/src/theme/ZoomableImage.js";
-import ReactPlayer from "react-player";
-
-# Chat Interface
-
-Langflow’s chat interface provides a user-friendly experience and functionality to interact with the model and customize the prompt. The sidebar brings options that allow users to view and edit pre-defined prompt variables. This feature facilitates quick experimentation by enabling the modification of variable values right in the chat.
-
-
-
-
-
-
-Notice that editing variables in the chat interface take place temporarily and won’t change their original value in the components once the chat is closed.
-
-
-
-
-
-To view the complete prompt in its original, structured format, click the "Display Prompt" option. This feature lets you see the prompt exactly as it entered the model.
-
-
-
-
-
-
-In the chat interface, you can redefine which variable should be interpreted as the chat input. This gives you control over these inputs and allows dynamic and creative interactions.
-
-
-
-
diff --git a/docs/docs/guidelines/collection.mdx b/docs/docs/guidelines/collection.mdx
deleted file mode 100644
index c0616b2e2..000000000
--- a/docs/docs/guidelines/collection.mdx
+++ /dev/null
@@ -1,13 +0,0 @@
-import ThemedImage from '@theme/ThemedImage';
-import useBaseUrl from '@docusaurus/useBaseUrl';
-import ZoomableImage from '/src/theme/ZoomableImage.js';
-import ReactPlayer from 'react-player';
-
-# Collection
-
-A collection is a snapshot of the flows available in the database. You can download your entire collection for local storage and upload it anytime for future use.
-
-
-
-
diff --git a/docs/docs/guidelines/components.mdx b/docs/docs/guidelines/components.mdx
deleted file mode 100644
index ba2f5ff33..000000000
--- a/docs/docs/guidelines/components.mdx
+++ /dev/null
@@ -1,59 +0,0 @@
-import ThemedImage from "@theme/ThemedImage";
-import useBaseUrl from "@docusaurus/useBaseUrl";
-import ZoomableImage from "/src/theme/ZoomableImage.js";
-import ReactPlayer from "react-player";
-
-# Component
-
-Components are the building blocks of the flows. They are made of inputs, outputs, and parameters that define their functionality, providing a convenient and straightforward way to compose LLM-based applications. Learn more about components and how they work in the LangChain [documentation](https://docs.langchain.com/docs/category/components) section.
-
-### Component's Features
-
-
- During the flow creation process, you will notice handles (colored circles)
- attached to one or both sides of a component. These handles represent the
- availability to connect to other components, while their colors are type hints
- (hover over a handle to see connection details).
-
-
-
- For example, if you select a ConversationChain component, you
- will see orange o and purple{" "}
- o input handles. They indicate that
- this component accepts an LLM and a Memory component as inputs. The red
- asterisk * means that at least one input
- of that type is required.
-
-
-
-
-
-
-
- On the top right corner, you will find the component status icon 🔴. Make the
- necessary connections, build the flow (⚡ zap icon on the bottom right of the
- canvas) and once the validation is completed, the status of each validated
- component should light green 🟢. Hover over the component status to reveal the
- outputs going through it in case of success, or the detected error in case of
- failure.
-
-
----
-
-### Component's Parameters
-
-Langflow components can be edited in the component settings button. Hide parameters to reduce complexity and keep the canvas clean and intuitive for experimentation.
-
-
-
-
diff --git a/docs/docs/guidelines/features.mdx b/docs/docs/guidelines/features.mdx
deleted file mode 100644
index cf8b09c6e..000000000
--- a/docs/docs/guidelines/features.mdx
+++ /dev/null
@@ -1,69 +0,0 @@
-import ThemedImage from "@theme/ThemedImage";
-import useBaseUrl from "@docusaurus/useBaseUrl";
-import ZoomableImage from "/src/theme/ZoomableImage.js";
-import ReactPlayer from "react-player";
-
-# Features
-
-
- When you click for New Project, you will see on the top left corner of the
- screen, some options such as Import, Export,{" "}
- Code and Save, as displayed in the image
- below:
-
-
-
-
-
-
-
- Further down, we will explain each of these options.
-
-
----
-
-### Import and Export
-
-Flows can be exported and imported as JSON files.
-
-:::caution
-Watch out for API keys being stored in local files.
-:::
-
----
-
-### Code
-
-The Code button shows snippets to use your flow as a Python object or an API.
-
-**Python Code**
-
-Through the Langflow package, you can load a flow from a JSON file and use it as a LangChain object.
-
-```py
-from langflow import load_flow_from_json
-
-flow = load_flow_from_json("path/to/flow.json")
-# Now you can use it like any chain
-flow("Hey, have you heard of Langflow?")
-```
-
-**API**
-
-Once you save a flow, the API endpoint is created with your latest changes. Click the "code" button to use that flow as an API. You can post-adjust component parameters using the global variable TWEAKS.
-
-The example below shows a Python script making a POST request to a local API endpoint, which gets a prediction based on the message input.
-
-
-
-
diff --git a/docs/docs/guidelines/prompt-customization.mdx b/docs/docs/guidelines/prompt-customization.mdx
deleted file mode 100644
index 8e2f409f9..000000000
--- a/docs/docs/guidelines/prompt-customization.mdx
+++ /dev/null
@@ -1,86 +0,0 @@
-import ThemedImage from "@theme/ThemedImage";
-import useBaseUrl from "@docusaurus/useBaseUrl";
-import ZoomableImage from "/src/theme/ZoomableImage.js";
-import ReactPlayer from "react-player";
-
-# Prompt Customization
-
-The prompt template allows users to create prompts and define variables that provide control over instructing the model.
-
-
-
-
-
-
-Variables can be used to define instructions, questions, context, inputs, or examples for the model and can be created with any chosen name in curly brackets, e.g., `{variable_name}`. They act as placeholders for parts of the text that can be easily modified.
-
-
-
-
-
-
-Once inserted, these variables are immediately recognized as new fields in the prompt component. Here, you can define their values within the component itself or leave a field empty to be adjusted over the chat interface.
-
-
-
-
-
-You can also use documents or output parsers as prompt variables. By plugging them into prompt handles, they’ll disable and feed that input field.
-
-
-
-
-
-
-
-With this, users can interact with documents, webpages, or any other type of content directly from the prompt, which allows for seamless integration of external resources with the language model.
-
-
-
-If working with an interactive (chat-like) flow, remember to keep one of the input variables empty to behave as the chat input.
-
-
-
-
-
-
diff --git a/docs/docs/guides/chatprompttemplate_guide.mdx b/docs/docs/guides/chatprompttemplate_guide.mdx
deleted file mode 100644
index 422bb6420..000000000
--- a/docs/docs/guides/chatprompttemplate_guide.mdx
+++ /dev/null
@@ -1,78 +0,0 @@
-import ThemedImage from "@theme/ThemedImage";
-import useBaseUrl from "@docusaurus/useBaseUrl";
-import ZoomableImage from "/src/theme/ZoomableImage.js";
-import ReactPlayer from "react-player";
-
-# Building chatbots with System Message
-
-## Overview
-
-In this guide, we will modify the "Basic Chat with Prompt and History" example, integrating the ChatPromptTemplate with the SystemMessagePromptTemplate and HumanMessagePromptTemplate components. By following these steps, you'll be able to build a personalized chatbot that can interpret and respond based on user-defined System messages.
-
-## Interactive Guide
-
-
-
-## Step-by-Step Instructions
-
-1. Navigate to the "Community Examples" section.
-
-2. Locate the "Basic Chat with Prompt and History" example, and click on "Fork Example".
-
-3. Once in the editor, find the "PromptTemplate" component and remove it.
-
-4. Now, add these three components: ChatPromptTemplate, SystemMessagePromptTemplate, and HumanMessagePromptTemplate.
-
-> **Note:** Remember to set the model to gpt-3.5-turbo-0613 or the most up-to-date version. The latest models have improved capabilities to comprehend System messages.
-
-5. Open the "Prompt" field on the SystemMessagePromptTemplate component.
-
-6. Enter the text: `You are a {role} that {behavior}.`
-
-7. Save your changes by clicking on "Check & Save".
-
-8. Define the 'role' variable by typing "obedient assistant".
-
-9. Next, navigate to the HumanMessagePromptTemplate and open the "Prompt" field.
-
-10. Here, simply enter `{input}`.
-
-11. Save these changes by clicking on "Check & Save".
-
-12. Now, you should see your flow populated with the variables you defined.
-
-13. In the Memory component, set the 'Input Key' to "input".
-
-> **Tip:** When using a Memory component with multiple variables, it's crucial to specify which variable should be used to generate the conversation history.
-
-14. Click on the "Build" button to implement your changes.
-
-15. Open the chat interface to test your modifications.
-
-16. You should now be able to see and use the defined variables in the chat interface.
-
-17. Click on 'role' to examine the variable you established in the canvas.
-
-18. Now, let's define the 'behavior' variable.
-
-19. Enter the text: "writes the word 'Langflow' at the end of every sentence."
-
-20. Test your chatbot by typing "How can you help me?"
-
-21. If everything was set up correctly, your chatbot should respond appropriately, following the defined behavior.
-
-22. Congratulations! You have successfully customized and built your chatbot.
-
-By following these instructions, you have created a dynamic chatbot capable of understanding and responding based on custom system messages, enhancing the user experience and interaction. Enjoy your personalized assistant!
diff --git a/docs/docs/guides/loading_document.mdx b/docs/docs/guides/loading_document.mdx
deleted file mode 100644
index d760e9124..000000000
--- a/docs/docs/guides/loading_document.mdx
+++ /dev/null
@@ -1,64 +0,0 @@
-import ThemedImage from "@theme/ThemedImage";
-import useBaseUrl from "@docusaurus/useBaseUrl";
-import ZoomableImage from "/src/theme/ZoomableImage.js";
-import ReactPlayer from "react-player";
-
-# Integrating documents with prompt variables
-
-## Overview
-
-This guide takes you through the process of augmenting the "Basic Chat with Prompt and History" example. You'll learn how to embed documents as context into the PromptTemplate component utilizing a WebBaseLoader.
-
-## Interactive Guide
-
-
-
-## Step-by-Step Instructions
-
-1. Start by navigating to the "Community Examples" section.
-
-2. Find the "Basic Chat with Prompt and History" example and click on "Fork Example".
-
-3. In the editor, open the "Template" field.
-
-4. Here, introduce the `{context}` variable, placing it somewhere before the "Current conversation:" text.
-
-5. Once done, save your changes by clicking on "Check & Save".
-
-6. Next, open the search bar and type "web".
-
-7. Drag and drop a WebBaseLoader (or any other loader of your choice) onto the canvas.
-
-8. Connect this loader to the `{context}` variable that we just added.
-
-9. In the "Web Page" field, enter "https://langflow.org/how-upload-examples".
-
-10. Now, click on "ConversationBufferMemory".
-
-11. In the "Input Key" field, enter "text" to define the Chat variable.
-
-> **Tip:** When defining more than one variable and using a Memory component, it's crucial to specify which variable should be used to create the conversation history.
-
-12. Click on the "Build" button to implement your changes.
-
-13. Open the chat interface to test your modifications.
-
-14. Try asking something like, "How do I upload examples?"
-
-15. Click on "Display Prompt" to view your template.
-
-16. Now, you can see what the model used as a basis to generate its response.
-
-By following these instructions, you have successfully loaded a document into a PromptTemplate variable, allowing for more enriched and context-aware chat responses. This customization enhances user interaction by integrating relevant document content into the chat flow.
diff --git a/docs/docs/index.mdx b/docs/docs/index.mdx
deleted file mode 100644
index 4ec4a300d..000000000
--- a/docs/docs/index.mdx
+++ /dev/null
@@ -1,18 +0,0 @@
-# 👋 Welcome to Langflow
-
-Langflow is an easy way to prototype [LangChain](https://github.com/hwchase17/langchain) flows. The drag-and-drop feature allows quick and effortless experimentation, while the built-in chat interface facilitates real-time interaction. It provides options to edit prompt parameters, create chains and agents, track thought processes, and export flows.
-
-import ThemedImage from "@theme/ThemedImage";
-import useBaseUrl from "@docusaurus/useBaseUrl";
-import ZoomableImage from "/src/theme/ZoomableImage.js";
-
-
+
+
+
+
+
+
+LangFlow is a GUI for [LangChain](https://github.com/hwchase17/langchain){.internal-link target=_blank}, designed with [react-flow](https://github.com/wbkd/react-flow){.internal-link target=_blank}.
+The drag-and-drop feature provides a quick and effortless way to experiment and prototype, and the built-in chat interface enables real-time interaction. With LangFlow, you can edit prompt parameters, create chains and agents, track the agent’s thought process, and export your flow.
\ No newline at end of file
diff --git a/docs/installation.md b/docs/installation.md
new file mode 100644
index 000000000..bfb0e0d8b
--- /dev/null
+++ b/docs/installation.md
@@ -0,0 +1,60 @@
+# How to install?
+## Installation
+
+You can install LangFlow from pip:
+
+```py
+pip install langflow
+```
+
+Next, run:
+
+```py
+python -m langflow
+```
+
+or
+
+```py
+langflow
+```
+
+---
+
+## Run Locally
+
+Run locally by cloning the repository and installing the dependencies. We recommend using a virtual environment to isolate the dependencies from your system.
+
+
+
+Before you start, make sure you have the following installed:
+
+- Poetry
+- Node.js
+
+For the backend, you will need to install the dependencies and start the development server.
+
+```bash
+poetry install
+make run_backend
+```
+
+For the frontend, you will need to install the dependencies and start the development server.
+
+```bash
+cd src/frontend
+npm install
+npm start
+```
+
+---
+
+## Docker compose
+
+This will run the backend and frontend in separate containers. The frontend will be available at `localhost:3000` and the backend at `localhost:7860`.
+
+```bash
+docker compose up --build
+# or
+make dev build=1
+```
diff --git a/docs/javascripts/mendablesearch.js b/docs/javascripts/mendablesearch.js
new file mode 100644
index 000000000..9f3ddbdcb
--- /dev/null
+++ b/docs/javascripts/mendablesearch.js
@@ -0,0 +1,90 @@
+document.addEventListener('DOMContentLoaded', () => {
+ // Load the external dependencies
+ function loadScript(src, onLoadCallback) {
+ const script = document.createElement('script');
+ script.src = src;
+ script.onload = onLoadCallback;
+ document.head.appendChild(script);
+ }
+
+ function createRootElement() {
+ const rootElement = document.createElement('div');
+ rootElement.id = 'my-component-root';
+ document.body.appendChild(rootElement);
+ return rootElement;
+ }
+
+
+
+ function initializeMendable() {
+ const rootElement = createRootElement();
+ const { MendableFloatingButton } = Mendable;
+
+ const textObserver = new MutationObserver(() => {
+ const textArea = document.querySelector('#headlessui-portal-root textarea');
+ if(textArea) {
+ let sibling = textArea.nextSibling;
+ if(sibling){
+ if(textArea.scrollHeight == 37) {
+ sibling.style.display = "none";
+ } else {
+ sibling.style.display = "block";
+ }
+ }
+
+ }
+ });
+
+ const observer = new MutationObserver(() => {
+ const textArea = document.querySelector('#headlessui-portal-root textarea');
+ if(textArea){
+ let sibling = textArea.nextSibling;
+ if(sibling){
+ sibling.style.display = "none";
+ }
+ textObserver.observe(textArea, {attributes: true, childList: true, subtree: true})
+ }
+ });
+
+ observer.observe(rootElement, {attributes: true, childList: true, subtree: true})
+
+
+ const iconSpan1 = React.createElement('img', {
+ src: 'img/chain.png',
+ style: {width: '40px'}
+ }, null);
+
+ const icon = React.createElement('p', {
+ style: { color: '#ffffff', fontSize: '22px',width: '48px', height: '48px', margin: '0px', padding: '0px', display: 'flex', alignItems: 'center', justifyContent: 'center', textAlign: 'center' },
+ }, [iconSpan1]);
+
+
+
+
+ const mendableFloatingButton = React.createElement(
+ MendableFloatingButton,
+ {
+ style: { darkMode: true, accentColor: '#4051b5' },
+ floatingButtonStyle: { color: '#ffffff', backgroundColor: '#010810' },
+ anon_key: 'b7f52734-297c-41dc-8737-edbd13196394', // Mendable Search Public ANON key, ok to be public
+ messageSettings: {
+ openSourcesInNewTab: false,
+ },
+ showSimpleSearch: false,
+ icon: icon,
+ }
+ );
+
+ ReactDOM.render(mendableFloatingButton, rootElement);
+ }
+
+ loadScript('https://unpkg.com/react@17/umd/react.production.min.js', () => {
+ loadScript('https://unpkg.com/react-dom@17/umd/react-dom.production.min.js', () => {
+ loadScript('https://unpkg.com/@mendable/search@0.0.93/dist/umd/mendable.min.js', initializeMendable);
+ });
+ });
+});
+
+
+
+
diff --git a/docs/json-agent.md b/docs/json-agent.md
new file mode 100644
index 000000000..b854a53cc
--- /dev/null
+++ b/docs/json-agent.md
@@ -0,0 +1,43 @@
+The `JsonAgent` is an agent designed to interact with large JSON/dict objects.
+
+
+
+{width=50%}
+{width=50%}
+
+
+
+To understand more, check out the LangChain [JsonAgent](https://python.langchain.com/en/latest/modules/agents/toolkits/examples/json.html){.internal-link target=\_blank} documentation.
+
+---
+
+### ⛓️LangFlow example
+
+{width=100%}
+{width=100%}
+
+
+
+[Download Flow](data/Json_agent.json){: .md-button download="Json_agent"}
+
+
+
+`JsonSpec` will define the **Max value length** of the input and output of the agent. You can get the **Path** file [here](https://raw.githubusercontent.com/openai/openai-openapi/master/openapi.yaml){.internal-link target=\_blank}.
+
+
+
+**Max value length**:
+
+```txt
+400
+```
+
+For the example, we used `OpenAI` as the LLM, but you can use any LLM that has an API. Make sure to get the API key from the LLM provider. For example, [OpenAI](https://platform.openai.com/){.internal-link target=\_blank} requires you to create an account to get your API key.
+
+
+
+Check out the [OpenAI](https://platform.openai.com/docs/introduction/overview){.internal-link target=\_blank} documentation to learn more about the API and the options that contain in the node.
+
+
+
+`JsonToolkit` for interacting with the JSON spec.
diff --git a/docs/langflow-examples.md b/docs/langflow-examples.md
new file mode 100644
index 000000000..f91be96df
--- /dev/null
+++ b/docs/langflow-examples.md
@@ -0,0 +1,18 @@
+# How to Upload Examples
+
+We welcome all examples that can help our community learn and explore the features of our open-source software.
+Langflow Examples is a repository on [GitHub](https://github.com/logspace-ai/langflow_examples){.internal-link target=_blank} that contains examples of flows that you can upload to Langflow.
+
+To upload examples to Langflow, please follow these steps:
+
+1. **Create a Flow:** First, create a flow using Langflow. You can use any of the available templates or create a new flow from scratch.
+
+2. **Export the Flow:**: Once you have created a flow, export it as a .json file. Make sure to give your file a descriptive name and include a brief description of what your flow does.
+
+3. **Submit a Pull Request**: Finally, submit a pull request (PR) to the examples folder. Make sure to include your .json file in the PR.
+
+Here are some additional guidelines to follow when submitting examples:
+
+Please make sure that your example follows the [**⛓️ Langflow code of conduct**](https://github.com/logspace-ai/langflow/blob/dev/CODE_OF_CONDUCT.md){.internal-link target=_blank}.
+
+If your example uses any third-party libraries or packages, please include them in your PR.
diff --git a/docs/langflow.md b/docs/langflow.md
new file mode 100644
index 000000000..b7f8c0a40
--- /dev/null
+++ b/docs/langflow.md
@@ -0,0 +1,24 @@
+# ⛓️ LangFlow
+
- );
-};
-
-export default ZoomableImage;
diff --git a/docs/static/.nojekyll b/docs/static/.nojekyll
deleted file mode 100644
index e69de29bb..000000000
diff --git a/docs/static/CNAME b/docs/static/CNAME
deleted file mode 100644
index 3e6c5c023..000000000
--- a/docs/static/CNAME
+++ /dev/null
@@ -1 +0,0 @@
-langflow.org
\ No newline at end of file
diff --git a/docs/static/img/Logspace.png b/docs/static/img/Logspace.png
deleted file mode 100644
index 20ee9c5e9..000000000
Binary files a/docs/static/img/Logspace.png and /dev/null differ
diff --git a/docs/static/img/basic-chat.png b/docs/static/img/basic-chat.png
deleted file mode 100644
index a820bfe68..000000000
Binary files a/docs/static/img/basic-chat.png and /dev/null differ
diff --git a/docs/static/img/buffer-memory.png b/docs/static/img/buffer-memory.png
deleted file mode 100644
index 90f4fdd9c..000000000
Binary files a/docs/static/img/buffer-memory.png and /dev/null differ
diff --git a/docs/static/img/chat_interface.png b/docs/static/img/chat_interface.png
deleted file mode 100644
index 59dc31a67..000000000
Binary files a/docs/static/img/chat_interface.png and /dev/null differ
diff --git a/docs/static/img/chat_interface2.png b/docs/static/img/chat_interface2.png
deleted file mode 100644
index f904e4a5e..000000000
Binary files a/docs/static/img/chat_interface2.png and /dev/null differ
diff --git a/docs/static/img/chat_interface3.png b/docs/static/img/chat_interface3.png
deleted file mode 100644
index 4216530c4..000000000
Binary files a/docs/static/img/chat_interface3.png and /dev/null differ
diff --git a/docs/static/img/chat_interface4.png b/docs/static/img/chat_interface4.png
deleted file mode 100644
index fffd4129c..000000000
Binary files a/docs/static/img/chat_interface4.png and /dev/null differ
diff --git a/docs/static/img/community-examples.png b/docs/static/img/community-examples.png
deleted file mode 100644
index 1fc5c36bc..000000000
Binary files a/docs/static/img/community-examples.png and /dev/null differ
diff --git a/docs/static/img/csv-loader.png b/docs/static/img/csv-loader.png
deleted file mode 100644
index 7a6ee82cb..000000000
Binary files a/docs/static/img/csv-loader.png and /dev/null differ
diff --git a/docs/static/img/favicon.ico b/docs/static/img/favicon.ico
deleted file mode 100644
index 136c4c835..000000000
Binary files a/docs/static/img/favicon.ico and /dev/null differ
diff --git a/docs/static/img/features.png b/docs/static/img/features.png
deleted file mode 100644
index 0e55c5a04..000000000
Binary files a/docs/static/img/features.png and /dev/null differ
diff --git a/docs/static/img/hugging-face.png b/docs/static/img/hugging-face.png
deleted file mode 100644
index 3910ac075..000000000
Binary files a/docs/static/img/hugging-face.png and /dev/null differ
diff --git a/docs/static/img/langflow_canvas.png b/docs/static/img/langflow_canvas.png
deleted file mode 100644
index 727355074..000000000
Binary files a/docs/static/img/langflow_canvas.png and /dev/null differ
diff --git a/docs/static/img/logo.svg b/docs/static/img/logo.svg
deleted file mode 100644
index 136c4c835..000000000
Binary files a/docs/static/img/logo.svg and /dev/null differ
diff --git a/docs/static/img/midjourney-prompt-chain.png b/docs/static/img/midjourney-prompt-chain.png
deleted file mode 100644
index c17571cbe..000000000
Binary files a/docs/static/img/midjourney-prompt-chain.png and /dev/null differ
diff --git a/docs/static/img/multiple-vectorstores.png b/docs/static/img/multiple-vectorstores.png
deleted file mode 100644
index 91efbd8c2..000000000
Binary files a/docs/static/img/multiple-vectorstores.png and /dev/null differ
diff --git a/docs/static/img/new_langflow.gif b/docs/static/img/new_langflow.gif
deleted file mode 100644
index 18b3389f3..000000000
Binary files a/docs/static/img/new_langflow.gif and /dev/null differ
diff --git a/docs/static/img/new_langflow2.gif b/docs/static/img/new_langflow2.gif
deleted file mode 100644
index d963db0b8..000000000
Binary files a/docs/static/img/new_langflow2.gif and /dev/null differ
diff --git a/docs/static/img/overall.png b/docs/static/img/overall.png
deleted file mode 100644
index 5b27ec079..000000000
Binary files a/docs/static/img/overall.png and /dev/null differ
diff --git a/docs/static/img/prompt_customization.png b/docs/static/img/prompt_customization.png
deleted file mode 100644
index 297435187..000000000
Binary files a/docs/static/img/prompt_customization.png and /dev/null differ
diff --git a/docs/static/img/prompt_customization2.png b/docs/static/img/prompt_customization2.png
deleted file mode 100644
index 8afa3c934..000000000
Binary files a/docs/static/img/prompt_customization2.png and /dev/null differ
diff --git a/docs/static/img/prompt_customization3.png b/docs/static/img/prompt_customization3.png
deleted file mode 100644
index db328b8f4..000000000
Binary files a/docs/static/img/prompt_customization3.png and /dev/null differ
diff --git a/docs/static/img/prompt_customization4.png b/docs/static/img/prompt_customization4.png
deleted file mode 100644
index 4d6570929..000000000
Binary files a/docs/static/img/prompt_customization4.png and /dev/null differ
diff --git a/docs/static/img/prompt_customization5.png b/docs/static/img/prompt_customization5.png
deleted file mode 100644
index 1621b6dec..000000000
Binary files a/docs/static/img/prompt_customization5.png and /dev/null differ
diff --git a/docs/static/img/python-function.png b/docs/static/img/python-function.png
deleted file mode 100644
index 2885b8f51..000000000
Binary files a/docs/static/img/python-function.png and /dev/null differ
diff --git a/docs/static/img/serp-api-tool.png b/docs/static/img/serp-api-tool.png
deleted file mode 100644
index 6159ddea6..000000000
Binary files a/docs/static/img/serp-api-tool.png and /dev/null differ
diff --git a/docs/static/img/single-compenent.png b/docs/static/img/single-compenent.png
deleted file mode 100644
index c6aeea4e7..000000000
Binary files a/docs/static/img/single-compenent.png and /dev/null differ
diff --git a/docs/static/json_files/Basic_Chat.json b/docs/static/json_files/Basic_Chat.json
deleted file mode 100644
index 89c1f86b1..000000000
--- a/docs/static/json_files/Basic_Chat.json
+++ /dev/null
@@ -1 +0,0 @@
-{"description":"Simplest possible chat model","name":"Basic Chat","data":{"nodes":[{"width":384,"height":611,"id":"ChatOpenAI-kbRNC","type":"genericNode","position":{"x":228.87326389541306,"y":465.8628482073749},"data":{"type":"ChatOpenAI","node":{"template":{"lc_kwargs":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"lc_kwargs","advanced":true,"type":"code","list":false},"verbose":{"required":false,"placeholder":"","show":false,"multiline":false,"value":false,"password":false,"name":"verbose","advanced":false,"type":"bool","list":false},"callbacks":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"callbacks","advanced":false,"type":"langchain.callbacks.base.BaseCallbackHandler","list":true},"tags":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"tags","advanced":false,"type":"str","list":true},"client":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"client","advanced":false,"type":"Any","list":false},"model_name":{"required":false,"placeholder":"","show":true,"multiline":false,"value":"gpt-3.5-turbo","password":false,"options":["gpt-3.5-turbo-0613","gpt-3.5-turbo","gpt-3.5-turbo-16k-0613","gpt-3.5-turbo-16k","gpt-4-0613","gpt-4-32k-0613","gpt-4","gpt-4-32k"],"name":"model_name","advanced":false,"type":"str","list":true},"temperature":{"required":false,"placeholder":"","show":true,"multiline":false,"value":0.7,"password":false,"name":"temperature","advanced":false,"type":"float","list":false},"model_kwargs":{"required":false,"placeholder":"","show":true,"multiline":false,"password":false,"name":"model_kwargs","advanced":true,"type":"code","list":false},"openai_api_key":{"required":false,"placeholder":"","show":true,"multiline":false,"value":"","password":true,"name":"openai_api_key","display_name":"OpenAI API Key","advanced":false,"type":"str","list":false},"openai_api_base":{"required":false,"placeholder":"","show":true,"multiline":false,"password":false,"name":"openai_api_base","display_name":"OpenAI API Base","advanced":false,"type":"str","list":false},"openai_organization":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"openai_organization","display_name":"OpenAI Organization","advanced":false,"type":"str","list":false},"openai_proxy":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"openai_proxy","display_name":"OpenAI Proxy","advanced":false,"type":"str","list":false},"request_timeout":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"request_timeout","advanced":false,"type":"float","list":false,"value":60},"max_retries":{"required":false,"placeholder":"","show":false,"multiline":false,"value":6,"password":false,"name":"max_retries","advanced":false,"type":"int","list":false},"streaming":{"required":false,"placeholder":"","show":false,"multiline":false,"value":false,"password":false,"name":"streaming","advanced":false,"type":"bool","list":false},"n":{"required":false,"placeholder":"","show":false,"multiline":false,"value":1,"password":false,"name":"n","advanced":false,"type":"int","list":false},"max_tokens":{"required":false,"placeholder":"","show":true,"multiline":false,"password":true,"name":"max_tokens","advanced":false,"type":"int","list":false,"value":""},"_type":"ChatOpenAI"},"description":"Wrapper around OpenAI Chat large language models.","base_classes":["BaseChatModel","BaseLanguageModel","ChatOpenAI","Serializable"]},"id":"ChatOpenAI-kbRNC","value":null},"selected":false,"dragging":false,"positionAbsolute":{"x":228.87326389541306,"y":465.8628482073749}},{"width":384,"height":287,"id":"ConversationChain-dSTWJ","type":"genericNode","position":{"x":806,"y":554},"data":{"type":"ConversationChain","node":{"template":{"lc_kwargs":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"lc_kwargs","advanced":false,"type":"code","list":false},"memory":{"required":false,"placeholder":"","show":true,"multiline":false,"password":false,"name":"memory","advanced":false,"type":"BaseMemory","list":false},"callbacks":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"callbacks","advanced":false,"type":"langchain.callbacks.base.BaseCallbackHandler","list":true},"verbose":{"required":false,"placeholder":"","show":true,"multiline":false,"password":false,"name":"verbose","advanced":true,"type":"bool","list":false},"tags":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"tags","advanced":false,"type":"str","list":true},"prompt":{"required":false,"placeholder":"","show":false,"multiline":false,"value":{"input_variables":["history","input"],"output_parser":null,"partial_variables":{},"template":"The following is a friendly conversation between a human and an AI. The AI is talkative and provides lots of specific details from its context. If the AI does not know the answer to a question, it truthfully says it does not know.\n\nCurrent conversation:\n{history}\nHuman: {input}\nAI:","template_format":"f-string","validate_template":true,"_type":"prompt"},"password":false,"name":"prompt","advanced":false,"type":"BasePromptTemplate","list":false},"llm":{"required":true,"placeholder":"","show":true,"multiline":false,"password":false,"name":"llm","advanced":false,"type":"BaseLanguageModel","list":false},"output_key":{"required":true,"placeholder":"","show":true,"multiline":false,"value":"response","password":false,"name":"output_key","advanced":true,"type":"str","list":false},"input_key":{"required":true,"placeholder":"","show":true,"multiline":false,"value":"input","password":false,"name":"input_key","advanced":true,"type":"str","list":false},"_type":"ConversationChain"},"description":"Chain to have a conversation and load context from memory.","base_classes":["LLMChain","ConversationChain","Chain","Serializable","function"]},"id":"ConversationChain-dSTWJ","value":null},"selected":true,"dragging":false,"positionAbsolute":{"x":806,"y":554}}],"edges":[{"source":"ChatOpenAI-kbRNC","sourceHandle":"ChatOpenAI|ChatOpenAI-kbRNC|BaseChatModel|BaseLanguageModel|ChatOpenAI|Serializable","target":"ConversationChain-dSTWJ","targetHandle":"BaseLanguageModel|llm|ConversationChain-dSTWJ","className":"stroke-gray-900 dark:stroke-gray-200","id":"reactflow__edge-ChatOpenAI-kbRNCChatOpenAI|ChatOpenAI-kbRNC|BaseChatModel|BaseLanguageModel|ChatOpenAI|Serializable-ConversationChain-dSTWJBaseLanguageModel|llm|ConversationChain-dSTWJ","style":{"stroke":"inherit"},"animated":false}],"viewport":{"x":-133.10808215567783,"y":-584.2169157611249,"zoom":1.3420621931260226}},"id":"1f040a87-7dea-4640-80a6-645cdb5899f1"}
\ No newline at end of file
diff --git a/docs/static/json_files/Buffer_Memory.json b/docs/static/json_files/Buffer_Memory.json
deleted file mode 100644
index 8145a56c8..000000000
--- a/docs/static/json_files/Buffer_Memory.json
+++ /dev/null
@@ -1 +0,0 @@
-{"description":"A Chain that uses a ConversationBufferMemory","name":"Buffer Memory","data":{"nodes":[{"width":384,"height":349,"id":"ConversationBufferMemory-6AwNY","type":"genericNode","position":{"x":739.8999754662251,"y":334.3621287703047},"data":{"type":"ConversationBufferMemory","node":{"template":{"lc_kwargs":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"lc_kwargs","advanced":true,"type":"code","list":false},"chat_memory":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"chat_memory","advanced":false,"type":"BaseChatMessageHistory","list":false},"output_key":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"output_key","advanced":false,"type":"str","list":false},"input_key":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"input_key","advanced":false,"type":"str","list":false},"return_messages":{"required":false,"placeholder":"","show":true,"multiline":false,"password":false,"name":"return_messages","advanced":false,"type":"bool","list":false},"human_prefix":{"required":false,"placeholder":"","show":false,"multiline":false,"value":"Human","password":false,"name":"human_prefix","advanced":false,"type":"str","list":false},"ai_prefix":{"required":false,"placeholder":"","show":false,"multiline":false,"value":"AI","password":false,"name":"ai_prefix","advanced":false,"type":"str","list":false},"memory_key":{"required":false,"placeholder":"","show":true,"multiline":false,"value":"history","password":false,"name":"memory_key","advanced":false,"type":"str","list":false},"_type":"ConversationBufferMemory"},"description":"Buffer for storing conversation memory.","base_classes":["BaseChatMemory","Serializable","ConversationBufferMemory","BaseMemory"]},"id":"ConversationBufferMemory-6AwNY","value":null},"selected":false,"positionAbsolute":{"x":739.8999754662251,"y":334.3621287703047},"dragging":false},{"width":384,"height":287,"id":"ConversationChain-XkniH","type":"genericNode","position":{"x":1364.824439016022,"y":466.4103762723428},"data":{"type":"ConversationChain","node":{"template":{"lc_kwargs":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"lc_kwargs","advanced":false,"type":"code","list":false},"memory":{"required":false,"placeholder":"","show":true,"multiline":false,"password":false,"name":"memory","advanced":false,"type":"BaseMemory","list":false},"callbacks":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"callbacks","advanced":false,"type":"langchain.callbacks.base.BaseCallbackHandler","list":true},"verbose":{"required":false,"placeholder":"","show":true,"multiline":false,"password":false,"name":"verbose","advanced":true,"type":"bool","list":false},"tags":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"tags","advanced":false,"type":"str","list":true},"prompt":{"required":false,"placeholder":"","show":false,"multiline":false,"value":{"input_variables":["history","input"],"output_parser":null,"partial_variables":{},"template":"The following is a friendly conversation between a human and an AI. The AI is talkative and provides lots of specific details from its context. If the AI does not know the answer to a question, it truthfully says it does not know.\n\nCurrent conversation:\n{history}\nHuman: {input}\nAI:","template_format":"f-string","validate_template":true,"_type":"prompt"},"password":false,"name":"prompt","advanced":false,"type":"BasePromptTemplate","list":false},"llm":{"required":true,"placeholder":"","show":true,"multiline":false,"password":false,"name":"llm","advanced":false,"type":"BaseLanguageModel","list":false},"output_key":{"required":true,"placeholder":"","show":true,"multiline":false,"value":"response","password":false,"name":"output_key","advanced":true,"type":"str","list":false},"input_key":{"required":true,"placeholder":"","show":true,"multiline":false,"value":"input","password":false,"name":"input_key","advanced":true,"type":"str","list":false},"_type":"ConversationChain"},"description":"Chain to have a conversation and load context from memory.","base_classes":["LLMChain","ConversationChain","Chain","Serializable","function"]},"id":"ConversationChain-XkniH","value":null},"selected":false,"positionAbsolute":{"x":1364.824439016022,"y":466.4103762723428},"dragging":false},{"width":384,"height":611,"id":"ChatOpenAI-6ouqx","type":"genericNode","position":{"x":735.8178700857987,"y":706.9245756642823},"data":{"type":"ChatOpenAI","node":{"template":{"lc_kwargs":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"lc_kwargs","advanced":true,"type":"code","list":false},"verbose":{"required":false,"placeholder":"","show":false,"multiline":false,"value":false,"password":false,"name":"verbose","advanced":false,"type":"bool","list":false},"callbacks":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"callbacks","advanced":false,"type":"langchain.callbacks.base.BaseCallbackHandler","list":true},"tags":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"tags","advanced":false,"type":"str","list":true},"client":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"client","advanced":false,"type":"Any","list":false},"model_name":{"required":false,"placeholder":"","show":true,"multiline":false,"value":"gpt-4","password":false,"options":["gpt-3.5-turbo-0613","gpt-3.5-turbo","gpt-3.5-turbo-16k-0613","gpt-3.5-turbo-16k","gpt-4-0613","gpt-4-32k-0613","gpt-4","gpt-4-32k"],"name":"model_name","advanced":false,"type":"str","list":true},"temperature":{"required":false,"placeholder":"","show":true,"multiline":false,"value":0.7,"password":false,"name":"temperature","advanced":false,"type":"float","list":false},"model_kwargs":{"required":false,"placeholder":"","show":true,"multiline":false,"password":false,"name":"model_kwargs","advanced":true,"type":"code","list":false},"openai_api_key":{"required":false,"placeholder":"","show":true,"multiline":false,"value":"","password":true,"name":"openai_api_key","display_name":"OpenAI API Key","advanced":false,"type":"str","list":false},"openai_api_base":{"required":false,"placeholder":"","show":true,"multiline":false,"password":false,"name":"openai_api_base","display_name":"OpenAI API Base","advanced":false,"type":"str","list":false},"openai_organization":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"openai_organization","display_name":"OpenAI Organization","advanced":false,"type":"str","list":false},"openai_proxy":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"openai_proxy","display_name":"OpenAI Proxy","advanced":false,"type":"str","list":false},"request_timeout":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"request_timeout","advanced":false,"type":"float","list":false,"value":60},"max_retries":{"required":false,"placeholder":"","show":false,"multiline":false,"value":6,"password":false,"name":"max_retries","advanced":false,"type":"int","list":false},"streaming":{"required":false,"placeholder":"","show":false,"multiline":false,"value":false,"password":false,"name":"streaming","advanced":false,"type":"bool","list":false},"n":{"required":false,"placeholder":"","show":false,"multiline":false,"value":1,"password":false,"name":"n","advanced":false,"type":"int","list":false},"max_tokens":{"required":false,"placeholder":"","show":true,"multiline":false,"password":true,"name":"max_tokens","advanced":false,"type":"int","list":false,"value":""},"_type":"ChatOpenAI"},"description":"Wrapper around OpenAI Chat large language models.","base_classes":["BaseChatModel","BaseLanguageModel","ChatOpenAI","Serializable"]},"id":"ChatOpenAI-6ouqx","value":null},"selected":false,"positionAbsolute":{"x":735.8178700857987,"y":706.9245756642823},"dragging":false}],"edges":[{"source":"ConversationBufferMemory-6AwNY","sourceHandle":"ConversationBufferMemory|ConversationBufferMemory-6AwNY|BaseChatMemory|Serializable|ConversationBufferMemory|BaseMemory","target":"ConversationChain-XkniH","targetHandle":"BaseMemory|memory|ConversationChain-XkniH","className":"stroke-gray-900 dark:stroke-gray-200","id":"reactflow__edge-ConversationBufferMemory-6AwNYConversationBufferMemory|ConversationBufferMemory-6AwNY|BaseChatMemory|Serializable|ConversationBufferMemory|BaseMemory-ConversationChain-XkniHBaseMemory|memory|ConversationChain-XkniH","selected":false,"style":{"stroke":"inherit"},"animated":false},{"source":"ChatOpenAI-6ouqx","sourceHandle":"ChatOpenAI|ChatOpenAI-6ouqx|BaseChatModel|BaseLanguageModel|ChatOpenAI|Serializable","target":"ConversationChain-XkniH","targetHandle":"BaseLanguageModel|llm|ConversationChain-XkniH","className":"stroke-gray-900 dark:stroke-gray-200","id":"reactflow__edge-ChatOpenAI-6ouqxChatOpenAI|ChatOpenAI-6ouqx|BaseChatModel|BaseLanguageModel|ChatOpenAI|Serializable-ConversationChain-XkniHBaseLanguageModel|llm|ConversationChain-XkniH","selected":false,"style":{"stroke":"inherit"},"animated":false}],"viewport":{"x":-216.72818375563406,"y":-237.7590624850327,"zoom":0.8337040546734004}},"id":"e51f2426-bb09-4c9e-8772-8a306ba03d4d"}
\ No newline at end of file
diff --git a/docs/static/json_files/CSV_Loader.json b/docs/static/json_files/CSV_Loader.json
deleted file mode 100644
index 021b1d94b..000000000
--- a/docs/static/json_files/CSV_Loader.json
+++ /dev/null
@@ -1 +0,0 @@
-{"description":"A Chain that loads a CSV file and queries it for answers","name":"CSV Loader","data":{"nodes":[{"width":384,"height":505,"id":"CharacterTextSplitter-Jpf5p","type":"genericNode","position":{"x":396.8077856495644,"y":223.0804236237455},"data":{"type":"CharacterTextSplitter","node":{"template":{"documents":{"required":true,"placeholder":"","show":true,"multiline":false,"password":false,"name":"documents","advanced":false,"type":"BaseLoader","list":false},"separator":{"required":true,"placeholder":"","show":true,"multiline":false,"value":".","password":false,"name":"separator","display_name":"Separator","advanced":false,"type":"str","list":false},"chunk_size":{"required":true,"placeholder":"","show":true,"multiline":false,"value":4000,"password":false,"name":"chunk_size","display_name":"Chunk Size","advanced":false,"type":"int","list":false},"chunk_overlap":{"required":true,"placeholder":"","show":true,"multiline":false,"value":200,"password":false,"name":"chunk_overlap","display_name":"Chunk Overlap","advanced":false,"type":"int","list":false},"_type":"CharacterTextSplitter"},"description":"Implementation of splitting text that looks at characters.","base_classes":["CharacterTextSplitter","BaseDocumentTransformer","TextSplitter"]},"id":"CharacterTextSplitter-Jpf5p","value":null},"selected":false,"positionAbsolute":{"x":396.8077856495644,"y":223.0804236237455},"dragging":false},{"width":384,"height":273,"id":"OpenAIEmbeddings-Alch2","type":"genericNode","position":{"x":400.7197772556631,"y":830.7387312650183},"data":{"type":"OpenAIEmbeddings","node":{"template":{"client":{"required":false,"placeholder":"","show":true,"multiline":false,"password":false,"name":"client","advanced":true,"type":"Any","list":false},"model":{"required":false,"placeholder":"","show":true,"multiline":false,"value":"text-embedding-ada-002","password":false,"name":"model","advanced":true,"type":"str","list":false},"deployment":{"required":false,"placeholder":"","show":true,"multiline":false,"value":"text-embedding-ada-002","password":false,"name":"deployment","advanced":true,"type":"str","list":false},"openai_api_version":{"required":false,"placeholder":"","show":true,"multiline":false,"password":true,"name":"openai_api_version","display_name":"OpenAI API Version","advanced":true,"type":"str","list":false,"value":""},"openai_api_base":{"required":false,"placeholder":"","show":true,"multiline":false,"password":true,"name":"openai_api_base","display_name":"OpenAI API Base","advanced":true,"type":"str","list":false,"value":""},"openai_api_type":{"required":false,"placeholder":"","show":true,"multiline":false,"password":true,"name":"openai_api_type","display_name":"OpenAI API Type","advanced":true,"type":"str","list":false,"value":""},"openai_proxy":{"required":false,"placeholder":"","show":true,"multiline":false,"password":false,"name":"openai_proxy","display_name":"OpenAI Proxy","advanced":true,"type":"str","list":false},"embedding_ctx_length":{"required":false,"placeholder":"","show":true,"multiline":false,"value":-1,"password":false,"name":"embedding_ctx_length","advanced":true,"type":"int","list":false},"openai_api_key":{"required":false,"placeholder":"","show":true,"multiline":false,"value":"","password":true,"name":"openai_api_key","display_name":"OpenAI API Key","advanced":false,"type":"str","list":false},"openai_organization":{"required":false,"placeholder":"","show":true,"multiline":false,"password":false,"name":"openai_organization","display_name":"OpenAI Organization","advanced":true,"type":"str","list":false},"allowed_special":{"required":false,"placeholder":"","show":true,"multiline":false,"value":[],"password":false,"name":"allowed_special","advanced":true,"type":"Literal'all'","list":true},"disallowed_special":{"required":false,"placeholder":"","show":true,"multiline":false,"value":"all","password":false,"name":"disallowed_special","advanced":true,"type":"Literal'all'","list":true},"chunk_size":{"required":false,"placeholder":"","show":true,"multiline":false,"value":1000,"password":false,"name":"chunk_size","advanced":true,"type":"int","list":false},"max_retries":{"required":false,"placeholder":"","show":true,"multiline":false,"value":6,"password":false,"name":"max_retries","advanced":true,"type":"int","list":false},"request_timeout":{"required":false,"placeholder":"","show":true,"multiline":false,"password":false,"name":"request_timeout","advanced":true,"type":"float","list":false},"headers":{"required":false,"placeholder":"","show":false,"multiline":true,"value":"{'Authorization':\n 'Bearer '}","password":false,"name":"headers","advanced":true,"type":"Any","list":false},"_type":"OpenAIEmbeddings"},"description":"Wrapper around OpenAI embedding models.","base_classes":["Embeddings","OpenAIEmbeddings"]},"id":"OpenAIEmbeddings-Alch2","value":null},"selected":false,"positionAbsolute":{"x":400.7197772556631,"y":830.7387312650183},"dragging":false},{"width":384,"height":399,"id":"VectorStoreInfo-t5lOa","type":"genericNode","position":{"x":1260.124354900933,"y":190.75414650725997},"data":{"type":"VectorStoreInfo","node":{"template":{"vectorstore":{"required":true,"placeholder":"","show":true,"multiline":false,"password":false,"name":"vectorstore","advanced":false,"type":"VectorStore","list":false},"name":{"required":true,"placeholder":"","show":true,"multiline":false,"password":false,"name":"name","advanced":false,"type":"str","list":false},"description":{"required":true,"placeholder":"","show":true,"multiline":true,"password":false,"name":"description","advanced":false,"type":"str","list":false},"_type":"VectorStoreInfo"},"description":"Information about a vectorstore.","base_classes":["VectorStoreInfo"]},"id":"VectorStoreInfo-t5lOa","value":null},"selected":false,"positionAbsolute":{"x":1260.124354900933,"y":190.75414650725997},"dragging":false},{"width":384,"height":267,"id":"VectorStoreAgent-XlOGy","type":"genericNode","position":{"x":1748.357708024328,"y":280.08684957412726},"data":{"type":"VectorStoreAgent","node":{"template":{"vectorstoreinfo":{"required":true,"placeholder":"","show":true,"multiline":false,"password":false,"name":"vectorstoreinfo","display_name":"Vector Store Info","advanced":false,"type":"VectorStoreInfo","list":false},"llm":{"required":true,"placeholder":"","show":true,"multiline":false,"password":false,"name":"llm","display_name":"LLM","advanced":false,"type":"BaseLanguageModel","list":false},"_type":"vectorstore_agent"},"description":"Construct an agent from a Vector Store.","base_classes":["AgentExecutor"]},"id":"VectorStoreAgent-XlOGy","value":null},"selected":false,"positionAbsolute":{"x":1748.357708024328,"y":280.08684957412726},"dragging":false},{"width":384,"height":265,"id":"CSVLoader-KP4gX","type":"genericNode","position":{"x":-21.705449464185108,"y":286.9885881141596},"data":{"type":"CSVLoader","node":{"template":{"file_path":{"required":true,"placeholder":"","show":true,"multiline":false,"value":"","suffixes":[".csv"],"fileTypes":["csv"],"password":false,"name":"file_path","advanced":false,"type":"file","list":false,"content":null},"_type":"CSVLoader"},"description":"Loads a CSV file into a list of documents.","base_classes":["BaseLoader","CSVLoader"]},"id":"CSVLoader-KP4gX","value":null},"selected":false,"positionAbsolute":{"x":-21.705449464185108,"y":286.9885881141596},"dragging":false},{"width":384,"height":353,"id":"Chroma-ymADH","type":"genericNode","position":{"x":833.2724180086134,"y":245.14627812364745},"data":{"type":"Chroma","node":{"template":{"documents":{"required":true,"placeholder":"","show":true,"multiline":false,"password":false,"name":"documents","display_name":"Text Splitter","advanced":false,"type":"TextSplitter","list":true},"embedding":{"required":true,"placeholder":"","show":true,"multiline":false,"password":false,"name":"embedding","display_name":"Embedding","advanced":false,"type":"Embeddings","list":false},"metadatas":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"metadatas","advanced":false,"type":"code","list":true},"ids":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"ids","advanced":false,"type":"str","list":true},"collection_name":{"required":false,"placeholder":"","show":true,"multiline":false,"value":"langchain","password":false,"name":"collection_name","advanced":false,"type":"str","list":false},"persist_directory":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"persist_directory","advanced":false,"type":"str","list":false},"client_settings":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"client_settings","advanced":false,"type":"chromadb.config.Setting","list":true},"client":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"client","advanced":false,"type":"chromadb.Client","list":false},"kwargs":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"kwargs","advanced":true,"type":"Any","list":false},"_type":"Chroma"},"description":"Create a Chroma vectorstore from a raw documents.","base_classes":["VectorStore","Chroma","BaseRetriever"]},"id":"Chroma-ymADH","value":null},"selected":false,"positionAbsolute":{"x":833.2724180086134,"y":245.14627812364745},"dragging":false},{"width":384,"height":611,"id":"OpenAI-TakZY","type":"genericNode","position":{"x":1316.6361579940162,"y":701.0799034823084},"data":{"type":"OpenAI","node":{"template":{"lc_kwargs":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"lc_kwargs","advanced":true,"type":"code","list":false},"cache":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"cache","advanced":false,"type":"bool","list":false},"verbose":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"verbose","advanced":false,"type":"bool","list":false},"callbacks":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"callbacks","advanced":false,"type":"langchain.callbacks.base.BaseCallbackHandler","list":true},"tags":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"tags","advanced":false,"type":"str","list":true},"client":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"client","advanced":false,"type":"Any","list":false},"model_name":{"required":false,"placeholder":"","show":true,"multiline":false,"value":"text-davinci-003","password":false,"options":["text-davinci-003","text-davinci-002","text-curie-001","text-babbage-001","text-ada-001"],"name":"model_name","advanced":false,"type":"str","list":true},"temperature":{"required":false,"placeholder":"","show":true,"multiline":false,"value":0.7,"password":false,"name":"temperature","advanced":false,"type":"float","list":false},"max_tokens":{"required":false,"placeholder":"","show":true,"multiline":false,"value":"","password":true,"name":"max_tokens","advanced":false,"type":"int","list":false},"top_p":{"required":false,"placeholder":"","show":false,"multiline":false,"value":1,"password":false,"name":"top_p","advanced":false,"type":"float","list":false},"frequency_penalty":{"required":false,"placeholder":"","show":false,"multiline":false,"value":0,"password":false,"name":"frequency_penalty","advanced":false,"type":"float","list":false},"presence_penalty":{"required":false,"placeholder":"","show":false,"multiline":false,"value":0,"password":false,"name":"presence_penalty","advanced":false,"type":"float","list":false},"n":{"required":false,"placeholder":"","show":false,"multiline":false,"value":1,"password":false,"name":"n","advanced":false,"type":"int","list":false},"best_of":{"required":false,"placeholder":"","show":false,"multiline":false,"value":1,"password":false,"name":"best_of","advanced":false,"type":"int","list":false},"model_kwargs":{"required":false,"placeholder":"","show":true,"multiline":false,"password":false,"name":"model_kwargs","advanced":true,"type":"code","list":false},"openai_api_key":{"required":false,"placeholder":"","show":true,"multiline":false,"value":"","password":true,"name":"openai_api_key","display_name":"OpenAI API Key","advanced":false,"type":"str","list":false},"openai_api_base":{"required":false,"placeholder":"","show":true,"multiline":false,"password":false,"name":"openai_api_base","display_name":"OpenAI API Base","advanced":false,"type":"str","list":false},"openai_organization":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"openai_organization","display_name":"OpenAI Organization","advanced":false,"type":"str","list":false},"openai_proxy":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"openai_proxy","display_name":"OpenAI Proxy","advanced":false,"type":"str","list":false},"batch_size":{"required":false,"placeholder":"","show":false,"multiline":false,"value":20,"password":false,"name":"batch_size","advanced":false,"type":"int","list":false},"request_timeout":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"request_timeout","advanced":false,"type":"float","list":false},"logit_bias":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"logit_bias","advanced":false,"type":"code","list":false},"max_retries":{"required":false,"placeholder":"","show":false,"multiline":false,"value":6,"password":false,"name":"max_retries","advanced":false,"type":"int","list":false},"streaming":{"required":false,"placeholder":"","show":false,"multiline":false,"value":false,"password":false,"name":"streaming","advanced":false,"type":"bool","list":false},"allowed_special":{"required":false,"placeholder":"","show":false,"multiline":false,"value":[],"password":false,"name":"allowed_special","advanced":false,"type":"Literal'all'","list":true},"disallowed_special":{"required":false,"placeholder":"","show":false,"multiline":false,"value":"all","password":false,"name":"disallowed_special","advanced":false,"type":"Literal'all'","list":false},"_type":"OpenAI"},"description":"Wrapper around OpenAI large language models.","base_classes":["BaseLLM","BaseLanguageModel","Serializable","BaseOpenAI","OpenAI"]},"id":"OpenAI-TakZY","value":null},"selected":false,"positionAbsolute":{"x":1316.6361579940162,"y":701.0799034823084},"dragging":false}],"edges":[{"source":"VectorStoreInfo-t5lOa","sourceHandle":"VectorStoreInfo|VectorStoreInfo-t5lOa|VectorStoreInfo","target":"VectorStoreAgent-XlOGy","targetHandle":"VectorStoreInfo|vectorstoreinfo|VectorStoreAgent-XlOGy","className":"stroke-gray-900 dark:stroke-gray-200","id":"reactflow__edge-VectorStoreInfo-t5lOaVectorStoreInfo|VectorStoreInfo-t5lOa|VectorStoreInfo-VectorStoreAgent-XlOGyVectorStoreInfo|vectorstoreinfo|VectorStoreAgent-XlOGy","selected":false,"style":{"stroke":"inherit"},"animated":false},{"source":"CSVLoader-KP4gX","sourceHandle":"CSVLoader|CSVLoader-KP4gX|BaseLoader|CSVLoader","target":"CharacterTextSplitter-Jpf5p","targetHandle":"BaseLoader|documents|CharacterTextSplitter-Jpf5p","style":{"stroke":"inherit"},"animated":false,"id":"reactflow__edge-CSVLoader-KP4gXCSVLoader|CSVLoader-KP4gX|BaseLoader|CSVLoader-CharacterTextSplitter-Jpf5pBaseLoader|documents|CharacterTextSplitter-Jpf5p","selected":false,"className":"stroke-gray-900 dark:stroke-gray-200"},{"source":"CharacterTextSplitter-Jpf5p","sourceHandle":"CharacterTextSplitter|CharacterTextSplitter-Jpf5p|CharacterTextSplitter|BaseDocumentTransformer|TextSplitter","target":"Chroma-ymADH","targetHandle":"TextSplitter|documents|Chroma-ymADH","style":{"stroke":"inherit"},"animated":false,"id":"reactflow__edge-CharacterTextSplitter-Jpf5pCharacterTextSplitter|CharacterTextSplitter-Jpf5p|CharacterTextSplitter|BaseDocumentTransformer|TextSplitter-Chroma-ymADHTextSplitter|documents|Chroma-ymADH","selected":false,"className":"stroke-gray-900 dark:stroke-gray-200"},{"source":"OpenAIEmbeddings-Alch2","sourceHandle":"OpenAIEmbeddings|OpenAIEmbeddings-Alch2|Embeddings|OpenAIEmbeddings","target":"Chroma-ymADH","targetHandle":"Embeddings|embedding|Chroma-ymADH","style":{"stroke":"inherit"},"animated":false,"id":"reactflow__edge-OpenAIEmbeddings-Alch2OpenAIEmbeddings|OpenAIEmbeddings-Alch2|Embeddings|OpenAIEmbeddings-Chroma-ymADHEmbeddings|embedding|Chroma-ymADH","selected":false,"className":"stroke-gray-900 dark:stroke-gray-200"},{"source":"Chroma-ymADH","sourceHandle":"Chroma|Chroma-ymADH|VectorStore|Chroma|BaseRetriever","target":"VectorStoreInfo-t5lOa","targetHandle":"VectorStore|vectorstore|VectorStoreInfo-t5lOa","style":{"stroke":"inherit"},"animated":false,"id":"reactflow__edge-Chroma-ymADHChroma|Chroma-ymADH|VectorStore|Chroma|BaseRetriever-VectorStoreInfo-t5lOaVectorStore|vectorstore|VectorStoreInfo-t5lOa","selected":false,"className":"stroke-gray-900 dark:stroke-gray-200"},{"source":"OpenAI-TakZY","sourceHandle":"OpenAI|OpenAI-TakZY|BaseLLM|BaseLanguageModel|Serializable|BaseOpenAI|OpenAI","target":"VectorStoreAgent-XlOGy","targetHandle":"BaseLanguageModel|llm|VectorStoreAgent-XlOGy","style":{"stroke":"inherit"},"animated":false,"id":"reactflow__edge-OpenAI-TakZYOpenAI|OpenAI-TakZY|BaseLLM|BaseLanguageModel|Serializable|BaseOpenAI|OpenAI-VectorStoreAgent-XlOGyBaseLanguageModel|llm|VectorStoreAgent-XlOGy","className":"stroke-gray-900 dark:stroke-gray-200"}],"viewport":{"x":89.45939216133138,"y":-68.45007135281094,"zoom":0.6912939873253691}},"id":"66d2e95e-44ac-4975-8105-6537534656d6"}
\ No newline at end of file
diff --git a/docs/static/json_files/JSON_Agent.json b/docs/static/json_files/JSON_Agent.json
deleted file mode 100644
index 1782909cf..000000000
--- a/docs/static/json_files/JSON_Agent.json
+++ /dev/null
@@ -1,530 +0,0 @@
-{
- "description": "Query an API spec to get information about the endpoints, parameters, and responses.",
- "name": "JSON Agent",
- "id": "e364ff2d-fa4f-41fa-8412-f4a91cbe1d44",
- "data": {
- "nodes": [
- {
- "width": 384,
- "height": 227,
- "id": "dndnode_13",
- "type": "genericNode",
- "position": {
- "x": 1187.2084622072437,
- "y": 116.13738146259979
- },
- "data": {
- "type": "JsonToolkit",
- "node": {
- "template": {
- "spec": {
- "required": true,
- "placeholder": "",
- "show": true,
- "multiline": false,
- "password": false,
- "name": "spec",
- "advanced": false,
- "type": "JsonSpec",
- "list": false
- },
- "_type": "JsonToolkit"
- },
- "description": "Toolkit for interacting with a JSON spec.",
- "base_classes": [
- "BaseToolkit",
- "JsonToolkit"
- ]
- },
- "id": "dndnode_13",
- "value": null
- },
- "selected": false,
- "positionAbsolute": {
- "x": 1187.2084622072437,
- "y": 116.13738146259979
- },
- "dragging": false
- },
- {
- "width": 384,
- "height": 267,
- "id": "dndnode_15",
- "type": "genericNode",
- "position": {
- "x": 1659.6395547893094,
- "y": 397.52506741326164
- },
- "data": {
- "type": "JsonAgent",
- "node": {
- "template": {
- "toolkit": {
- "required": true,
- "placeholder": "",
- "show": true,
- "multiline": false,
- "password": false,
- "name": "toolkit",
- "advanced": false,
- "type": "BaseToolkit",
- "list": false
- },
- "llm": {
- "required": true,
- "placeholder": "",
- "show": true,
- "multiline": false,
- "password": false,
- "name": "llm",
- "display_name": "LLM",
- "advanced": false,
- "type": "BaseLanguageModel",
- "list": false
- },
- "_type": "json_agent"
- },
- "description": "Construct a json agent from an LLM and tools.",
- "base_classes": [
- "AgentExecutor"
- ]
- },
- "id": "dndnode_15",
- "value": null
- },
- "selected": false,
- "positionAbsolute": {
- "x": 1659.6395547893094,
- "y": 397.52506741326164
- },
- "dragging": false
- },
- {
- "width": 384,
- "height": 597,
- "id": "dndnode_17",
- "type": "genericNode",
- "position": {
- "x": 664.5046837368179,
- "y": 351.4165918614485
- },
- "data": {
- "type": "OpenAI",
- "node": {
- "template": {
- "cache": {
- "required": false,
- "placeholder": "",
- "show": false,
- "multiline": false,
- "password": false,
- "name": "cache",
- "advanced": false,
- "type": "bool",
- "list": false
- },
- "verbose": {
- "required": false,
- "placeholder": "",
- "show": false,
- "multiline": false,
- "password": false,
- "name": "verbose",
- "advanced": false,
- "type": "bool",
- "list": false
- },
- "callbacks": {
- "required": false,
- "placeholder": "",
- "show": false,
- "multiline": false,
- "password": false,
- "name": "callbacks",
- "advanced": false,
- "type": "langchain.callbacks.base.BaseCallbackHandler",
- "list": true
- },
- "client": {
- "required": false,
- "placeholder": "",
- "show": false,
- "multiline": false,
- "password": false,
- "name": "client",
- "advanced": false,
- "type": "Any",
- "list": false
- },
- "model_name": {
- "required": false,
- "placeholder": "",
- "show": true,
- "multiline": false,
- "value": "text-davinci-003",
- "password": false,
- "options": [
- "text-davinci-003",
- "text-davinci-002",
- "text-curie-001",
- "text-babbage-001",
- "text-ada-001"
- ],
- "name": "model_name",
- "advanced": false,
- "type": "str",
- "list": true
- },
- "temperature": {
- "required": false,
- "placeholder": "",
- "show": true,
- "multiline": false,
- "value": 0.7,
- "password": false,
- "name": "temperature",
- "advanced": false,
- "type": "float",
- "list": false
- },
- "max_tokens": {
- "required": false,
- "placeholder": "",
- "show": true,
- "multiline": false,
- "value": 256,
- "password": true,
- "name": "max_tokens",
- "advanced": false,
- "type": "int",
- "list": false
- },
- "top_p": {
- "required": false,
- "placeholder": "",
- "show": false,
- "multiline": false,
- "value": 1,
- "password": false,
- "name": "top_p",
- "advanced": false,
- "type": "float",
- "list": false
- },
- "frequency_penalty": {
- "required": false,
- "placeholder": "",
- "show": false,
- "multiline": false,
- "value": 0,
- "password": false,
- "name": "frequency_penalty",
- "advanced": false,
- "type": "float",
- "list": false
- },
- "presence_penalty": {
- "required": false,
- "placeholder": "",
- "show": false,
- "multiline": false,
- "value": 0,
- "password": false,
- "name": "presence_penalty",
- "advanced": false,
- "type": "float",
- "list": false
- },
- "n": {
- "required": false,
- "placeholder": "",
- "show": false,
- "multiline": false,
- "value": 1,
- "password": false,
- "name": "n",
- "advanced": false,
- "type": "int",
- "list": false
- },
- "best_of": {
- "required": false,
- "placeholder": "",
- "show": false,
- "multiline": false,
- "value": 1,
- "password": false,
- "name": "best_of",
- "advanced": false,
- "type": "int",
- "list": false
- },
- "model_kwargs": {
- "required": false,
- "placeholder": "",
- "show": true,
- "multiline": false,
- "password": false,
- "name": "model_kwargs",
- "advanced": true,
- "type": "code",
- "list": false
- },
- "openai_api_key": {
- "required": false,
- "placeholder": "",
- "show": true,
- "multiline": false,
- "value": "",
- "password": true,
- "name": "openai_api_key",
- "display_name": "OpenAI API Key",
- "advanced": false,
- "type": "str",
- "list": false
- },
- "openai_api_base": {
- "required": false,
- "placeholder": "",
- "show": true,
- "multiline": false,
- "password": true,
- "name": "openai_api_base",
- "display_name": "OpenAI API Base",
- "advanced": false,
- "type": "str",
- "list": false,
- "value": ""
- },
- "openai_organization": {
- "required": false,
- "placeholder": "",
- "show": false,
- "multiline": false,
- "password": false,
- "name": "openai_organization",
- "display_name": "OpenAI Organization",
- "advanced": false,
- "type": "str",
- "list": false
- },
- "openai_proxy": {
- "required": false,
- "placeholder": "",
- "show": false,
- "multiline": false,
- "password": false,
- "name": "openai_proxy",
- "display_name": "OpenAI Proxy",
- "advanced": false,
- "type": "str",
- "list": false
- },
- "batch_size": {
- "required": false,
- "placeholder": "",
- "show": false,
- "multiline": false,
- "value": 20,
- "password": false,
- "name": "batch_size",
- "advanced": false,
- "type": "int",
- "list": false
- },
- "request_timeout": {
- "required": false,
- "placeholder": "",
- "show": false,
- "multiline": false,
- "password": false,
- "name": "request_timeout",
- "advanced": false,
- "type": "float",
- "list": false
- },
- "logit_bias": {
- "required": false,
- "placeholder": "",
- "show": false,
- "multiline": false,
- "password": false,
- "name": "logit_bias",
- "advanced": false,
- "type": "code",
- "list": false
- },
- "max_retries": {
- "required": false,
- "placeholder": "",
- "show": false,
- "multiline": false,
- "value": 6,
- "password": false,
- "name": "max_retries",
- "advanced": false,
- "type": "int",
- "list": false
- },
- "streaming": {
- "required": false,
- "placeholder": "",
- "show": false,
- "multiline": false,
- "value": false,
- "password": false,
- "name": "streaming",
- "advanced": false,
- "type": "bool",
- "list": false
- },
- "allowed_special": {
- "required": false,
- "placeholder": "",
- "show": false,
- "multiline": false,
- "value": [],
- "password": false,
- "name": "allowed_special",
- "advanced": false,
- "type": "Literal'all'",
- "list": true
- },
- "disallowed_special": {
- "required": false,
- "placeholder": "",
- "show": false,
- "multiline": false,
- "value": "all",
- "password": false,
- "name": "disallowed_special",
- "advanced": false,
- "type": "Literal'all'",
- "list": false
- },
- "_type": "OpenAI"
- },
- "description": "Generic OpenAI class that uses model name.",
- "base_classes": [
- "BaseLLM",
- "BaseLanguageModel",
- "OpenAI",
- "BaseOpenAI"
- ]
- },
- "id": "dndnode_17",
- "value": null
- },
- "selected": false,
- "positionAbsolute": {
- "x": 664.5046837368179,
- "y": 351.4165918614485
- },
- "dragging": false
- },
- {
- "width": 384,
- "height": 323,
- "id": "dndnode_126653ac-f17f-4266-8b19-510eed024b17",
- "type": "genericNode",
- "position": {
- "x": 644.1239078947345,
- "y": -74.06644565448788
- },
- "data": {
- "type": "JsonSpec",
- "node": {
- "template": {
- "max_value_length": {
- "required": true,
- "placeholder": "",
- "show": true,
- "multiline": false,
- "value": "",
- "password": false,
- "name": "max_value_length",
- "advanced": false,
- "type": "int",
- "list": false
- },
- "path": {
- "required": true,
- "placeholder": "",
- "show": true,
- "multiline": false,
- "value": "",
- "suffixes": [
- ".json",
- ".yaml",
- ".yml"
- ],
- "password": false,
- "name": "path",
- "advanced": false,
- "type": "file",
- "list": false,
- "fileTypes": [
- "json",
- "yaml",
- "yml"
- ],
- "content": null
- },
- "_type": "JsonSpec"
- },
- "description": "",
- "base_classes": [
- "Tool",
- "JsonSpec"
- ]
- },
- "id": "dndnode_126653ac-f17f-4266-8b19-510eed024b17",
- "value": null
- },
- "selected": false,
- "positionAbsolute": {
- "x": 644.1239078947345,
- "y": -74.06644565448788
- },
- "dragging": false
- }
- ],
- "edges": [
- {
- "source": "dndnode_13",
- "sourceHandle": "JsonToolkit|dndnode_13|BaseToolkit|JsonToolkit",
- "target": "dndnode_15",
- "targetHandle": "BaseToolkit|toolkit|dndnode_15",
- "className": "animate-pulse",
- "id": "reactflow__edge-dndnode_13JsonToolkit|dndnode_13|BaseToolkit|JsonToolkit-dndnode_15BaseToolkit|toolkit|dndnode_15",
- "selected": false
- },
- {
- "source": "dndnode_17",
- "sourceHandle": "OpenAI|dndnode_17|BaseLLM|BaseLanguageModel|OpenAI|BaseOpenAI",
- "target": "dndnode_15",
- "targetHandle": "BaseLanguageModel|llm|dndnode_15",
- "className": "animate-pulse",
- "id": "reactflow__edge-dndnode_17OpenAI|dndnode_17|BaseLLM|BaseLanguageModel|OpenAI|BaseOpenAI-dndnode_15BaseLanguageModel|llm|dndnode_15",
- "selected": false
- },
- {
- "source": "dndnode_126653ac-f17f-4266-8b19-510eed024b17",
- "sourceHandle": "JsonSpec|dndnode_126653ac-f17f-4266-8b19-510eed024b17|Tool|JsonSpec",
- "target": "dndnode_13",
- "targetHandle": "JsonSpec|spec|dndnode_13",
- "style": {
- "stroke": "#222222"
- },
- "animated": false,
- "id": "reactflow__edge-dndnode_126653ac-f17f-4266-8b19-510eed024b17JsonSpec|dndnode_126653ac-f17f-4266-8b19-510eed024b17|Tool|JsonSpec-dndnode_13JsonSpec|spec|dndnode_13",
- "selected": false
- }
- ],
- "viewport": {
- "x": -258.1938704405271,
- "y": 118.65185298284183,
- "zoom": 0.697371833175204
- }
- }
-}
\ No newline at end of file
diff --git a/docs/static/json_files/MidJourney_Prompt_Chain.json b/docs/static/json_files/MidJourney_Prompt_Chain.json
deleted file mode 100644
index 863df73f0..000000000
--- a/docs/static/json_files/MidJourney_Prompt_Chain.json
+++ /dev/null
@@ -1 +0,0 @@
-{"description":"Helps you generate a prompt based on your input to use in the MidJourney AI.","name":"MidJourney Prompt Chain","data":{"nodes":[{"width":384,"height":287,"id":"MidJourneyPromptChain-8Cd2E","type":"genericNode","position":{"x":1434.3856064919105,"y":417.72471641888757},"data":{"type":"MidJourneyPromptChain","node":{"template":{"llm":{"required":true,"placeholder":"","show":true,"multiline":false,"password":false,"name":"llm","display_name":"LLM","advanced":false,"type":"BaseLanguageModel","list":false},"memory":{"required":false,"placeholder":"","show":true,"multiline":false,"password":false,"name":"memory","advanced":false,"type":"BaseChatMemory","list":false,"value":{"chat_memory":{"messages":[]},"output_key":null,"input_key":null,"return_messages":false,"human_prefix":"Human","ai_prefix":"AI","memory_key":"history"}},"_type":"MidJourneyPromptChain"},"description":"MidJourneyPromptChain is a chain you can use to generate new MidJourney prompts.","base_classes":["LLMChain","BaseCustomChain","Chain","ConversationChain","MidJourneyPromptChain"]},"id":"MidJourneyPromptChain-8Cd2E","value":null},"selected":false,"positionAbsolute":{"x":1434.3856064919105,"y":417.72471641888757},"dragging":false},{"width":384,"height":611,"id":"OpenAI-3L5se","type":"genericNode","position":{"x":472.1073740469533,"y":204.4345032163925},"data":{"type":"OpenAI","node":{"template":{"lc_kwargs":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"lc_kwargs","advanced":true,"type":"code","list":false},"cache":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"cache","advanced":false,"type":"bool","list":false},"verbose":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"verbose","advanced":false,"type":"bool","list":false},"callbacks":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"callbacks","advanced":false,"type":"langchain.callbacks.base.BaseCallbackHandler","list":true},"tags":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"tags","advanced":false,"type":"str","list":true},"client":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"client","advanced":false,"type":"Any","list":false},"model_name":{"required":false,"placeholder":"","show":true,"multiline":false,"value":"text-davinci-003","password":false,"options":["text-davinci-003","text-davinci-002","text-curie-001","text-babbage-001","text-ada-001"],"name":"model_name","advanced":false,"type":"str","list":true},"temperature":{"required":false,"placeholder":"","show":true,"multiline":false,"value":0.7,"password":false,"name":"temperature","advanced":false,"type":"float","list":false},"max_tokens":{"required":false,"placeholder":"","show":true,"multiline":false,"value":"","password":true,"name":"max_tokens","advanced":false,"type":"int","list":false},"top_p":{"required":false,"placeholder":"","show":false,"multiline":false,"value":1,"password":false,"name":"top_p","advanced":false,"type":"float","list":false},"frequency_penalty":{"required":false,"placeholder":"","show":false,"multiline":false,"value":0,"password":false,"name":"frequency_penalty","advanced":false,"type":"float","list":false},"presence_penalty":{"required":false,"placeholder":"","show":false,"multiline":false,"value":0,"password":false,"name":"presence_penalty","advanced":false,"type":"float","list":false},"n":{"required":false,"placeholder":"","show":false,"multiline":false,"value":1,"password":false,"name":"n","advanced":false,"type":"int","list":false},"best_of":{"required":false,"placeholder":"","show":false,"multiline":false,"value":1,"password":false,"name":"best_of","advanced":false,"type":"int","list":false},"model_kwargs":{"required":false,"placeholder":"","show":true,"multiline":false,"password":false,"name":"model_kwargs","advanced":true,"type":"code","list":false},"openai_api_key":{"required":false,"placeholder":"","show":true,"multiline":false,"value":"","password":true,"name":"openai_api_key","display_name":"OpenAI API Key","advanced":false,"type":"str","list":false},"openai_api_base":{"required":false,"placeholder":"","show":true,"multiline":false,"password":false,"name":"openai_api_base","display_name":"OpenAI API Base","advanced":false,"type":"str","list":false},"openai_organization":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"openai_organization","display_name":"OpenAI Organization","advanced":false,"type":"str","list":false},"openai_proxy":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"openai_proxy","display_name":"OpenAI Proxy","advanced":false,"type":"str","list":false},"batch_size":{"required":false,"placeholder":"","show":false,"multiline":false,"value":20,"password":false,"name":"batch_size","advanced":false,"type":"int","list":false},"request_timeout":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"request_timeout","advanced":false,"type":"float","list":false},"logit_bias":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"logit_bias","advanced":false,"type":"code","list":false},"max_retries":{"required":false,"placeholder":"","show":false,"multiline":false,"value":6,"password":false,"name":"max_retries","advanced":false,"type":"int","list":false},"streaming":{"required":false,"placeholder":"","show":false,"multiline":false,"value":false,"password":false,"name":"streaming","advanced":false,"type":"bool","list":false},"allowed_special":{"required":false,"placeholder":"","show":false,"multiline":false,"value":[],"password":false,"name":"allowed_special","advanced":false,"type":"Literal'all'","list":true},"disallowed_special":{"required":false,"placeholder":"","show":false,"multiline":false,"value":"all","password":false,"name":"disallowed_special","advanced":false,"type":"Literal'all'","list":false},"_type":"OpenAI"},"description":"Wrapper around OpenAI large language models.","base_classes":["BaseLLM","BaseLanguageModel","Serializable","BaseOpenAI","OpenAI"]},"id":"OpenAI-3L5se","value":null},"selected":false,"positionAbsolute":{"x":472.1073740469533,"y":204.4345032163925},"dragging":false},{"width":384,"height":389,"id":"ConversationSummaryMemory-wERGP","type":"genericNode","position":{"x":970.4079759700535,"y":202.85762988089095},"data":{"type":"ConversationSummaryMemory","node":{"template":{"human_prefix":{"required":false,"placeholder":"","show":false,"multiline":false,"value":"Human","password":false,"name":"human_prefix","advanced":false,"type":"str","list":false},"ai_prefix":{"required":false,"placeholder":"","show":false,"multiline":false,"value":"AI","password":false,"name":"ai_prefix","advanced":false,"type":"str","list":false},"llm":{"required":true,"placeholder":"","show":true,"multiline":false,"password":false,"name":"llm","advanced":false,"type":"BaseLanguageModel","list":false},"prompt":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"prompt","advanced":false,"type":"BasePromptTemplate","list":false},"summary_message_cls":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"summary_message_cls","advanced":false,"type":"Type[langchain.schema.BaseMessage]","list":false},"lc_kwargs":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"lc_kwargs","advanced":true,"type":"code","list":false},"chat_memory":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"chat_memory","advanced":false,"type":"BaseChatMessageHistory","list":false},"output_key":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"output_key","advanced":false,"type":"str","list":false},"input_key":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"input_key","advanced":false,"type":"str","list":false},"return_messages":{"required":false,"placeholder":"","show":true,"multiline":false,"password":false,"name":"return_messages","advanced":false,"type":"bool","list":false},"buffer":{"required":false,"placeholder":"","show":false,"multiline":false,"value":"","password":false,"name":"buffer","advanced":false,"type":"str","list":false},"memory_key":{"required":false,"placeholder":"","show":true,"multiline":false,"value":"history","password":false,"name":"memory_key","advanced":false,"type":"str","list":false},"_type":"ConversationSummaryMemory"},"description":"Conversation summarizer to memory.","base_classes":["BaseMemory","ConversationSummaryMemory","SummarizerMixin","Serializable","BaseChatMemory"]},"id":"ConversationSummaryMemory-wERGP","value":null},"selected":false,"positionAbsolute":{"x":970.4079759700535,"y":202.85762988089095},"dragging":false}],"edges":[{"source":"OpenAI-3L5se","sourceHandle":"OpenAI|OpenAI-3L5se|BaseLLM|BaseLanguageModel|Serializable|BaseOpenAI|OpenAI","target":"MidJourneyPromptChain-8Cd2E","targetHandle":"BaseLanguageModel|llm|MidJourneyPromptChain-8Cd2E","className":"stroke-gray-900 dark:stroke-gray-200","id":"reactflow__edge-OpenAI-3L5seOpenAI|OpenAI-3L5se|BaseLLM|BaseLanguageModel|Serializable|BaseOpenAI|OpenAI-MidJourneyPromptChain-8Cd2EBaseLanguageModel|llm|MidJourneyPromptChain-8Cd2E","selected":false,"style":{"stroke":"inherit"},"animated":false},{"source":"OpenAI-3L5se","sourceHandle":"OpenAI|OpenAI-3L5se|BaseLLM|BaseLanguageModel|Serializable|BaseOpenAI|OpenAI","target":"ConversationSummaryMemory-wERGP","targetHandle":"BaseLanguageModel|llm|ConversationSummaryMemory-wERGP","style":{"stroke":"inherit"},"animated":false,"id":"reactflow__edge-OpenAI-3L5seOpenAI|OpenAI-3L5se|BaseLLM|BaseLanguageModel|Serializable|BaseOpenAI|OpenAI-ConversationSummaryMemory-wERGPBaseLanguageModel|llm|ConversationSummaryMemory-wERGP","selected":false,"className":"stroke-gray-900 dark:stroke-gray-200"},{"source":"ConversationSummaryMemory-wERGP","sourceHandle":"ConversationSummaryMemory|ConversationSummaryMemory-wERGP|BaseMemory|ConversationSummaryMemory|SummarizerMixin|Serializable|BaseChatMemory","target":"MidJourneyPromptChain-8Cd2E","targetHandle":"BaseChatMemory|memory|MidJourneyPromptChain-8Cd2E","style":{"stroke":"inherit"},"animated":false,"id":"reactflow__edge-ConversationSummaryMemory-wERGPConversationSummaryMemory|ConversationSummaryMemory-wERGP|BaseMemory|ConversationSummaryMemory|SummarizerMixin|Serializable|BaseChatMemory-MidJourneyPromptChain-8Cd2EBaseChatMemory|memory|MidJourneyPromptChain-8Cd2E","className":"stroke-gray-900 dark:stroke-gray-200"}],"viewport":{"x":-447.73379709287224,"y":-112.15608529158555,"zoom":1.1060796150485117}},"id":"441d7343-af42-4de6-85e3-7ab964b4f65f"}
\ No newline at end of file
diff --git a/docs/static/json_files/Multiple_Vector_Stores.json b/docs/static/json_files/Multiple_Vector_Stores.json
deleted file mode 100644
index c7299b9fb..000000000
--- a/docs/static/json_files/Multiple_Vector_Stores.json
+++ /dev/null
@@ -1 +0,0 @@
-{"description":"An agent that selects which Vector Store to use based on the input","name":"Multiple Vector Stores","data":{"nodes":[{"width":384,"height":611,"id":"OpenAI-Mm3pm","type":"genericNode","position":{"x":1966.4599842017942,"y":-869.5772971540586},"data":{"type":"OpenAI","node":{"template":{"lc_kwargs":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"lc_kwargs","advanced":true,"type":"code","list":false},"cache":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"cache","advanced":false,"type":"bool","list":false},"verbose":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"verbose","advanced":false,"type":"bool","list":false},"callbacks":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"callbacks","advanced":false,"type":"langchain.callbacks.base.BaseCallbackHandler","list":true},"tags":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"tags","advanced":false,"type":"str","list":true},"client":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"client","advanced":false,"type":"Any","list":false},"model_name":{"required":false,"placeholder":"","show":true,"multiline":false,"value":"text-davinci-003","password":false,"options":["text-davinci-003","text-davinci-002","text-curie-001","text-babbage-001","text-ada-001"],"name":"model_name","advanced":false,"type":"str","list":true},"temperature":{"required":false,"placeholder":"","show":true,"multiline":false,"value":0.7,"password":false,"name":"temperature","advanced":false,"type":"float","list":false},"max_tokens":{"required":false,"placeholder":"","show":true,"multiline":false,"value":"","password":true,"name":"max_tokens","advanced":false,"type":"int","list":false},"top_p":{"required":false,"placeholder":"","show":false,"multiline":false,"value":1,"password":false,"name":"top_p","advanced":false,"type":"float","list":false},"frequency_penalty":{"required":false,"placeholder":"","show":false,"multiline":false,"value":0,"password":false,"name":"frequency_penalty","advanced":false,"type":"float","list":false},"presence_penalty":{"required":false,"placeholder":"","show":false,"multiline":false,"value":0,"password":false,"name":"presence_penalty","advanced":false,"type":"float","list":false},"n":{"required":false,"placeholder":"","show":false,"multiline":false,"value":1,"password":false,"name":"n","advanced":false,"type":"int","list":false},"best_of":{"required":false,"placeholder":"","show":false,"multiline":false,"value":1,"password":false,"name":"best_of","advanced":false,"type":"int","list":false},"model_kwargs":{"required":false,"placeholder":"","show":true,"multiline":false,"password":false,"name":"model_kwargs","advanced":true,"type":"code","list":false},"openai_api_key":{"required":false,"placeholder":"","show":true,"multiline":false,"value":"","password":true,"name":"openai_api_key","display_name":"OpenAI API Key","advanced":false,"type":"str","list":false},"openai_api_base":{"required":false,"placeholder":"","show":true,"multiline":false,"password":false,"name":"openai_api_base","display_name":"OpenAI API Base","advanced":false,"type":"str","list":false},"openai_organization":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"openai_organization","display_name":"OpenAI Organization","advanced":false,"type":"str","list":false},"openai_proxy":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"openai_proxy","display_name":"OpenAI Proxy","advanced":false,"type":"str","list":false},"batch_size":{"required":false,"placeholder":"","show":false,"multiline":false,"value":20,"password":false,"name":"batch_size","advanced":false,"type":"int","list":false},"request_timeout":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"request_timeout","advanced":false,"type":"float","list":false},"logit_bias":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"logit_bias","advanced":false,"type":"code","list":false},"max_retries":{"required":false,"placeholder":"","show":false,"multiline":false,"value":6,"password":false,"name":"max_retries","advanced":false,"type":"int","list":false},"streaming":{"required":false,"placeholder":"","show":false,"multiline":false,"value":false,"password":false,"name":"streaming","advanced":false,"type":"bool","list":false},"allowed_special":{"required":false,"placeholder":"","show":false,"multiline":false,"value":[],"password":false,"name":"allowed_special","advanced":false,"type":"Literal'all'","list":true},"disallowed_special":{"required":false,"placeholder":"","show":false,"multiline":false,"value":"all","password":false,"name":"disallowed_special","advanced":false,"type":"Literal'all'","list":false},"_type":"OpenAI"},"description":"Wrapper around OpenAI large language models.","base_classes":["BaseLLM","BaseLanguageModel","Serializable","BaseOpenAI","OpenAI"]},"id":"OpenAI-Mm3pm","value":null},"selected":false,"positionAbsolute":{"x":1966.4599842017942,"y":-869.5772971540586},"dragging":false},{"width":384,"height":399,"id":"VectorStoreInfo-7gojg","type":"genericNode","position":{"x":1453.8500764104347,"y":-601.9573048787256},"data":{"type":"VectorStoreInfo","node":{"template":{"vectorstore":{"required":true,"placeholder":"","show":true,"multiline":false,"password":false,"name":"vectorstore","advanced":false,"type":"VectorStore","list":false},"name":{"required":true,"placeholder":"","show":true,"multiline":false,"password":false,"name":"name","advanced":false,"type":"str","list":false},"description":{"required":true,"placeholder":"","show":true,"multiline":true,"password":false,"name":"description","advanced":false,"type":"str","list":false},"_type":"VectorStoreInfo"},"description":"Information about a vectorstore.","base_classes":["VectorStoreInfo"]},"id":"VectorStoreInfo-7gojg","value":null},"selected":false,"positionAbsolute":{"x":1453.8500764104347,"y":-601.9573048787256},"dragging":false},{"width":384,"height":293,"id":"WebBaseLoader-FIl4m","type":"genericNode","position":{"x":4.768881258827719,"y":-507.2598283898528},"data":{"type":"WebBaseLoader","node":{"template":{"web_path":{"required":true,"placeholder":"","show":true,"multiline":false,"value":"","password":false,"name":"web_path","display_name":"Web Page","advanced":false,"type":"str","list":false},"_type":"WebBaseLoader"},"description":"Loader that uses urllib and beautiful soup to load webpages.","base_classes":["BaseLoader","WebBaseLoader"]},"id":"WebBaseLoader-FIl4m","value":null},"selected":false,"positionAbsolute":{"x":4.768881258827719,"y":-507.2598283898528},"dragging":false},{"width":384,"height":267,"id":"VectorStoreRouterAgent-N7aiP","type":"genericNode","position":{"x":2472.6895358833494,"y":-1007.9446214062591},"data":{"type":"VectorStoreRouterAgent","node":{"template":{"vectorstoreroutertoolkit":{"required":true,"placeholder":"","show":true,"multiline":false,"password":false,"name":"vectorstoreroutertoolkit","display_name":"Vector Store Router Toolkit","advanced":false,"type":"VectorStoreRouterToolkit","list":false},"llm":{"required":true,"placeholder":"","show":true,"multiline":false,"password":false,"name":"llm","display_name":"LLM","advanced":false,"type":"BaseLanguageModel","list":false},"_type":"vectorstorerouter_agent"},"description":"Construct an agent from a Vector Store Router.","base_classes":["AgentExecutor"]},"id":"VectorStoreRouterAgent-N7aiP","value":null},"selected":false,"positionAbsolute":{"x":2472.6895358833494,"y":-1007.9446214062591},"dragging":false},{"width":384,"height":227,"id":"VectorStoreRouterToolkit-hGTdR","type":"genericNode","position":{"x":1950.365974759041,"y":-1187.9950390730755},"data":{"type":"VectorStoreRouterToolkit","node":{"template":{"vectorstores":{"required":true,"placeholder":"","show":true,"multiline":false,"password":false,"name":"vectorstores","advanced":false,"type":"VectorStoreInfo","list":true},"llm":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"llm","advanced":false,"type":"BaseLanguageModel","list":false},"_type":"VectorStoreRouterToolkit"},"description":"Toolkit for routing between vectorstores.","base_classes":["BaseToolkit","VectorStoreRouterToolkit","Tool"]},"id":"VectorStoreRouterToolkit-hGTdR","value":null},"selected":false,"positionAbsolute":{"x":1950.365974759041,"y":-1187.9950390730755},"dragging":false},{"width":384,"height":399,"id":"VectorStoreInfo-fV1J4","type":"genericNode","position":{"x":1475.4953463167612,"y":-1166.4344593839103},"data":{"type":"VectorStoreInfo","node":{"template":{"vectorstore":{"required":true,"placeholder":"","show":true,"multiline":false,"password":false,"name":"vectorstore","advanced":false,"type":"VectorStore","list":false},"name":{"required":true,"placeholder":"","show":true,"multiline":false,"password":false,"name":"name","advanced":false,"type":"str","list":false},"description":{"required":true,"placeholder":"","show":true,"multiline":true,"password":false,"name":"description","advanced":false,"type":"str","list":false},"_type":"VectorStoreInfo"},"description":"Information about a vectorstore.","base_classes":["VectorStoreInfo"]},"id":"VectorStoreInfo-fV1J4","value":null},"selected":false,"positionAbsolute":{"x":1475.4953463167612,"y":-1166.4344593839103},"dragging":false},{"width":384,"height":505,"id":"CharacterTextSplitter-PvUeH","type":"genericNode","position":{"x":544.5729935080284,"y":-1329.4137999041677},"data":{"type":"CharacterTextSplitter","node":{"template":{"documents":{"required":true,"placeholder":"","show":true,"multiline":false,"password":false,"name":"documents","advanced":false,"type":"BaseLoader","list":false},"separator":{"required":true,"placeholder":"","show":true,"multiline":false,"value":".","password":false,"name":"separator","display_name":"Separator","advanced":false,"type":"str","list":false},"chunk_size":{"required":true,"placeholder":"","show":true,"multiline":false,"value":4000,"password":false,"name":"chunk_size","display_name":"Chunk Size","advanced":false,"type":"int","list":false},"chunk_overlap":{"required":true,"placeholder":"","show":true,"multiline":false,"value":200,"password":false,"name":"chunk_overlap","display_name":"Chunk Overlap","advanced":false,"type":"int","list":false},"_type":"CharacterTextSplitter"},"description":"Implementation of splitting text that looks at characters.","base_classes":["CharacterTextSplitter","BaseDocumentTransformer","TextSplitter"]},"id":"CharacterTextSplitter-PvUeH","value":null},"selected":false,"positionAbsolute":{"x":544.5729935080284,"y":-1329.4137999041677},"dragging":false},{"width":384,"height":505,"id":"CharacterTextSplitter-6kg1X","type":"genericNode","position":{"x":455.39085931215675,"y":-273.1977246363788},"data":{"type":"CharacterTextSplitter","node":{"template":{"documents":{"required":true,"placeholder":"","show":true,"multiline":false,"password":false,"name":"documents","advanced":false,"type":"BaseLoader","list":false},"separator":{"required":true,"placeholder":"","show":true,"multiline":false,"value":".","password":false,"name":"separator","display_name":"Separator","advanced":false,"type":"str","list":false},"chunk_size":{"required":true,"placeholder":"","show":true,"multiline":false,"value":4000,"password":false,"name":"chunk_size","display_name":"Chunk Size","advanced":false,"type":"int","list":false},"chunk_overlap":{"required":true,"placeholder":"","show":true,"multiline":false,"value":200,"password":false,"name":"chunk_overlap","display_name":"Chunk Overlap","advanced":false,"type":"int","list":false},"_type":"CharacterTextSplitter"},"description":"Implementation of splitting text that looks at characters.","base_classes":["CharacterTextSplitter","BaseDocumentTransformer","TextSplitter"]},"id":"CharacterTextSplitter-6kg1X","value":null},"selected":false,"positionAbsolute":{"x":455.39085931215675,"y":-273.1977246363788},"dragging":false},{"width":384,"height":265,"id":"TextLoader-KMKa2","type":"genericNode","position":{"x":30.83836620377508,"y":-1284.2622844002963},"data":{"type":"TextLoader","node":{"template":{"file_path":{"required":true,"placeholder":"","show":true,"multiline":false,"value":"","suffixes":[".txt"],"fileTypes":["txt"],"password":false,"name":"file_path","advanced":false,"type":"file","list":false,"content":null},"_type":"TextLoader"},"description":"Load text files.","base_classes":["TextLoader","BaseLoader"]},"id":"TextLoader-KMKa2","value":null},"selected":false,"positionAbsolute":{"x":30.83836620377508,"y":-1284.2622844002963},"dragging":false},{"width":384,"height":273,"id":"OpenAIEmbeddings-FU8G8","type":"genericNode","position":{"x":512.838366203775,"y":-728.2622844002965},"data":{"type":"OpenAIEmbeddings","node":{"template":{"client":{"required":false,"placeholder":"","show":true,"multiline":false,"password":false,"name":"client","advanced":true,"type":"Any","list":false},"model":{"required":false,"placeholder":"","show":true,"multiline":false,"value":"text-embedding-ada-002","password":false,"name":"model","advanced":true,"type":"str","list":false},"deployment":{"required":false,"placeholder":"","show":true,"multiline":false,"value":"text-embedding-ada-002","password":false,"name":"deployment","advanced":true,"type":"str","list":false},"openai_api_version":{"required":false,"placeholder":"","show":true,"multiline":false,"password":true,"name":"openai_api_version","display_name":"OpenAI API Version","advanced":true,"type":"str","list":false,"value":""},"openai_api_base":{"required":false,"placeholder":"","show":true,"multiline":false,"password":true,"name":"openai_api_base","display_name":"OpenAI API Base","advanced":true,"type":"str","list":false,"value":""},"openai_api_type":{"required":false,"placeholder":"","show":true,"multiline":false,"password":true,"name":"openai_api_type","display_name":"OpenAI API Type","advanced":true,"type":"str","list":false,"value":""},"openai_proxy":{"required":false,"placeholder":"","show":true,"multiline":false,"password":false,"name":"openai_proxy","display_name":"OpenAI Proxy","advanced":true,"type":"str","list":false},"embedding_ctx_length":{"required":false,"placeholder":"","show":true,"multiline":false,"value":8191,"password":false,"name":"embedding_ctx_length","advanced":true,"type":"int","list":false},"openai_api_key":{"required":false,"placeholder":"","show":true,"multiline":false,"value":"","password":true,"name":"openai_api_key","display_name":"OpenAI API Key","advanced":false,"type":"str","list":false},"openai_organization":{"required":false,"placeholder":"","show":true,"multiline":false,"password":false,"name":"openai_organization","display_name":"OpenAI Organization","advanced":true,"type":"str","list":false},"allowed_special":{"required":false,"placeholder":"","show":true,"multiline":false,"value":[],"password":false,"name":"allowed_special","advanced":true,"type":"Literal'all'","list":true},"disallowed_special":{"required":false,"placeholder":"","show":true,"multiline":false,"value":"all","password":false,"name":"disallowed_special","advanced":true,"type":"Literal'all'","list":true},"chunk_size":{"required":false,"placeholder":"","show":true,"multiline":false,"value":1000,"password":false,"name":"chunk_size","advanced":true,"type":"int","list":false},"max_retries":{"required":false,"placeholder":"","show":true,"multiline":false,"value":6,"password":false,"name":"max_retries","advanced":true,"type":"int","list":false},"request_timeout":{"required":false,"placeholder":"","show":true,"multiline":false,"password":false,"name":"request_timeout","advanced":true,"type":"float","list":false},"headers":{"required":false,"placeholder":"","show":false,"multiline":true,"value":"{'Authorization':\n 'Bearer '}","password":false,"name":"headers","advanced":true,"type":"Any","list":false},"_type":"OpenAIEmbeddings"},"description":"Wrapper around OpenAI embedding models.","base_classes":["Embeddings","OpenAIEmbeddings"]},"id":"OpenAIEmbeddings-FU8G8","value":null},"selected":false,"positionAbsolute":{"x":512.838366203775,"y":-728.2622844002965},"dragging":false},{"width":384,"height":353,"id":"Chroma-9gS7z","type":"genericNode","position":{"x":1002.8383662037747,"y":-578.2622844002965},"data":{"type":"Chroma","node":{"template":{"documents":{"required":true,"placeholder":"","show":true,"multiline":false,"password":false,"name":"documents","display_name":"Text Splitter","advanced":false,"type":"TextSplitter","list":true},"embedding":{"required":true,"placeholder":"","show":true,"multiline":false,"password":false,"name":"embedding","display_name":"Embedding","advanced":false,"type":"Embeddings","list":false},"metadatas":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"metadatas","advanced":false,"type":"code","list":true},"ids":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"ids","advanced":false,"type":"str","list":true},"collection_name":{"required":false,"placeholder":"","show":true,"multiline":false,"value":"langchain","password":false,"name":"collection_name","advanced":false,"type":"str","list":false},"persist_directory":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"persist_directory","advanced":false,"type":"str","list":false},"client_settings":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"client_settings","advanced":false,"type":"chromadb.config.Setting","list":true},"client":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"client","advanced":false,"type":"chromadb.Client","list":false},"kwargs":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"kwargs","advanced":true,"type":"Any","list":false},"_type":"Chroma"},"description":"Create a Chroma vectorstore from a raw documents.","base_classes":["VectorStore","Chroma","BaseRetriever"]},"id":"Chroma-9gS7z","value":null},"selected":false,"positionAbsolute":{"x":1002.8383662037747,"y":-578.2622844002965},"dragging":false},{"width":384,"height":353,"id":"Chroma-iSRjV","type":"genericNode","position":{"x":1006.838366203775,"y":-1186.2622844002963},"data":{"type":"Chroma","node":{"template":{"documents":{"required":true,"placeholder":"","show":true,"multiline":false,"password":false,"name":"documents","display_name":"Text Splitter","advanced":false,"type":"TextSplitter","list":true},"embedding":{"required":true,"placeholder":"","show":true,"multiline":false,"password":false,"name":"embedding","display_name":"Embedding","advanced":false,"type":"Embeddings","list":false},"metadatas":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"metadatas","advanced":false,"type":"code","list":true},"ids":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"ids","advanced":false,"type":"str","list":true},"collection_name":{"required":false,"placeholder":"","show":true,"multiline":false,"value":"langchain","password":false,"name":"collection_name","advanced":false,"type":"str","list":false},"persist_directory":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"persist_directory","advanced":false,"type":"str","list":false},"client_settings":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"client_settings","advanced":false,"type":"chromadb.config.Setting","list":true},"client":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"client","advanced":false,"type":"chromadb.Client","list":false},"kwargs":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"kwargs","advanced":true,"type":"Any","list":false},"_type":"Chroma"},"description":"Create a Chroma vectorstore from a raw documents.","base_classes":["VectorStore","Chroma","BaseRetriever"]},"id":"Chroma-iSRjV","value":null},"selected":false,"positionAbsolute":{"x":1006.838366203775,"y":-1186.2622844002963},"dragging":false}],"edges":[{"source":"OpenAI-Mm3pm","sourceHandle":"OpenAI|OpenAI-Mm3pm|BaseLLM|BaseLanguageModel|Serializable|BaseOpenAI|OpenAI","target":"VectorStoreRouterAgent-N7aiP","targetHandle":"BaseLanguageModel|llm|VectorStoreRouterAgent-N7aiP","className":"stroke-gray-900 dark:stroke-gray-200","id":"reactflow__edge-OpenAI-Mm3pmOpenAI|OpenAI-Mm3pm|BaseLLM|BaseLanguageModel|Serializable|BaseOpenAI|OpenAI-VectorStoreRouterAgent-N7aiPBaseLanguageModel|llm|VectorStoreRouterAgent-N7aiP","selected":false,"style":{"stroke":"inherit"},"animated":false},{"source":"VectorStoreRouterToolkit-hGTdR","sourceHandle":"VectorStoreRouterToolkit|VectorStoreRouterToolkit-hGTdR|BaseToolkit|VectorStoreRouterToolkit|Tool","target":"VectorStoreRouterAgent-N7aiP","targetHandle":"VectorStoreRouterToolkit|vectorstoreroutertoolkit|VectorStoreRouterAgent-N7aiP","className":"stroke-gray-900 dark:stroke-gray-200","id":"reactflow__edge-VectorStoreRouterToolkit-hGTdRVectorStoreRouterToolkit|VectorStoreRouterToolkit-hGTdR|BaseToolkit|VectorStoreRouterToolkit|Tool-VectorStoreRouterAgent-N7aiPVectorStoreRouterToolkit|vectorstoreroutertoolkit|VectorStoreRouterAgent-N7aiP","selected":false,"style":{"stroke":"inherit"},"animated":false},{"source":"VectorStoreInfo-7gojg","sourceHandle":"VectorStoreInfo|VectorStoreInfo-7gojg|VectorStoreInfo","target":"VectorStoreRouterToolkit-hGTdR","targetHandle":"VectorStoreInfo|vectorstores|VectorStoreRouterToolkit-hGTdR","className":"stroke-gray-900 dark:stroke-gray-200","id":"reactflow__edge-VectorStoreInfo-7gojgVectorStoreInfo|VectorStoreInfo-7gojg|VectorStoreInfo-VectorStoreRouterToolkit-hGTdRVectorStoreInfo|vectorstores|VectorStoreRouterToolkit-hGTdR","selected":false,"style":{"stroke":"inherit"},"animated":false},{"source":"VectorStoreInfo-fV1J4","sourceHandle":"VectorStoreInfo|VectorStoreInfo-fV1J4|VectorStoreInfo","target":"VectorStoreRouterToolkit-hGTdR","targetHandle":"VectorStoreInfo|vectorstores|VectorStoreRouterToolkit-hGTdR","className":"stroke-gray-900 dark:stroke-gray-200","id":"reactflow__edge-VectorStoreInfo-fV1J4VectorStoreInfo|VectorStoreInfo-fV1J4|VectorStoreInfo-VectorStoreRouterToolkit-hGTdRVectorStoreInfo|vectorstores|VectorStoreRouterToolkit-hGTdR","selected":false,"style":{"stroke":"inherit"},"animated":false},{"source":"WebBaseLoader-FIl4m","sourceHandle":"WebBaseLoader|WebBaseLoader-FIl4m|BaseLoader|WebBaseLoader","target":"CharacterTextSplitter-6kg1X","targetHandle":"BaseLoader|documents|CharacterTextSplitter-6kg1X","className":"stroke-gray-900 dark:stroke-gray-200","id":"reactflow__edge-WebBaseLoader-FIl4mWebBaseLoader|WebBaseLoader-FIl4m|BaseLoader|WebBaseLoader-CharacterTextSplitter-6kg1XBaseLoader|documents|CharacterTextSplitter-6kg1X","selected":false,"style":{"stroke":"inherit"},"animated":false},{"source":"TextLoader-KMKa2","sourceHandle":"TextLoader|TextLoader-KMKa2|TextLoader|BaseLoader","target":"CharacterTextSplitter-PvUeH","targetHandle":"BaseLoader|documents|CharacterTextSplitter-PvUeH","style":{"stroke":"inherit"},"animated":false,"id":"reactflow__edge-TextLoader-KMKa2TextLoader|TextLoader-KMKa2|TextLoader|BaseLoader-CharacterTextSplitter-PvUeHBaseLoader|documents|CharacterTextSplitter-PvUeH","selected":false,"className":"stroke-gray-900 dark:stroke-gray-200"},{"source":"OpenAIEmbeddings-FU8G8","sourceHandle":"OpenAIEmbeddings|OpenAIEmbeddings-FU8G8|Embeddings|OpenAIEmbeddings","target":"Chroma-9gS7z","targetHandle":"Embeddings|embedding|Chroma-9gS7z","style":{"stroke":"inherit"},"animated":false,"id":"reactflow__edge-OpenAIEmbeddings-FU8G8OpenAIEmbeddings|OpenAIEmbeddings-FU8G8|Embeddings|OpenAIEmbeddings-Chroma-9gS7zEmbeddings|embedding|Chroma-9gS7z","selected":false,"className":"stroke-gray-900 dark:stroke-gray-200"},{"source":"CharacterTextSplitter-6kg1X","sourceHandle":"CharacterTextSplitter|CharacterTextSplitter-6kg1X|CharacterTextSplitter|BaseDocumentTransformer|TextSplitter","target":"Chroma-9gS7z","targetHandle":"TextSplitter|documents|Chroma-9gS7z","style":{"stroke":"inherit"},"animated":false,"id":"reactflow__edge-CharacterTextSplitter-6kg1XCharacterTextSplitter|CharacterTextSplitter-6kg1X|CharacterTextSplitter|BaseDocumentTransformer|TextSplitter-Chroma-9gS7zTextSplitter|documents|Chroma-9gS7z","selected":false,"className":"stroke-gray-900 dark:stroke-gray-200"},{"source":"Chroma-9gS7z","sourceHandle":"Chroma|Chroma-9gS7z|VectorStore|Chroma|BaseRetriever","target":"VectorStoreInfo-7gojg","targetHandle":"VectorStore|vectorstore|VectorStoreInfo-7gojg","style":{"stroke":"inherit"},"animated":false,"id":"reactflow__edge-Chroma-9gS7zChroma|Chroma-9gS7z|VectorStore|Chroma|BaseRetriever-VectorStoreInfo-7gojgVectorStore|vectorstore|VectorStoreInfo-7gojg","selected":false,"className":"stroke-gray-900 dark:stroke-gray-200"},{"source":"CharacterTextSplitter-PvUeH","sourceHandle":"CharacterTextSplitter|CharacterTextSplitter-PvUeH|CharacterTextSplitter|BaseDocumentTransformer|TextSplitter","target":"Chroma-iSRjV","targetHandle":"TextSplitter|documents|Chroma-iSRjV","style":{"stroke":"inherit"},"animated":false,"id":"reactflow__edge-CharacterTextSplitter-PvUeHCharacterTextSplitter|CharacterTextSplitter-PvUeH|CharacterTextSplitter|BaseDocumentTransformer|TextSplitter-Chroma-iSRjVTextSplitter|documents|Chroma-iSRjV","selected":false,"className":"stroke-gray-900 dark:stroke-gray-200"},{"source":"OpenAIEmbeddings-FU8G8","sourceHandle":"OpenAIEmbeddings|OpenAIEmbeddings-FU8G8|Embeddings|OpenAIEmbeddings","target":"Chroma-iSRjV","targetHandle":"Embeddings|embedding|Chroma-iSRjV","style":{"stroke":"inherit"},"animated":false,"id":"reactflow__edge-OpenAIEmbeddings-FU8G8OpenAIEmbeddings|OpenAIEmbeddings-FU8G8|Embeddings|OpenAIEmbeddings-Chroma-iSRjVEmbeddings|embedding|Chroma-iSRjV","selected":false,"className":"stroke-gray-900 dark:stroke-gray-200"},{"source":"Chroma-iSRjV","sourceHandle":"Chroma|Chroma-iSRjV|VectorStore|Chroma|BaseRetriever","target":"VectorStoreInfo-fV1J4","targetHandle":"VectorStore|vectorstore|VectorStoreInfo-fV1J4","style":{"stroke":"inherit"},"animated":false,"id":"reactflow__edge-Chroma-iSRjVChroma|Chroma-iSRjV|VectorStore|Chroma|BaseRetriever-VectorStoreInfo-fV1J4VectorStore|vectorstore|VectorStoreInfo-fV1J4","selected":false,"className":"stroke-gray-900 dark:stroke-gray-200"}],"viewport":{"x":71.96454009007664,"y":737.5513351951806,"zoom":0.5221361634575208}},"id":"832a40f6-1c40-41f1-bd4a-83c37a35adfa"}
\ No newline at end of file
diff --git a/docs/static/json_files/Python_Function.json b/docs/static/json_files/Python_Function.json
deleted file mode 100644
index 2a2571346..000000000
--- a/docs/static/json_files/Python_Function.json
+++ /dev/null
@@ -1 +0,0 @@
-{"description":"Use this Tool on every query","name":"Getting Started: Simple python function applied to each output","data":{"nodes":[{"width":384,"height":611,"id":"ChatOpenAI-odtmt","type":"genericNode","position":{"x":543.1816229116944,"y":942.891611351432},"data":{"type":"ChatOpenAI","node":{"template":{"lc_kwargs":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"lc_kwargs","advanced":true,"type":"code","list":false},"verbose":{"required":false,"placeholder":"","show":false,"multiline":false,"value":false,"password":false,"name":"verbose","advanced":false,"type":"bool","list":false},"callbacks":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"callbacks","advanced":false,"type":"langchain.callbacks.base.BaseCallbackHandler","list":true},"tags":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"tags","advanced":false,"type":"str","list":true},"client":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"client","advanced":false,"type":"Any","list":false},"model_name":{"required":false,"placeholder":"","show":true,"multiline":false,"value":"gpt-3.5-turbo","password":false,"options":["gpt-3.5-turbo-0613","gpt-3.5-turbo","gpt-3.5-turbo-16k-0613","gpt-3.5-turbo-16k","gpt-4-0613","gpt-4-32k-0613","gpt-4","gpt-4-32k"],"name":"model_name","advanced":false,"type":"str","list":true},"temperature":{"required":false,"placeholder":"","show":true,"multiline":false,"value":"0.2","password":false,"name":"temperature","advanced":false,"type":"float","list":false},"model_kwargs":{"required":false,"placeholder":"","show":true,"multiline":false,"password":false,"name":"model_kwargs","advanced":true,"type":"code","list":false},"openai_api_key":{"required":false,"placeholder":"","show":true,"multiline":false,"value":"","password":true,"name":"openai_api_key","display_name":"OpenAI API Key","advanced":false,"type":"str","list":false},"openai_api_base":{"required":false,"placeholder":"","show":true,"multiline":false,"password":false,"name":"openai_api_base","display_name":"OpenAI API Base","advanced":false,"type":"str","list":false},"openai_organization":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"openai_organization","display_name":"OpenAI Organization","advanced":false,"type":"str","list":false},"openai_proxy":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"openai_proxy","display_name":"OpenAI Proxy","advanced":false,"type":"str","list":false},"request_timeout":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"request_timeout","advanced":false,"type":"float","list":false},"max_retries":{"required":false,"placeholder":"","show":false,"multiline":false,"value":6,"password":false,"name":"max_retries","advanced":false,"type":"int","list":false},"streaming":{"required":false,"placeholder":"","show":false,"multiline":false,"value":false,"password":false,"name":"streaming","advanced":false,"type":"bool","list":false},"n":{"required":false,"placeholder":"","show":false,"multiline":false,"value":1,"password":false,"name":"n","advanced":false,"type":"int","list":false},"max_tokens":{"required":false,"placeholder":"","show":true,"multiline":false,"password":true,"name":"max_tokens","advanced":false,"type":"int","list":false,"value":""},"_type":"ChatOpenAI"},"description":"Wrapper around OpenAI Chat large language models.","base_classes":["BaseChatModel","BaseLanguageModel","ChatOpenAI","Serializable"],"display_name":"ChatOpenAI"},"id":"ChatOpenAI-odtmt","value":null},"selected":false,"dragging":false,"positionAbsolute":{"x":543.1816229116944,"y":942.891611351432}},{"width":384,"height":387,"id":"AgentInitializer-ixfhl","type":"genericNode","position":{"x":1036.6064439140812,"y":645.1919693466587},"data":{"type":"AgentInitializer","node":{"template":{"agent":{"required":true,"placeholder":"","show":true,"multiline":false,"value":"zero-shot-react-description","password":false,"options":["zero-shot-react-description","react-docstore","self-ask-with-search","conversational-react-description","openai-functions"],"name":"agent","advanced":false,"type":"str","list":true},"memory":{"required":false,"placeholder":"","show":true,"multiline":false,"password":false,"name":"memory","advanced":false,"type":"BaseChatMemory","list":false},"tools":{"required":false,"placeholder":"","show":true,"multiline":false,"password":false,"name":"tools","advanced":false,"type":"Tool","list":true},"llm":{"required":true,"placeholder":"","show":true,"multiline":false,"password":false,"name":"llm","display_name":"LLM","advanced":false,"type":"BaseLanguageModel","list":false},"_type":"initialize_agent"},"description":"Construct a zero shot agent from an LLM and tools.","base_classes":["AgentExecutor","function"],"display_name":"AgentInitializer"},"id":"AgentInitializer-ixfhl","value":null},"selected":false,"positionAbsolute":{"x":1036.6064439140812,"y":645.1919693466587}},{"width":384,"height":437,"id":"PythonFunctionTool-EjdAj","type":"genericNode","position":{"x":553.050119331742,"y":412.9533535948685},"data":{"type":"PythonFunctionTool","node":{"template":{"name":{"required":true,"placeholder":"","show":true,"multiline":false,"value":"PythonFunction","password":false,"name":"name","advanced":false,"type":"str","list":false},"description":{"required":true,"placeholder":"","show":true,"multiline":true,"value":"Returns the Text you send. This is a testing tool.","password":false,"name":"description","advanced":false,"type":"str","list":false},"code":{"required":true,"placeholder":"","show":true,"multiline":true,"value":"\ndef python_function(text: str) -> str:\n \"\"\"This is a default python function that returns the input text\"\"\"\n return text\n","password":false,"name":"code","advanced":false,"type":"code","list":false},"_type":"PythonFunctionTool"},"description":"Python function to be executed.","base_classes":["Tool"],"display_name":"PythonFunctionTool"},"id":"PythonFunctionTool-EjdAj","value":null},"selected":false,"dragging":false,"positionAbsolute":{"x":553.050119331742,"y":412.9533535948685}}],"edges":[{"source":"ChatOpenAI-odtmt","sourceHandle":"ChatOpenAI|ChatOpenAI-odtmt|BaseChatModel|BaseLanguageModel|ChatOpenAI|Serializable","target":"AgentInitializer-ixfhl","targetHandle":"BaseLanguageModel|llm|AgentInitializer-ixfhl","style":{"stroke":"inherit"},"className":"stroke-gray-900 dark:stroke-gray-200","animated":false,"id":"reactflow__edge-ChatOpenAI-odtmtChatOpenAI|ChatOpenAI-odtmt|BaseChatModel|BaseLanguageModel|ChatOpenAI|Serializable-AgentInitializer-ixfhlBaseLanguageModel|llm|AgentInitializer-ixfhl","selected":false},{"source":"PythonFunctionTool-EjdAj","sourceHandle":"PythonFunctionTool|PythonFunctionTool-EjdAj|Tool","target":"AgentInitializer-ixfhl","targetHandle":"Tool|tools|AgentInitializer-ixfhl","style":{"stroke":"inherit"},"className":"stroke-gray-900 dark:stroke-gray-200","animated":false,"id":"reactflow__edge-PythonFunctionTool-EjdAjPythonFunctionTool|PythonFunctionTool-EjdAj|Tool-AgentInitializer-ixfhlTool|tools|AgentInitializer-ixfhl","selected":false}],"viewport":{"x":113.30615379508151,"y":-255.79235282514503,"zoom":0.7187067261749754}},"id":"e009dd09-b7d9-4e02-b021-ae2dece9d0e1"}
\ No newline at end of file
diff --git a/docs/static/json_files/SerpAPI_Tool.json b/docs/static/json_files/SerpAPI_Tool.json
deleted file mode 100644
index f24f6ed61..000000000
--- a/docs/static/json_files/SerpAPI_Tool.json
+++ /dev/null
@@ -1 +0,0 @@
-{"description":"An agent that can search the web and answer questions.","name":"SerpAPI Tool","data":{"nodes":[{"width":384,"height":611,"id":"OpenAI-RNt2b","type":"genericNode","position":{"x":409.91106009433804,"y":398.0988935763564},"data":{"type":"OpenAI","node":{"template":{"lc_kwargs":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"lc_kwargs","advanced":true,"type":"code","list":false},"cache":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"cache","advanced":false,"type":"bool","list":false},"verbose":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"verbose","advanced":false,"type":"bool","list":false},"callbacks":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"callbacks","advanced":false,"type":"langchain.callbacks.base.BaseCallbackHandler","list":true},"tags":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"tags","advanced":false,"type":"str","list":true},"client":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"client","advanced":false,"type":"Any","list":false},"model_name":{"required":false,"placeholder":"","show":true,"multiline":false,"value":"text-davinci-003","password":false,"options":["text-davinci-003","text-davinci-002","text-curie-001","text-babbage-001","text-ada-001"],"name":"model_name","advanced":false,"type":"str","list":true},"temperature":{"required":false,"placeholder":"","show":true,"multiline":false,"value":0.7,"password":false,"name":"temperature","advanced":false,"type":"float","list":false},"max_tokens":{"required":false,"placeholder":"","show":true,"multiline":false,"value":"","password":true,"name":"max_tokens","advanced":false,"type":"int","list":false},"top_p":{"required":false,"placeholder":"","show":false,"multiline":false,"value":1,"password":false,"name":"top_p","advanced":false,"type":"float","list":false},"frequency_penalty":{"required":false,"placeholder":"","show":false,"multiline":false,"value":0,"password":false,"name":"frequency_penalty","advanced":false,"type":"float","list":false},"presence_penalty":{"required":false,"placeholder":"","show":false,"multiline":false,"value":0,"password":false,"name":"presence_penalty","advanced":false,"type":"float","list":false},"n":{"required":false,"placeholder":"","show":false,"multiline":false,"value":1,"password":false,"name":"n","advanced":false,"type":"int","list":false},"best_of":{"required":false,"placeholder":"","show":false,"multiline":false,"value":1,"password":false,"name":"best_of","advanced":false,"type":"int","list":false},"model_kwargs":{"required":false,"placeholder":"","show":true,"multiline":false,"password":false,"name":"model_kwargs","advanced":true,"type":"code","list":false},"openai_api_key":{"required":false,"placeholder":"","show":true,"multiline":false,"value":"","password":true,"name":"openai_api_key","display_name":"OpenAI API Key","advanced":false,"type":"str","list":false},"openai_api_base":{"required":false,"placeholder":"","show":true,"multiline":false,"password":false,"name":"openai_api_base","display_name":"OpenAI API Base","advanced":false,"type":"str","list":false},"openai_organization":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"openai_organization","display_name":"OpenAI Organization","advanced":false,"type":"str","list":false},"openai_proxy":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"openai_proxy","display_name":"OpenAI Proxy","advanced":false,"type":"str","list":false},"batch_size":{"required":false,"placeholder":"","show":false,"multiline":false,"value":20,"password":false,"name":"batch_size","advanced":false,"type":"int","list":false},"request_timeout":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"request_timeout","advanced":false,"type":"float","list":false},"logit_bias":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"logit_bias","advanced":false,"type":"code","list":false},"max_retries":{"required":false,"placeholder":"","show":false,"multiline":false,"value":6,"password":false,"name":"max_retries","advanced":false,"type":"int","list":false},"streaming":{"required":false,"placeholder":"","show":false,"multiline":false,"value":false,"password":false,"name":"streaming","advanced":false,"type":"bool","list":false},"allowed_special":{"required":false,"placeholder":"","show":false,"multiline":false,"value":[],"password":false,"name":"allowed_special","advanced":false,"type":"Literal'all'","list":true},"disallowed_special":{"required":false,"placeholder":"","show":false,"multiline":false,"value":"all","password":false,"name":"disallowed_special","advanced":false,"type":"Literal'all'","list":false},"_type":"OpenAI"},"description":"Wrapper around OpenAI large language models.","base_classes":["BaseLLM","BaseLanguageModel","Serializable","BaseOpenAI","OpenAI"]},"id":"OpenAI-RNt2b","value":null},"selected":false,"positionAbsolute":{"x":409.91106009433804,"y":398.0988935763564},"dragging":false},{"width":384,"height":307,"id":"LLMChain-cB1d7","type":"genericNode","position":{"x":1102.587789663576,"y":-36.47284786009436},"data":{"type":"LLMChain","node":{"template":{"lc_kwargs":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"lc_kwargs","advanced":false,"type":"code","list":false},"memory":{"required":false,"placeholder":"","show":true,"multiline":false,"password":false,"name":"memory","advanced":false,"type":"BaseMemory","list":false},"callbacks":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"callbacks","advanced":false,"type":"langchain.callbacks.base.BaseCallbackHandler","list":true},"verbose":{"required":false,"placeholder":"","show":true,"multiline":false,"value":false,"password":false,"name":"verbose","advanced":true,"type":"bool","list":false},"tags":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"tags","advanced":false,"type":"str","list":true},"prompt":{"required":true,"placeholder":"","show":true,"multiline":false,"password":false,"name":"prompt","advanced":false,"type":"BasePromptTemplate","list":false},"llm":{"required":true,"placeholder":"","show":true,"multiline":false,"password":false,"name":"llm","advanced":false,"type":"BaseLanguageModel","list":false},"output_key":{"required":true,"placeholder":"","show":true,"multiline":false,"value":"text","password":false,"name":"output_key","advanced":true,"type":"str","list":false},"_type":"LLMChain"},"description":"Chain to run queries against LLMs.","base_classes":["LLMChain","Chain","Serializable","function"]},"id":"LLMChain-cB1d7","value":null},"selected":false,"positionAbsolute":{"x":1102.587789663576,"y":-36.47284786009436},"dragging":false},{"width":384,"height":267,"id":"ZeroShotAgent-IHsh8","type":"genericNode","position":{"x":1626.1098853758665,"y":147.81903080153683},"data":{"type":"ZeroShotAgent","node":{"template":{"llm_chain":{"required":true,"placeholder":"","show":true,"multiline":false,"password":false,"name":"llm_chain","advanced":false,"type":"LLMChain","list":false},"output_parser":{"required":false,"placeholder":"","show":false,"multiline":false,"password":false,"name":"output_parser","advanced":false,"type":"AgentOutputParser","list":false},"allowed_tools":{"required":false,"placeholder":"","show":true,"multiline":false,"password":false,"name":"allowed_tools","advanced":false,"type":"Tool","list":true},"_type":"ZeroShotAgent"},"description":"Agent for the MRKL chain.","base_classes":["Agent","BaseSingleActionAgent","ZeroShotAgent","function"]},"id":"ZeroShotAgent-IHsh8","value":null},"selected":false,"positionAbsolute":{"x":1626.1098853758665,"y":147.81903080153683},"dragging":false},{"width":384,"height":421,"id":"ZeroShotPrompt-iYEA9","type":"genericNode","position":{"x":409.51524635315866,"y":-60.01939553731515},"data":{"type":"ZeroShotPrompt","node":{"template":{"prefix":{"required":false,"placeholder":"","show":true,"multiline":true,"value":"Answer the following questions as best you can. You have access to the following tools:","password":false,"name":"prefix","advanced":false,"type":"prompt","list":false},"format_instructions":{"required":true,"placeholder":"","show":true,"multiline":true,"value":"Use the following format:\n\nQuestion: the input question you must answer\nThought: you should always think about what to do\nAction: the action to take, should be one of [{tool_names}]\nAction Input: the input to the action\nObservation: the result of the action\n... (this Thought/Action/Action Input/Observation can repeat N times)\nThought: I now know the final answer\nFinal Answer: the final answer to the original input question","password":false,"name":"format_instructions","advanced":false,"type":"prompt","list":false},"suffix":{"required":true,"placeholder":"","show":true,"multiline":true,"value":"Begin!\n\nQuestion: {input}\nThought:{agent_scratchpad}","password":false,"name":"suffix","advanced":false,"type":"prompt","list":false},"_type":"ZeroShotPrompt"},"description":"Prompt template for Zero Shot Agent.","base_classes":["BasePromptTemplate"]},"id":"ZeroShotPrompt-iYEA9","value":null},"selected":false,"positionAbsolute":{"x":409.51524635315866,"y":-60.01939553731515},"dragging":false},{"width":384,"height":313,"id":"Search-JJffi","type":"genericNode","position":{"x":1147.466611387235,"y":592.426363268862},"data":{"type":"Search","node":{"template":{"serpapi_api_key":{"required":false,"placeholder":"","show":true,"multiline":false,"value":"","password":true,"name":"serpapi_api_key","display_name":"Serpapi API Key","advanced":false,"type":"str","list":false},"aiosession":{"required":false,"placeholder":"","show":false,"multiline":false,"value":"","password":false,"name":"aiosession","advanced":false,"type":"str","list":false},"_type":"Search"},"description":"A search engine. Useful for when you need to answer questions about current events. Input should be a search query.","base_classes":["Tool"]},"id":"Search-JJffi","value":null},"selected":false,"positionAbsolute":{"x":1147.466611387235,"y":592.426363268862},"dragging":false}],"edges":[{"source":"OpenAI-RNt2b","sourceHandle":"OpenAI|OpenAI-RNt2b|BaseLLM|BaseLanguageModel|Serializable|BaseOpenAI|OpenAI","target":"LLMChain-cB1d7","targetHandle":"BaseLanguageModel|llm|LLMChain-cB1d7","className":"stroke-gray-900 dark:stroke-gray-200","id":"reactflow__edge-OpenAI-RNt2bOpenAI|OpenAI-RNt2b|BaseLLM|BaseLanguageModel|Serializable|BaseOpenAI|OpenAI-LLMChain-cB1d7BaseLanguageModel|llm|LLMChain-cB1d7","selected":false,"style":{"stroke":"inherit"},"animated":false},{"source":"LLMChain-cB1d7","sourceHandle":"LLMChain|LLMChain-cB1d7|LLMChain|Chain|Serializable|function","target":"ZeroShotAgent-IHsh8","targetHandle":"LLMChain|llm_chain|ZeroShotAgent-IHsh8","className":"stroke-gray-900 dark:stroke-gray-200","id":"reactflow__edge-LLMChain-cB1d7LLMChain|LLMChain-cB1d7|LLMChain|Chain|Serializable|function-ZeroShotAgent-IHsh8LLMChain|llm_chain|ZeroShotAgent-IHsh8","selected":false,"style":{"stroke":"inherit"},"animated":false},{"source":"ZeroShotPrompt-iYEA9","sourceHandle":"ZeroShotPrompt|ZeroShotPrompt-iYEA9|BasePromptTemplate","target":"LLMChain-cB1d7","targetHandle":"BasePromptTemplate|prompt|LLMChain-cB1d7","className":"stroke-gray-900 dark:stroke-gray-200","id":"reactflow__edge-ZeroShotPrompt-iYEA9ZeroShotPrompt|ZeroShotPrompt-iYEA9|BasePromptTemplate-LLMChain-cB1d7BasePromptTemplate|prompt|LLMChain-cB1d7","selected":false,"style":{"stroke":"inherit"},"animated":false},{"source":"Search-JJffi","sourceHandle":"Search|Search-JJffi|Tool","target":"ZeroShotAgent-IHsh8","targetHandle":"Tool|allowed_tools|ZeroShotAgent-IHsh8","style":{"stroke":"inherit"},"animated":false,"id":"reactflow__edge-Search-JJffiSearch|Search-JJffi|Tool-ZeroShotAgent-IHsh8Tool|allowed_tools|ZeroShotAgent-IHsh8","className":"stroke-gray-900 dark:stroke-gray-200"}],"viewport":{"x":-108.91070371767171,"y":87.03410571284854,"zoom":0.7669871597461889}},"id":"46f62f1c-ab66-418d-a159-5a5bc5f1b916"}
\ No newline at end of file
diff --git a/docs/static/logos/discord.svg b/docs/static/logos/discord.svg
deleted file mode 100644
index c03e8e127..000000000
--- a/docs/static/logos/discord.svg
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
\ No newline at end of file
diff --git a/docs/static/logos/github.svg b/docs/static/logos/github.svg
deleted file mode 100644
index 5b1d5da94..000000000
--- a/docs/static/logos/github.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-
diff --git a/docs/static/logos/twitter.svg b/docs/static/logos/twitter.svg
deleted file mode 100644
index 027488d3c..000000000
--- a/docs/static/logos/twitter.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-
diff --git a/docs/static/videos/langflow_api.mp4 b/docs/static/videos/langflow_api.mp4
deleted file mode 100644
index f0daa5266..000000000
Binary files a/docs/static/videos/langflow_api.mp4 and /dev/null differ
diff --git a/docs/static/videos/langflow_build.mp4 b/docs/static/videos/langflow_build.mp4
deleted file mode 100644
index 9d068fa01..000000000
Binary files a/docs/static/videos/langflow_build.mp4 and /dev/null differ
diff --git a/docs/static/videos/langflow_collection.mp4 b/docs/static/videos/langflow_collection.mp4
deleted file mode 100644
index 69d172776..000000000
Binary files a/docs/static/videos/langflow_collection.mp4 and /dev/null differ
diff --git a/docs/static/videos/langflow_collection_example.mp4 b/docs/static/videos/langflow_collection_example.mp4
deleted file mode 100644
index e58ea31e4..000000000
Binary files a/docs/static/videos/langflow_collection_example.mp4 and /dev/null differ
diff --git a/docs/static/videos/langflow_fork.mp4 b/docs/static/videos/langflow_fork.mp4
deleted file mode 100644
index 03c280c35..000000000
Binary files a/docs/static/videos/langflow_fork.mp4 and /dev/null differ
diff --git a/docs/static/videos/langflow_parameters.mp4 b/docs/static/videos/langflow_parameters.mp4
deleted file mode 100644
index 370ca5f36..000000000
Binary files a/docs/static/videos/langflow_parameters.mp4 and /dev/null differ
diff --git a/docs/stylesheets/custom.css b/docs/stylesheets/custom.css
new file mode 100644
index 000000000..6bde1a753
--- /dev/null
+++ b/docs/stylesheets/custom.css
@@ -0,0 +1,21 @@
+pre {
+ white-space: break-spaces;
+}
+
+@media (min-width: 1200px) {
+ .container,
+ .container-lg,
+ .container-md,
+ .container-sm,
+ .container-xl {
+ max-width: 2560px !important;
+ }
+}
+
+#my-component-root *, #headlessui-portal-root * {
+ z-index: 1000000000000;
+}
+
+#headlessui-portal-root textarea {
+ overflow-y: hidden;
+}
diff --git a/docs/tailwind.config.js b/docs/tailwind.config.js
deleted file mode 100644
index 94f047222..000000000
--- a/docs/tailwind.config.js
+++ /dev/null
@@ -1,12 +0,0 @@
-module.exports = {
- content: ['./src/**/*.html', './src/**/*.js', './src/**/*.tsx'],
- corePlugins: { preflight: false, container: false },
- important: '#tailwind',
- theme: {
- extend: {
- maxWidth: {
- xxs: '18rem',
- },
- },
- },
-};
diff --git a/docs/time-travel-guide-chain.md b/docs/time-travel-guide-chain.md
new file mode 100644
index 000000000..c30675db2
--- /dev/null
+++ b/docs/time-travel-guide-chain.md
@@ -0,0 +1,29 @@
+`TimeTravelGuideChain` will provide you with the historical period or future time you want to visit and you will suggest the best events, sights, or people to experience. **Output Key** and **Input Key** are simply unique identifiers used to represent the data being passed between different modules.
+
+
+
+{width=50%}
+{width=50%}
+
+---
+
+### ⛓️LangFlow example
+
+{width=100%}
+{width=100%}
+
+
+
+[Download Flow](data/Time_travel_guide_chain.json){: .md-button download="Time_travel_guide_chain"}
+
+
+
+The `ConversationSummaryMemory`. A memory of this type creates a summary of the conversation over time, which can be useful for condensing information. The **memory key** input is typically generated by encoding the input text using an encoder network, which maps the input text into a fixed-dimensional vector representation. We used **history** as _default_.
+
+
+
+For the example, we used `OpenAI` as the LLM, but you can use any LLM that has an API. Make sure to get the API key from the LLM provider. For example, [OpenAI](https://platform.openai.com/){.internal-link target=\_blank} requires you to create an account to get your API key.
+
+
+
+Check out the [OpenAI](https://platform.openai.com/docs/introduction/overview){.internal-link target=\_blank} documentation to learn more about the API and the options that contain in the node.
diff --git a/docs/tool-pal-math.md b/docs/tool-pal-math.md
new file mode 100644
index 000000000..d83ad6b19
--- /dev/null
+++ b/docs/tool-pal-math.md
@@ -0,0 +1,39 @@
+`PAL-MATH` is a language model that is good at solving complex math problems. The input should be a fully worded hard-word math problem.
+
+
+
+{width=50%}
+{width=50%}
+
+To understand more, check out the LangChain [PAL-MATH](https://python.langchain.com/en/latest/modules/chains/examples/pal.html?highlight=PAL-MATH){.internal-link target=\_blank} documentation.
+
+---
+
+### ⛓️LangFlow example
+
+{width=100%}
+{width=100%}
+
+
+
+[Download Flow](data/Tool_pal_math.json){: .md-button download="Tool_pal_math"}
+
+
+
+`ZeroShotPrompt` creates a prompt template for Zero-Shot Agent. You can set the _Prefix_ and _Suffix_. The _Prefix_ is the text that will be added before the input text. The _Suffix_ is the text that will be added after the input text. In the example, we used the _default_ that is automatically set.
+
+
+
+For the example, we used `OpenAI` as the LLM, but you can use any LLM that has an API. Make sure to get the API key from the LLM provider. For example, [OpenAI](https://platform.openai.com/){.internal-link target=\_blank} requires you to create an account to get your API key.
+
+
+
+Check out the [OpenAI](https://platform.openai.com/docs/introduction/overview){.internal-link target=\_blank} documentation to learn more about the API and the options that contain in the node.
+
+
+
+The `LLMChain` is a simple chain that takes in a prompt template, formats it with the user input, and returns the response from an LLM.
+
+
+
+`ZeroShotAgent` is an agent Agent for the MRKL chain. It uses a Zero Shot LLM to generate a response.
diff --git a/docs/vectorstore-agent.md b/docs/vectorstore-agent.md
new file mode 100644
index 000000000..26f5386d8
--- /dev/null
+++ b/docs/vectorstore-agent.md
@@ -0,0 +1,91 @@
+The `VectoStoreAgent`is an agent designed to retrieve information from one or more vectorstores, either with or without sources.
+
+
+
+{width=50%}
+{width=50%}
+
+
+
+Check out the [VectoStoreAgent](https://python.langchain.com/en/latest/modules/agents/toolkits/examples/vectorstore.html){.internal-link target=\_blank} in the LangChain documentation.
+
+---
+
+### ⛓️LangFlow example
+
+{width=100%}
+{width=100%}
+
+
+
+[Download Flow](data/Vectorstore_agent.json){: .md-button download="Vectorstore_agent"}
+
+
+
+By using `WebBaseLoader`, you can load all text from webpages into a document format that we can use downstream. Web path used:
+
+```txt
+https://beta.ruff.rs/docs/faq/
+```
+
+
+
+`CharacterTextSplitter` implements splitting text based on characters.
+
+Text splitters operate as follows:
+
+- Split the text into small, meaningful chunks (usually sentences).
+
+- Combine these small chunks into larger ones until they reach a certain size (measured by a function).
+
+- Once a chunk reaches the desired size, make it its piece of text and create a new chunk with some overlap to maintain context.
+
+**Separator used**:
+
+```txt
+.
+```
+
+**Chunk size used**:
+
+```txt
+2000
+```
+
+**Chunk overlap used**:
+
+```txt
+200
+```
+
+
+
+The `OpenAIEmbeddings`, wrapper around [OpenAI Embeddings](https://platform.openai.com/docs/guides/embeddings/what-are-embeddings){.internal-link target=\_blank} models. Make sure to get the API key from the LLM provider, in this case [OpenAI](https://platform.openai.com/){.internal-link target=\_blank}.
+
+
+
+`Chroma` vector databases can be used as vectorstores to conduct a semantic search or to select examples, thanks to a wrapper around them.
+
+
+
+A `VectorStoreInfo` set information about the vectorstore, such as the name and description.
+
+Name used:
+
+```txt
+ruff
+```
+
+Description used:
+
+```txt
+Information about the Ruff python linting library
+```
+
+
+
+For the example, we used `OpenAI` as the LLM, but you can use any LLM that has an API. Make sure to get the API key from the LLM provider. For example, [OpenAI](https://platform.openai.com/){.internal-link target=\_blank} requires you to create an account to get your API key.
+
+
+
+Check out the [OpenAI](https://platform.openai.com/docs/introduction/overview){.internal-link target=\_blank} documentation to learn more about the API and the options that contain in the node.