Data labeling

This notebook shows how to conduct data labeling and content analysis using EDSL, an open-source library for simulating surveys, experiments and other research with AI agents and large language models.

Using a dataset of mock customer service tickets as an example, we demonstrate how to:

  1. Import data into EDSL

  2. Create questions about the data

  3. Design an AI agent to answer the questions

  4. Select a language model to generate responses

  5. Analyze results as a formatted dataset

This workflow can be visualized as follows: general_survey.png

Technical setup

Before running the code below please ensure that you have completed setup:

Our Starter Tutorial also provides examples of EDSL basic components.

Selecting data for review

First we identify some data for review. Data can be created using the EDSL tools or imported from other sources. For purposes of this demo we import a set of hypothetical customer tickets for a transportation app:

[1]:
tickets = [
    "I just realized I left my phone in the car on my last ride. Can you help me get it back?",
    "I'm unhappy with my recent experience. The driver was very rude and unprofessional.",
    "I was charged more than the estimated fare for my trip yesterday. Can you explain why?",
    "The car seat provided was not properly installed, and I felt my child was at risk. Please ensure driver training.",
    "My driver took a longer route than necessary, resulting in a higher fare. I request a fare adjustment.",
    "I had a great experience with my driver today! Very friendly and efficient service.",
    "I'm concerned about the vehicle's cleanliness. It was not up to the standard I expect.",
    "The app keeps crashing every time I try to book a ride. Please fix this issue.",
    "My driver was exceptional - safe driving, polite, and the car was spotless. Kudos!",
    "I felt unsafe during my ride due to the driver's erratic behavior. This needs to be addressed immediately.",
    "The driver refused to follow my preferred route, which is shorter. I'm not satisfied with the service.",
    "Impressed with the quick response to my ride request and the driver's professionalism.",
    "I was charged for a ride I never took. Please refund me as soon as possible.",
    "The promo code I tried to use didn't work. Can you assist with this?",
    "There was a suspicious smell in the car, and I'm worried about hygiene standards.",
    "My driver was very considerate, especially helping me with my luggage. Appreciate the great service!",
    "The app's GPS seems inaccurate. It directed the driver to the wrong pick-up location.",
    "I want to compliment my driver's excellent navigation and time management during rush hour.",
    "The vehicle didn't match the description in the app. It was confusing and concerning.",
    "I faced an issue with payment processing after my last ride. Can you look into this?",
]

Constructing questions about the data

Next we create some questions about the data. EDSL provides a variety of question types that we can choose from based on the form of the response that we want to get back from the model (multiple choice, free text, checkbox, linear scale, etc.). Learn more about question types.

Note that we use a {{ placeholder }} in each question text in order to parameterize the questions with the individual ticket contents in the next step:

[2]:
from edsl import (
    QuestionMultipleChoice,
    QuestionCheckBox,
    QuestionFreeText,
    QuestionList,
    QuestionYesNo,
    QuestionLinearScale,
)
[3]:
question_issues = QuestionCheckBox(
    question_name="issues",
    question_text="Check all of the issues mentioned in this ticket: {{ ticket }}",
    question_options=[
        "safety",
        "cleanliness",
        "driver performance",
        "GPS/route",
        "lost item",
        "other",
    ],
)
[4]:
question_primary_issue = QuestionFreeText(
    question_name="primary_issue",
    question_text="What is the primary issue in this ticket? Ticket: {{ ticket }}",
)
[5]:
question_accident = QuestionMultipleChoice(
    question_name="accident",
    question_text="If the primary issue in this ticket is safety, was there an accident where someone was hurt? Ticket: {{ ticket }}",
    question_options=["Yes", "No", "Not applicable"],
)
[6]:
question_sentiment = QuestionMultipleChoice(
    question_name="sentiment",
    question_text="What is the sentiment of this ticket? Ticket: {{ ticket }}",
    question_options=[
        "Very positive",
        "Somewhat positive",
        "Neutral",
        "Somewhat negative",
        "Very negative",
    ],
)
[7]:
question_refund = QuestionYesNo(
    question_name="refund",
    question_text="Does the customer ask for a refund in this ticket? Ticket: {{ ticket }}",
)
[8]:
question_priority = QuestionLinearScale(
    question_name="priority",
    question_text="On a scale from 0 to 5, what is the priority level of this ticket? Ticket: {{ ticket }}",
    question_options=[0, 1, 2, 3, 4, 5],
    option_labels={0: "Lowest", 5: "Highest"},
)

Building a survey

We combine the questions into a survey in order to administer them together:

[9]:
from edsl import Survey

survey = Survey(
    questions=[
        question_issues,
        question_primary_issue,
        question_accident,
        question_sentiment,
        question_refund,
        question_priority,
    ]
)

Survey questions are administered asynchronously by default. Learn more about adding conditional logic and memory to your survey.

We can review our questions in a readable format, or export them as a survey to use with human respondents or at other survey platforms:

[10]:
survey
[10]:

Survey # questions: 6; question_name list: ['issues', 'primary_issue', 'accident', 'sentiment', 'refund', 'priority'];

  option_labels question_text question_options question_type use_code question_name
0 nan Check all of the issues mentioned in this ticket: {{ ticket }} ['safety', 'cleanliness', 'driver performance', 'GPS/route', 'lost item', 'other'] checkbox True issues
1 nan What is the primary issue in this ticket? Ticket: {{ ticket }} nan free_text nan primary_issue
2 nan If the primary issue in this ticket is safety, was there an accident where someone was hurt? Ticket: {{ ticket }} ['Yes', 'No', 'Not applicable'] multiple_choice nan accident
3 nan What is the sentiment of this ticket? Ticket: {{ ticket }} ['Very positive', 'Somewhat positive', 'Neutral', 'Somewhat negative', 'Very negative'] multiple_choice nan sentiment
4 nan Does the customer ask for a refund in this ticket? Ticket: {{ ticket }} ['No', 'Yes'] yes_no nan refund
5 {0: 'Lowest', 5: 'Highest'} On a scale from 0 to 5, what is the priority level of this ticket? Ticket: {{ ticket }} [0, 1, 2, 3, 4, 5] linear_scale nan priority

Designing AI agents

A key feature of EDSL is the ability to create personas for AI agents that the language models are prompted to use in generating responses to the questions. This is done by passing a dictionary of traits to Agent objects:

[11]:
from edsl import Agent

agent = Agent(
    traits={
        "persona": "You are an expert customer service agent.",
        "years_experience": 15,
    }
)
agent
[11]:

Agent

  key value
0 traits:persona You are an expert customer service agent.
1 traits:years_experience 15

Selecting language models

EDSL allows us to select the language models to use in generating results. To see all available models:

[12]:
from edsl import Model

Model.available()
/Users/a16174/edsl/edsl/inference_services/AvailableModelFetcher.py:139: UserWarning: No models found for service ollama
  warnings.warn(f"No models found for service {service_name}")
[12]:
  Model Name Service Name
0 test test
1 claude-3-5-sonnet-20240620 anthropic
2 claude-3-opus-20240229 anthropic
3 claude-3-sonnet-20240229 anthropic
4 claude-3-haiku-20240307 anthropic
5 amazon.titan-text-express-v1 bedrock
6 amazon.titan-text-lite-v1 bedrock
7 anthropic.claude-3-5-sonnet-20240620-v1:0 bedrock
8 anthropic.claude-3-haiku-20240307-v1:0 bedrock
9 anthropic.claude-3-opus-20240229-v1:0 bedrock
10 anthropic.claude-3-sonnet-20240229-v1:0 bedrock
11 anthropic.claude-instant-v1 bedrock
12 anthropic.claude-v2 bedrock
13 anthropic.claude-v2:1 bedrock
14 cohere.command-light-text-v14 bedrock
15 cohere.command-r-plus-v1:0 bedrock
16 cohere.command-r-v1:0 bedrock
17 cohere.command-text-v14 bedrock
18 meta.llama3-1-405b-instruct-v1:0 bedrock
19 meta.llama3-1-70b-instruct-v1:0 bedrock
20 meta.llama3-1-8b-instruct-v1:0 bedrock
21 meta.llama3-70b-instruct-v1:0 bedrock
22 meta.llama3-8b-instruct-v1:0 bedrock
23 mistral.mistral-7b-instruct-v0:2 bedrock
24 mistral.mistral-large-2402-v1:0 bedrock
25 mistral.mixtral-8x7b-instruct-v0:1 bedrock
26 gemini-1.0-pro google
27 gemini-1.5-flash google
28 gemini-1.5-pro google
29 gemini-pro google
30 meta-llama/Meta-Llama-3.1-8B-Instruct-Turbo together
31 mistralai/Mixtral-8x22B-Instruct-v0.1 together
32 meta-llama/Meta-Llama-3.1-70B-Instruct-Turbo together
33 meta-llama/Meta-Llama-3.1-405B-Instruct-Turbo together
34 Gryphe/MythoMax-L2-13b-Lite together
35 Salesforce/Llama-Rank-V1 together
36 meta-llama/Meta-Llama-Guard-3-8B together
37 meta-llama/Meta-Llama-3-70B-Instruct-Turbo together
38 meta-llama/Meta-Llama-3-70B-Instruct-Lite together
39 meta-llama/Meta-Llama-3-8B-Instruct-Lite together
40 meta-llama/Meta-Llama-3-8B-Instruct-Turbo together
41 meta-llama/Llama-3-70b-chat-hf together
42 meta-llama/Llama-3-8b-chat-hf together
43 Qwen/Qwen2-72B-Instruct together
44 google/gemma-2-27b-it together
45 google/gemma-2-9b-it together
46 mistralai/Mistral-7B-Instruct-v0.3 together
47 Qwen/Qwen1.5-110B-Chat together
48 meta-llama/LlamaGuard-2-8b together
49 microsoft/WizardLM-2-8x22B together
50 togethercomputer/StripedHyena-Nous-7B together
51 databricks/dbrx-instruct together
52 deepseek-ai/deepseek-llm-67b-chat together
53 google/gemma-2b-it together
54 mistralai/Mistral-7B-Instruct-v0.2 together
55 mistralai/Mixtral-8x7B-Instruct-v0.1 together
56 mistralai/Mixtral-8x7B-v0.1 together
57 Qwen/Qwen1.5-72B-Chat together
58 NousResearch/Nous-Hermes-2-Yi-34B together
59 Meta-Llama/Llama-Guard-7b together
60 NousResearch/Nous-Hermes-2-Mixtral-8x7B-DPO together
61 mistralai/Mistral-7B-Instruct-v0.1 together
62 mistralai/Mistral-7B-v0.1 together
63 meta-llama/Llama-2-13b-chat-hf together
64 meta-llama/Llama-2-7b-chat-hf together
65 meta-llama/Llama-2-70b-hf together
66 codellama/CodeLlama-34b-Instruct-hf together
67 upstage/SOLAR-10.7B-Instruct-v1.0 together
68 togethercomputer/m2-bert-80M-32k-retrieval together
69 togethercomputer/m2-bert-80M-8k-retrieval together
70 togethercomputer/m2-bert-80M-2k-retrieval together
71 WhereIsAI/UAE-Large-V1 together
72 BAAI/bge-large-en-v1.5 together
73 BAAI/bge-base-en-v1.5 together
74 Gryphe/MythoMax-L2-13b together
75 cursor/Llama-3-8b-hf together
76 azure:gpt-4o azure
77 azure:gpt-4o-mini azure
78 gemma-7b-it groq
79 gemma2-9b-it groq
80 llama-3.1-70b-versatile groq
81 llama-3.1-8b-instant groq
82 llama-guard-3-8b groq
83 llama3-70b-8192 groq
84 llama3-8b-8192 groq
85 llama3-groq-70b-8192-tool-use-preview groq
86 llama3-groq-8b-8192-tool-use-preview groq
87 mixtral-8x7b-32768 groq
88 Austism/chronos-hermes-13b-v2 deep_infra
89 Gryphe/MythoMax-L2-13b deep_infra
90 Qwen/Qwen2-72B-Instruct deep_infra
91 Qwen/Qwen2-7B-Instruct deep_infra
92 Qwen/Qwen2.5-72B-Instruct deep_infra
93 Sao10K/L3-70B-Euryale-v2.1 deep_infra
94 Sao10K/L3.1-70B-Euryale-v2.2 deep_infra
95 google/gemma-2-27b-it deep_infra
96 google/gemma-2-9b-it deep_infra
97 lizpreciatior/lzlv_70b_fp16_hf deep_infra
98 meta-llama/Meta-Llama-3-70B-Instruct deep_infra
99 meta-llama/Meta-Llama-3-8B-Instruct deep_infra
100 meta-llama/Meta-Llama-3.1-405B-Instruct deep_infra
101 meta-llama/Meta-Llama-3.1-70B-Instruct deep_infra
102 meta-llama/Meta-Llama-3.1-8B-Instruct deep_infra
103 mistralai/Mistral-7B-Instruct-v0.3 deep_infra
104 microsoft/Phi-3-medium-4k-instruct deep_infra
105 microsoft/WizardLM-2-7B deep_infra
106 microsoft/WizardLM-2-8x22B deep_infra
107 mistralai/Mistral-Nemo-Instruct-2407 deep_infra
108 mistralai/Mixtral-8x7B-Instruct-v0.1 deep_infra
109 openbmb/MiniCPM-Llama3-V-2_5 deep_infra
110 openchat/openchat_3.5 deep_infra
111 gpt-4o-realtime-preview openai
112 gpt-4o-realtime-preview-2024-10-01 openai
113 o1-mini-2024-09-12 openai
114 gpt-4-1106-preview openai
115 gpt-3.5-turbo-16k openai
116 gpt-4-0125-preview openai
117 gpt-4-turbo-preview openai
118 omni-moderation-latest openai
119 gpt-4o-2024-05-13 openai
120 omni-moderation-2024-09-26 openai
121 chatgpt-4o-latest openai
122 gpt-4 openai
123 gpt-4-0613 openai
124 gpt-4o openai
125 gpt-4o-2024-08-06 openai
126 o1-mini openai
127 gpt-3.5-turbo openai
128 gpt-3.5-turbo-0125 openai
129 o1-preview openai
130 o1-preview-2024-09-12 openai
131 gpt-4-turbo openai
132 gpt-4-turbo-2024-04-09 openai
133 gpt-3.5-turbo-1106 openai
134 gpt-4o-mini-2024-07-18 openai
135 gpt-4o-audio-preview openai
136 gpt-4o-audio-preview-2024-10-01 openai
137 gpt-4o-mini openai
138 gpt-4o-realtime-preview-2024-12-17 openai
139 gpt-4o-mini-realtime-preview openai
140 gpt-4o-mini-realtime-preview-2024-12-17 openai
141 gpt-4o-2024-11-20 openai
142 gpt-4o-audio-preview-2024-12-17 openai
143 gpt-4o-mini-audio-preview openai
144 gpt-4o-mini-audio-preview-2024-12-17 openai
145 curie:ft-emeritus-2022-12-01-14-49-45 openai
146 curie:ft-emeritus-2022-12-01-16-40-12 openai
147 curie:ft-emeritus-2022-11-30-12-58-24 openai
148 davinci:ft-emeritus-2022-11-30-14-57-33 openai
149 curie:ft-emeritus-2022-12-01-01-51-20 openai
150 curie:ft-emeritus-2022-12-01-01-04-36 openai
151 curie:ft-emeritus-2022-12-01-15-42-25 openai
152 curie:ft-emeritus-2022-12-01-15-29-32 openai
153 curie:ft-emeritus-2022-12-01-15-52-24 openai
154 curie:ft-emeritus-2022-12-01-14-28-00 openai
155 curie:ft-emeritus-2022-12-01-14-16-46 openai
156 llama-3.1-sonar-huge-128k-online perplexity
157 llama-3.1-sonar-large-128k-online perplexity
158 llama-3.1-sonar-small-128k-online perplexity
159 codestral-2405 mistral
160 mistral-embed mistral
161 mistral-large-2407 mistral
162 mistral-medium-latest mistral
163 mistral-small-2409 mistral
164 mistral-small-latest mistral
165 open-mistral-7b mistral
166 open-mistral-nemo-2407 mistral
167 open-mixtral-8x22b mistral
168 open-mixtral-8x7b mistral
169 pixtral-12b-2409 mistral

Here we select GPT 4o (if no model is specified, the default model is used – run Model() to verify the current default model):

[13]:
model = Model("gpt-4o")
model
[13]:

LanguageModel

  key value
0 model gpt-4o
1 parameters:temperature 0.500000
2 parameters:max_tokens 1000
3 parameters:top_p 1
4 parameters:frequency_penalty 0
5 parameters:presence_penalty 0
6 parameters:logprobs False
7 parameters:top_logprobs 3

Adding data to the questions

We add the contents of each ticket into each question as an independent “scenario” for review. This allows us to create versions of the questions for each job post and deliver them to the model all at once:

[14]:
from edsl import ScenarioList

scenarios = ScenarioList.from_list("ticket", tickets)
scenarios
[14]:

ScenarioList scenarios: 20; keys: ['ticket'];

  ticket
0 I just realized I left my phone in the car on my last ride. Can you help me get it back?
1 I'm unhappy with my recent experience. The driver was very rude and unprofessional.
2 I was charged more than the estimated fare for my trip yesterday. Can you explain why?
3 The car seat provided was not properly installed, and I felt my child was at risk. Please ensure driver training.
4 My driver took a longer route than necessary, resulting in a higher fare. I request a fare adjustment.
5 I had a great experience with my driver today! Very friendly and efficient service.
6 I'm concerned about the vehicle's cleanliness. It was not up to the standard I expect.
7 The app keeps crashing every time I try to book a ride. Please fix this issue.
8 My driver was exceptional - safe driving, polite, and the car was spotless. Kudos!
9 I felt unsafe during my ride due to the driver's erratic behavior. This needs to be addressed immediately.
10 The driver refused to follow my preferred route, which is shorter. I'm not satisfied with the service.
11 Impressed with the quick response to my ride request and the driver's professionalism.
12 I was charged for a ride I never took. Please refund me as soon as possible.
13 The promo code I tried to use didn't work. Can you assist with this?
14 There was a suspicious smell in the car, and I'm worried about hygiene standards.
15 My driver was very considerate, especially helping me with my luggage. Appreciate the great service!
16 The app's GPS seems inaccurate. It directed the driver to the wrong pick-up location.
17 I want to compliment my driver's excellent navigation and time management during rush hour.
18 The vehicle didn't match the description in the app. It was confusing and concerning.
19 I faced an issue with payment processing after my last ride. Can you look into this?

Running the survey

We run the survey by adding the scenarios, agent and model with the by() method and then calling the run() method:

[15]:
results = survey.by(scenarios).by(agent).by(model).run()
Job Status (2024-12-28 14:00:54)
Job UUID 89894324-ea41-4619-b77b-d98bee3d986b
Progress Bar URL https://www.expectedparrot.com/home/remote-job-progress/89894324-ea41-4619-b77b-d98bee3d986b
Error Report URL None
Results UUID 7aa62007-54b7-41a9-a769-81bed1013949
Results URL None
Current Status: Job completed and Results stored on Coop: https://www.expectedparrot.com/content/7aa62007-54b7-41a9-a769-81bed1013949

This generates a formatted dataset of Results that includes information about all the components, including the prompts and responses. We can see a list of all the components:

[16]:
results.columns
[16]:
  0
0 agent.agent_instruction
1 agent.agent_name
2 agent.persona
3 agent.years_experience
4 answer.accident
5 answer.issues
6 answer.primary_issue
7 answer.priority
8 answer.refund
9 answer.sentiment
10 comment.accident_comment
11 comment.issues_comment
12 comment.primary_issue_comment
13 comment.priority_comment
14 comment.refund_comment
15 comment.sentiment_comment
16 generated_tokens.accident_generated_tokens
17 generated_tokens.issues_generated_tokens
18 generated_tokens.primary_issue_generated_tokens
19 generated_tokens.priority_generated_tokens
20 generated_tokens.refund_generated_tokens
21 generated_tokens.sentiment_generated_tokens
22 iteration.iteration
23 model.frequency_penalty
24 model.logprobs
25 model.max_tokens
26 model.model
27 model.presence_penalty
28 model.temperature
29 model.top_logprobs
30 model.top_p
31 prompt.accident_system_prompt
32 prompt.accident_user_prompt
33 prompt.issues_system_prompt
34 prompt.issues_user_prompt
35 prompt.primary_issue_system_prompt
36 prompt.primary_issue_user_prompt
37 prompt.priority_system_prompt
38 prompt.priority_user_prompt
39 prompt.refund_system_prompt
40 prompt.refund_user_prompt
41 prompt.sentiment_system_prompt
42 prompt.sentiment_user_prompt
43 question_options.accident_question_options
44 question_options.issues_question_options
45 question_options.primary_issue_question_options
46 question_options.priority_question_options
47 question_options.refund_question_options
48 question_options.sentiment_question_options
49 question_text.accident_question_text
50 question_text.issues_question_text
51 question_text.primary_issue_question_text
52 question_text.priority_question_text
53 question_text.refund_question_text
54 question_text.sentiment_question_text
55 question_type.accident_question_type
56 question_type.issues_question_type
57 question_type.primary_issue_question_type
58 question_type.priority_question_type
59 question_type.refund_question_type
60 question_type.sentiment_question_type
61 raw_model_response.accident_cost
62 raw_model_response.accident_one_usd_buys
63 raw_model_response.accident_raw_model_response
64 raw_model_response.issues_cost
65 raw_model_response.issues_one_usd_buys
66 raw_model_response.issues_raw_model_response
67 raw_model_response.primary_issue_cost
68 raw_model_response.primary_issue_one_usd_buys
69 raw_model_response.primary_issue_raw_model_response
70 raw_model_response.priority_cost
71 raw_model_response.priority_one_usd_buys
72 raw_model_response.priority_raw_model_response
73 raw_model_response.refund_cost
74 raw_model_response.refund_one_usd_buys
75 raw_model_response.refund_raw_model_response
76 raw_model_response.sentiment_cost
77 raw_model_response.sentiment_one_usd_buys
78 raw_model_response.sentiment_raw_model_response
79 scenario.ticket

Analyzing results

EDSL comes with built-in methods for analyzing results. Here we filter, sort, select and print components in a table:

[17]:
(
    results
    .filter("priority in [4, 5]")
    .sort_by("issues", "sentiment")
    .select("ticket", "issues", "primary_issue", "accident", "sentiment", "refund", "priority")
)
[17]:
  scenario.ticket answer.issues answer.primary_issue answer.accident answer.sentiment answer.refund answer.priority
0 The app's GPS seems inaccurate. It directed the driver to the wrong pick-up location. ['GPS/route'] The primary issue in this ticket is the inaccuracy of the app's GPS, which resulted in directing the driver to the wrong pick-up location. This can lead to delays and inconvenience for both the driver and the customer, so it's important to address the GPS functionality to ensure it provides accurate directions. No Somewhat negative No 4
1 The app keeps crashing every time I try to book a ride. Please fix this issue. ['other'] The primary issue in this ticket is that the app crashes whenever the user attempts to book a ride. The user is requesting a fix for this problem. Not applicable Somewhat negative No 5
2 The car seat provided was not properly installed, and I felt my child was at risk. Please ensure driver training. ['safety', 'driver performance'] The primary issue in this ticket is the improper installation of the car seat provided by the driver, which made the customer feel that their child's safety was at risk. The customer is requesting that drivers receive additional training to ensure proper car seat installation in the future. No Very negative No 5
3 I felt unsafe during my ride due to the driver's erratic behavior. This needs to be addressed immediately. ['safety', 'driver performance'] The primary issue in this ticket is the customer's feeling of being unsafe due to the driver's erratic behavior. This is a serious concern that requires immediate attention to ensure the safety of passengers and to address any potential misconduct by the driver. Not applicable Very negative No 5

We can apply some lables to our table:

[18]:
(
    results.select(
        "ticket",
        "issues",
        "primary_issue",
        "accident",
        "sentiment",
        "refund",
        "priority",
    ).print(
        pretty_labels={
            "scenario.ticket": "Ticket",
            "answer.issues": "Issues",
            "answer.primary_issue": "Primary issue",
            "answer.accident": "Accident",
            "answer.sentiment": "Sentiment",
            "answer.refund": "Refund request",
            "answer.priority": "Priority",
        }
    )
)
[18]:
  Ticket Issues Primary issue Accident Sentiment Refund request Priority
0 I just realized I left my phone in the car on my last ride. Can you help me get it back? ['lost item'] The primary issue in this ticket is that the customer left their phone in a car during their last ride and needs assistance in retrieving it. Not applicable Somewhat negative No 3
1 I'm unhappy with my recent experience. The driver was very rude and unprofessional. ['driver performance'] The primary issue in this ticket is the customer's dissatisfaction with the behavior of the driver, who was described as rude and unprofessional. Addressing this concern involves acknowledging the customer's experience, apologizing for the inconvenience, and taking appropriate steps to ensure such behavior is not repeated in the future. No Very negative No 3
2 I was charged more than the estimated fare for my trip yesterday. Can you explain why? ['other'] The primary issue in this ticket is that the customer was charged more than the estimated fare for their trip and is seeking an explanation for the discrepancy. Not applicable Somewhat negative No 3
3 The car seat provided was not properly installed, and I felt my child was at risk. Please ensure driver training. ['safety', 'driver performance'] The primary issue in this ticket is the improper installation of the car seat provided by the driver, which made the customer feel that their child's safety was at risk. The customer is requesting that drivers receive additional training to ensure proper car seat installation in the future. No Very negative No 5
4 My driver took a longer route than necessary, resulting in a higher fare. I request a fare adjustment. ['driver performance', 'GPS/route'] The primary issue in this ticket is that the customer believes the driver took a longer route than necessary, which led to a higher fare. The customer is requesting an adjustment to the fare to reflect what they believe should have been the correct amount. No Somewhat negative No 2
5 I had a great experience with my driver today! Very friendly and efficient service. ['driver performance'] It seems there is no issue in this ticket. Instead, it appears to be positive feedback about a great experience with the driver. It's always wonderful to receive compliments about friendly and efficient service! Not applicable Very positive No 0
6 I'm concerned about the vehicle's cleanliness. It was not up to the standard I expect. ['cleanliness'] The primary issue in this ticket is the customer's concern about the cleanliness of the vehicle. They feel that the vehicle was not cleaned to the standard they expect. Addressing this issue would involve ensuring the vehicle is thoroughly cleaned and possibly offering an apology or compensation to the customer for their inconvenience. No Somewhat negative No 2
7 The app keeps crashing every time I try to book a ride. Please fix this issue. ['other'] The primary issue in this ticket is that the app crashes whenever the user attempts to book a ride. The user is requesting a fix for this problem. Not applicable Somewhat negative No 5
8 My driver was exceptional - safe driving, polite, and the car was spotless. Kudos! ['safety', 'cleanliness', 'driver performance'] The primary issue in this ticket is not a complaint or problem, but rather positive feedback. The customer is expressing satisfaction with their driver, highlighting the driver's safe driving, politeness, and the cleanliness of the car. This is a commendation rather than an issue. Not applicable Very positive No 0
9 I felt unsafe during my ride due to the driver's erratic behavior. This needs to be addressed immediately. ['safety', 'driver performance'] The primary issue in this ticket is the customer's feeling of being unsafe due to the driver's erratic behavior. This is a serious concern that requires immediate attention to ensure the safety of passengers and to address any potential misconduct by the driver. Not applicable Very negative No 5
10 The driver refused to follow my preferred route, which is shorter. I'm not satisfied with the service. ['driver performance', 'GPS/route'] The primary issue in this ticket is that the driver did not follow the customer's preferred route, which the customer believes is shorter, leading to dissatisfaction with the service. As an expert customer service agent, I would address the customer's concern by acknowledging their frustration, explaining any possible reasons for the driver's decision (such as traffic conditions or company policy), and offering a resolution or compensation if appropriate. No Very negative No 2
11 Impressed with the quick response to my ride request and the driver's professionalism. ['driver performance', 'other'] Based on the content of the ticket, it appears that there is no issue being reported. Instead, the ticket contains positive feedback regarding the quick response to a ride request and the professionalism of the driver. This is a commendation rather than a complaint or issue that needs resolution. Not applicable Very positive No 0
12 I was charged for a ride I never took. Please refund me as soon as possible. ['other'] The primary issue in this ticket is an incorrect charge for a ride that the customer claims they did not take. The customer is requesting a refund for this charge. Not applicable Somewhat negative Yes 3
13 The promo code I tried to use didn't work. Can you assist with this? ['other'] The primary issue in this ticket is that the customer is experiencing difficulty with a promo code that did not work as expected. The customer is seeking assistance to resolve this issue. Not applicable Somewhat negative No 2
14 There was a suspicious smell in the car, and I'm worried about hygiene standards. ['cleanliness', 'other'] The primary issue in this ticket is the customer's concern about a suspicious smell in the car, which is raising worries about the hygiene standards of the vehicle. Addressing this issue would likely involve investigating the source of the smell and ensuring that the vehicle meets cleanliness and hygiene standards. No Somewhat negative No 3
15 My driver was very considerate, especially helping me with my luggage. Appreciate the great service! ['driver performance'] The primary issue in this ticket is actually not an issue at all. It appears to be a positive feedback or compliment regarding the driver's considerate behavior and assistance with luggage. It's always great to receive such positive comments about the service provided! No Very positive No 0
16 The app's GPS seems inaccurate. It directed the driver to the wrong pick-up location. ['GPS/route'] The primary issue in this ticket is the inaccuracy of the app's GPS, which resulted in directing the driver to the wrong pick-up location. This can lead to delays and inconvenience for both the driver and the customer, so it's important to address the GPS functionality to ensure it provides accurate directions. No Somewhat negative No 4
17 I want to compliment my driver's excellent navigation and time management during rush hour. ['driver performance', 'GPS/route'] The primary issue in this ticket is not a problem or complaint, but rather a compliment. The customer is expressing appreciation for their driver's excellent navigation and time management skills during rush hour. Not applicable Very positive No 1
18 The vehicle didn't match the description in the app. It was confusing and concerning. ['other'] The primary issue in this ticket is that the vehicle provided did not match the description given in the app. This discrepancy caused confusion and concern for the customer. It's important to address this by verifying the accuracy of vehicle descriptions in the app to ensure they align with what is actually provided, thereby enhancing customer trust and satisfaction. No Somewhat negative No 3
19 I faced an issue with payment processing after my last ride. Can you look into this? ['other'] The primary issue in this ticket is a problem with payment processing after the customer's last ride. The customer is requesting assistance to investigate and resolve the payment issue. Not applicable Neutral No 3

EDSL also comes with methods for accessing results as a dataframe or SQL table:

[19]:
df = (
    results
    .select(
        "issues",
        "primary_issue",
        "accident",
        "sentiment",
        "refund",
        "priority"
    )
    .to_pandas(remove_prefix=True)
)
df
[19]:
issues primary_issue accident sentiment refund priority
0 ['lost item'] The primary issue in this ticket is that the c... Not applicable Somewhat negative No 3
1 ['driver performance'] The primary issue in this ticket is the custom... No Very negative No 3
2 ['other'] The primary issue in this ticket is that the c... Not applicable Somewhat negative No 3
3 ['safety', 'driver performance'] The primary issue in this ticket is the improp... No Very negative No 5
4 ['driver performance', 'GPS/route'] The primary issue in this ticket is that the c... No Somewhat negative No 2
5 ['driver performance'] It seems there is no issue in this ticket. Ins... Not applicable Very positive No 0
6 ['cleanliness'] The primary issue in this ticket is the custom... No Somewhat negative No 2
7 ['other'] The primary issue in this ticket is that the a... Not applicable Somewhat negative No 5
8 ['safety', 'cleanliness', 'driver performance'] The primary issue in this ticket is not a comp... Not applicable Very positive No 0
9 ['safety', 'driver performance'] The primary issue in this ticket is the custom... Not applicable Very negative No 5
10 ['driver performance', 'GPS/route'] The primary issue in this ticket is that the d... No Very negative No 2
11 ['driver performance', 'other'] Based on the content of the ticket, it appears... Not applicable Very positive No 0
12 ['other'] The primary issue in this ticket is an incorre... Not applicable Somewhat negative Yes 3
13 ['other'] The primary issue in this ticket is that the c... Not applicable Somewhat negative No 2
14 ['cleanliness', 'other'] The primary issue in this ticket is the custom... No Somewhat negative No 3
15 ['driver performance'] The primary issue in this ticket is actually n... No Very positive No 0
16 ['GPS/route'] The primary issue in this ticket is the inaccu... No Somewhat negative No 4
17 ['driver performance', 'GPS/route'] The primary issue in this ticket is not a prob... Not applicable Very positive No 1
18 ['other'] The primary issue in this ticket is that the v... No Somewhat negative No 3
19 ['other'] The primary issue in this ticket is a problem ... Not applicable Neutral No 3

We can also access results as a SQL table:

[20]:
results.sql("""
select ticket, issues, primary_issue, accident, sentiment, refund, priority
from self
""")
[20]:
  ticket issues primary_issue accident sentiment refund priority
0 I just realized I left my phone in the car on my last ride. Can you help me get it back? ['lost item'] The primary issue in this ticket is that the customer left their phone in a car during their last ride and needs assistance in retrieving it. Not applicable Somewhat negative No 3
1 I'm unhappy with my recent experience. The driver was very rude and unprofessional. ['driver performance'] The primary issue in this ticket is the customer's dissatisfaction with the behavior of the driver, who was described as rude and unprofessional. Addressing this concern involves acknowledging the customer's experience, apologizing for the inconvenience, and taking appropriate steps to ensure such behavior is not repeated in the future. No Very negative No 3
2 I was charged more than the estimated fare for my trip yesterday. Can you explain why? ['other'] The primary issue in this ticket is that the customer was charged more than the estimated fare for their trip and is seeking an explanation for the discrepancy. Not applicable Somewhat negative No 3
3 The car seat provided was not properly installed, and I felt my child was at risk. Please ensure driver training. ['safety', 'driver performance'] The primary issue in this ticket is the improper installation of the car seat provided by the driver, which made the customer feel that their child's safety was at risk. The customer is requesting that drivers receive additional training to ensure proper car seat installation in the future. No Very negative No 5
4 My driver took a longer route than necessary, resulting in a higher fare. I request a fare adjustment. ['driver performance', 'GPS/route'] The primary issue in this ticket is that the customer believes the driver took a longer route than necessary, which led to a higher fare. The customer is requesting an adjustment to the fare to reflect what they believe should have been the correct amount. No Somewhat negative No 2
5 I had a great experience with my driver today! Very friendly and efficient service. ['driver performance'] It seems there is no issue in this ticket. Instead, it appears to be positive feedback about a great experience with the driver. It's always wonderful to receive compliments about friendly and efficient service! Not applicable Very positive No 0
6 I'm concerned about the vehicle's cleanliness. It was not up to the standard I expect. ['cleanliness'] The primary issue in this ticket is the customer's concern about the cleanliness of the vehicle. They feel that the vehicle was not cleaned to the standard they expect. Addressing this issue would involve ensuring the vehicle is thoroughly cleaned and possibly offering an apology or compensation to the customer for their inconvenience. No Somewhat negative No 2
7 The app keeps crashing every time I try to book a ride. Please fix this issue. ['other'] The primary issue in this ticket is that the app crashes whenever the user attempts to book a ride. The user is requesting a fix for this problem. Not applicable Somewhat negative No 5
8 My driver was exceptional - safe driving, polite, and the car was spotless. Kudos! ['safety', 'cleanliness', 'driver performance'] The primary issue in this ticket is not a complaint or problem, but rather positive feedback. The customer is expressing satisfaction with their driver, highlighting the driver's safe driving, politeness, and the cleanliness of the car. This is a commendation rather than an issue. Not applicable Very positive No 0
9 I felt unsafe during my ride due to the driver's erratic behavior. This needs to be addressed immediately. ['safety', 'driver performance'] The primary issue in this ticket is the customer's feeling of being unsafe due to the driver's erratic behavior. This is a serious concern that requires immediate attention to ensure the safety of passengers and to address any potential misconduct by the driver. Not applicable Very negative No 5
10 The driver refused to follow my preferred route, which is shorter. I'm not satisfied with the service. ['driver performance', 'GPS/route'] The primary issue in this ticket is that the driver did not follow the customer's preferred route, which the customer believes is shorter, leading to dissatisfaction with the service. As an expert customer service agent, I would address the customer's concern by acknowledging their frustration, explaining any possible reasons for the driver's decision (such as traffic conditions or company policy), and offering a resolution or compensation if appropriate. No Very negative No 2
11 Impressed with the quick response to my ride request and the driver's professionalism. ['driver performance', 'other'] Based on the content of the ticket, it appears that there is no issue being reported. Instead, the ticket contains positive feedback regarding the quick response to a ride request and the professionalism of the driver. This is a commendation rather than a complaint or issue that needs resolution. Not applicable Very positive No 0
12 I was charged for a ride I never took. Please refund me as soon as possible. ['other'] The primary issue in this ticket is an incorrect charge for a ride that the customer claims they did not take. The customer is requesting a refund for this charge. Not applicable Somewhat negative Yes 3
13 The promo code I tried to use didn't work. Can you assist with this? ['other'] The primary issue in this ticket is that the customer is experiencing difficulty with a promo code that did not work as expected. The customer is seeking assistance to resolve this issue. Not applicable Somewhat negative No 2
14 There was a suspicious smell in the car, and I'm worried about hygiene standards. ['cleanliness', 'other'] The primary issue in this ticket is the customer's concern about a suspicious smell in the car, which is raising worries about the hygiene standards of the vehicle. Addressing this issue would likely involve investigating the source of the smell and ensuring that the vehicle meets cleanliness and hygiene standards. No Somewhat negative No 3
15 My driver was very considerate, especially helping me with my luggage. Appreciate the great service! ['driver performance'] The primary issue in this ticket is actually not an issue at all. It appears to be a positive feedback or compliment regarding the driver's considerate behavior and assistance with luggage. It's always great to receive such positive comments about the service provided! No Very positive No 0
16 The app's GPS seems inaccurate. It directed the driver to the wrong pick-up location. ['GPS/route'] The primary issue in this ticket is the inaccuracy of the app's GPS, which resulted in directing the driver to the wrong pick-up location. This can lead to delays and inconvenience for both the driver and the customer, so it's important to address the GPS functionality to ensure it provides accurate directions. No Somewhat negative No 4
17 I want to compliment my driver's excellent navigation and time management during rush hour. ['driver performance', 'GPS/route'] The primary issue in this ticket is not a problem or complaint, but rather a compliment. The customer is expressing appreciation for their driver's excellent navigation and time management skills during rush hour. Not applicable Very positive No 1
18 The vehicle didn't match the description in the app. It was confusing and concerning. ['other'] The primary issue in this ticket is that the vehicle provided did not match the description given in the app. This discrepancy caused confusion and concern for the customer. It's important to address this by verifying the accuracy of vehicle descriptions in the app to ensure they align with what is actually provided, thereby enhancing customer trust and satisfaction. No Somewhat negative No 3
19 I faced an issue with payment processing after my last ride. Can you look into this? ['other'] The primary issue in this ticket is a problem with payment processing after the customer's last ride. The customer is requesting assistance to investigate and resolve the payment issue. Not applicable Neutral No 3

To export results to a CSV file:

[21]:
results.to_csv("data_labeling_example.csv")
[21]:

FileStore

  key value
0 path data_labeling_example.csv
1 base64_string YW5zd2VyLmFjY2lkZW50LGFuc3dlci5zZW50aW1lbnQsYW5zd2VyLnJlZnVuZCxhbnN3ZXIucHJpbWFyeV9pc3N1ZSxhbnN3ZXIucHJpb3JpdHksYW5zd2VyLmlzc3VlcyxzY2VuYXJpby50aWNrZXQsYWdlbnQucGVyc29uYSxhZ2VudC5hZ2VudF9uYW1lLGFnZW50LnllYXJzX2V4cGVyaWVuY2UsYWdlbnQuYWdlbnRfaW5zdHJ1Y3Rpb24sbW9kZWwuZnJlcXVlbmN5X3BlbmFsdHksbW9kZWwudG9wX3AsbW9kZWwucHJlc2VuY2VfcGVuYWx0eSxtb2RlbC5tb2RlbCxtb2RlbC50ZW1wZXJhdHVyZSxtb2RlbC5sb2dwcm9icyxtb2RlbC5tYXhfdG9rZW5zLG1vZGVsLnRvcF9sb2dwcm9icyxwcm9tcHQucHJpbWFyeV9pc3N1ZV91c2VyX3Byb21wdCxwcm9tcHQuYWNjaWRlbnRfc3lzdGVtX3Byb21wdCxwcm9tcHQucHJpb3JpdHlfc3lzdGVtX3Byb21wdCxwcm9tcHQuaXNzdWVzX3VzZXJfcHJvbXB0LHByb21wdC5wcmlvcml0eV91c2VyX3Byb21wdCxwcm9tcHQuc2VudGltZW50X3N5c3RlbV9wcm9tcHQscHJvbXB0LnJlZnVuZF9zeXN0ZW1fcHJvbXB0LHByb21wdC5pc3N1ZXNfc3lzdGVtX3Byb21wdCxwcm9tcHQuc2VudGltZW50X3VzZXJfcHJvbXB0LHByb21wdC5yZWZ1bmRfdXNlcl9wcm9tcHQscHJvbXB0LnByaW1hcnlfaXNzdWVfc3lzdGVtX3Byb21wdCxwcm9tcHQuYWNjaWRlbnRfdXNlcl9wcm9tcHQscmF3X21vZGVsX3Jlc3BvbnNlLnNlbnRpbWVudF9jb3N0LHJhd19tb2RlbF9yZXNwb25zZS5hY2NpZGVudF9yYXdfbW9kZWxfcmVzcG9uc2UscmF3X21vZGVsX3Jlc3BvbnNlLnNlbnRpbWVudF9yYXdfbW9kZWxfcmVzcG9uc2UscmF3X21vZGVsX3Jlc3BvbnNlLnNlbnRpbWVudF9vbmVfdXNkX2J1eXMscmF3X21vZGVsX3Jlc3BvbnNlLnJlZnVuZF9vbmVfdXNkX2J1eXMscmF3X21vZGVsX3Jlc3BvbnNlLmlzc3Vlc19yYXdfbW9kZWxfcmVzcG9uc2UscmF3X21vZGVsX3Jlc3BvbnNlLnByaW9yaXR5X2Nvc3QscmF3X21vZGVsX3Jlc3BvbnNlLmFjY2lkZW50X29uZV91c2RfYnV5cyxyYXdfbW9kZWxfcmVzcG9uc2UucmVmdW5kX2Nvc3QscmF3X21vZGVsX3Jlc3BvbnNlLmlzc3Vlc19jb3N0LHJhd19tb2RlbF9yZXNwb25zZS5wcmltYXJ5X2lzc3VlX3Jhd19tb2RlbF9yZXNwb25zZSxyYXdfbW9kZWxfcmVzcG9uc2UucHJpbWFyeV9pc3N1ZV9jb3N0LHJhd19tb2RlbF9yZXNwb25zZS5wcmltYXJ5X2lzc3VlX29uZV91c2RfYnV5cyxyYXdfbW9kZWxfcmVzcG9uc2UucHJpb3JpdHlfcmF3X21vZGVsX3Jlc3BvbnNlLHJhd19tb2RlbF9yZXNwb25zZS5pc3N1ZXNfb25lX3VzZF9idXlzLHJhd19tb2RlbF9yZXNwb25zZS5wcmlvcml0eV9vbmVfdXNkX2J1eXMscmF3X21vZGVsX3Jlc3BvbnNlLmFjY2lkZW50X2Nvc3QscmF3X21vZGVsX3Jlc3BvbnNlLnJlZnVuZF9yYXdfbW9kZWxfcmVzcG9uc2UsaXRlcmF0aW9uLml0ZXJhdGlvbixxdWVzdGlvbl90ZXh0LnJlZnVuZF9xdWVzdGlvbl90ZXh0LHF1ZXN0aW9uX3RleHQuYWNjaWRlbnRfcXVlc3Rpb25fdGV4dCxxdWVzdGlvbl90ZXh0LnByaW1hcnlfaXNzdWVfcXVlc3Rpb25fdGV4dCxxdWVzdGlvbl90ZXh0Lmlzc3Vlc19xdWVzdGlvbl90ZXh0LHF1ZXN0aW9uX3RleHQucHJpb3JpdHlfcXVlc3Rpb25fdGV4dCxxdWVzdGlvbl90ZXh0LnNlbnRpbWVudF9xdWVzdGlvbl90ZXh0LHF1ZXN0aW9uX29wdGlvbnMuaXNzdWVzX3F1ZXN0aW9uX29wdGlvbnMscXVlc3Rpb25fb3B0aW9ucy5zZW50aW1lbnRfcXVlc3Rpb25fb3B0aW9ucyxxdWVzdGlvbl9vcHRpb25zLnByaW1hcnlfaXNzdWVfcXVlc3Rpb25fb3B0aW9ucyxxdWVzdGlvbl9vcHRpb25zLnJlZnVuZF9xdWVzdGlvbl9vcHRpb25zLHF1ZXN0aW9uX29wdGlvbnMuYWNjaWRlbnRfcXVlc3Rpb25fb3B0aW9ucyxxdWVzdGlvbl9vcHRpb25zLnByaW9yaXR5X3F1ZXN0aW9uX29wdGlvbnMscXVlc3Rpb25fdHlwZS5wcmlvcml0eV9xdWVzdGlvbl90eXBlLHF1ZXN0aW9uX3R5cGUuYWNjaWRlbnRfcXVlc3Rpb25fdHlwZSxxdWVzdGlvbl90eXBlLnNlbnRpbWVudF9xdWVzdGlvbl90eXBlLHF1ZXN0aW9uX3R5cGUucmVmdW5kX3F1ZXN0aW9uX3R5cGUscXVlc3Rpb25fdHlwZS5wcmltYXJ5X2lzc3VlX3F1ZXN0aW9uX3R5cGUscXVlc3Rpb25fdHlwZS5pc3N1ZXNfcXVlc3Rpb25fdHlwZSxjb21tZW50LnByaW1hcnlfaXNzdWVfY29tbWVudCxjb21tZW50LnJlZnVuZF9jb21tZW50LGNvbW1lbnQucHJpb3JpdHlfY29tbWVudCxjb21tZW50Lmlzc3Vlc19jb21tZW50LGNvbW1lbnQuc2VudGltZW50X2NvbW1lbnQsY29tbWVudC5hY2NpZGVudF9jb21tZW50LGdlbmVyYXRlZF90b2tlbnMuc2VudGltZW50X2dlbmVyYXRlZF90b2tlbnMsZ2VuZXJhdGVkX3Rva2Vucy5pc3N1ZXNfZ2VuZXJhdGVkX3Rva2VucyxnZW5lcmF0ZWRfdG9rZW5zLnJlZnVuZF9nZW5lcmF0ZWRfdG9rZW5zLGdlbmVyYXRlZF90b2tlbnMucHJpbWFyeV9pc3N1ZV9nZW5lcmF0ZWRfdG9rZW5zLGdlbmVyYXRlZF90b2tlbnMuYWNjaWRlbnRfZ2VuZXJhdGVkX3Rva2VucyxnZW5lcmF0ZWRfdG9rZW5zLnByaW9yaXR5X2dlbmVyYXRlZF90b2tlbnMNCk5vdCBhcHBsaWNhYmxlLFNvbWV3aGF0IG5lZ2F0aXZlLE5vLFRoZSBwcmltYXJ5IGlzc3VlIGluIHRoaXMgdGlja2V0IGlzIHRoYXQgdGhlIGN1c3RvbWVyIGxlZnQgdGhlaXIgcGhvbmUgaW4gYSBjYXIgZHVyaW5nIHRoZWlyIGxhc3QgcmlkZSBhbmQgbmVlZHMgYXNzaXN0YW5jZSBpbiByZXRyaWV2aW5nIGl0LiwzLFsnbG9zdCBpdGVtJ10sSSBqdXN0IHJlYWxpemVkIEkgbGVmdCBteSBwaG9uZSBpbiB0aGUgY2FyIG9uIG15IGxhc3QgcmlkZS4gQ2FuIHlvdSBoZWxwIG1lIGdldCBpdCBiYWNrPyxZb3UgYXJlIGFuIGV4cGVydCBjdXN0b21lciBzZXJ2aWNlIGFnZW50LixBZ2VudF8wLDE1LFlvdSBhcmUgYW5zd2VyaW5nIHF1ZXN0aW9ucyBhcyBpZiB5b3Ugd2VyZSBhIGh1bWFuLiBEbyBub3QgYnJlYWsgY2hhcmFjdGVyLiwwLDEsMCxncHQtNG8sMC41LEZhbHNlLDEwMDAsMyxXaGF0IGlzIHRoZSBwcmltYXJ5IGlzc3VlIGluIHRoaXMgdGlja2V0PyBUaWNrZXQ6IEkganVzdCByZWFsaXplZCBJIGxlZnQgbXkgcGhvbmUgaW4gdGhlIGNhciBvbiBteSBsYXN0IHJpZGUuIENhbiB5b3UgaGVscCBtZSBnZXQgaXQgYmFjaz8sIllvdSBhcmUgYW5zd2VyaW5nIHF1ZXN0aW9ucyBhcyBpZiB5b3Ugd2VyZSBhIGh1bWFuLiBEbyBub3QgYnJlYWsgY2hhcmFjdGVyLiBZb3VyIHRyYWl0czogeydwZXJzb25hJzogJ1lvdSBhcmUgYW4gZXhwZXJ0IGN1c3RvbWVyIHNlcnZpY2UgYWdlbnQuJywgJ3llYXJzX2V4cGVyaWVuY2UnOiAxNX0iLCJZb3UgYXJlIGFuc3dlcmluZyBxdWVzdGlvbnMgYXMgaWYgeW91IHdlcmUgYSBodW1hbi4gRG8gbm90IGJyZWFrIGNoYXJhY3Rlci4gWW91ciB0cmFpdHM6IHsncGVyc29uYSc6ICdZb3UgYXJlIGFuIGV4cGVydCBjdXN0b21lciBzZXJ2aWNlIGFnZW50LicsICd5ZWFyc19leHBlcmllbmNlJzogMTV9IiwiQ2hlY2sgYWxsIG9mIHRoZSBpc3N1ZXMgbWVudGlvbmVkIGluIHRoaXMgdGlja2V0OiBJIGp1c3QgcmVhbGl6ZWQgSSBsZWZ0IG15IHBob25lIGluIHRoZSBjYXIgb24gbXkgbGFzdCByaWRlLiBDYW4geW91IGhlbHAgbWUgZ2V0IGl0IGJhY2s/CgogICAgCjA6IHNhZmV0eQogICAgCjE6IGNsZWFubGluZXNzCiAgICAKMjogZHJpdmVyIHBlcmZvcm1hbmNlCiAgICAKMzogR1BTL3JvdXRlCiAgICAKNDogbG9zdCBpdGVtCiAgICAKNTogb3RoZXIKICAgIAoKCgoKCgpQbGVhc2UgcmVzcG9uZCBvbmx5IHdpdGggYSBjb21tYS1zZXBhcmF0ZWQgbGlzdCBvZiB0aGUgY29kZSBvZiB0aGUgb3B0aW9ucyB0aGF0IGFwcGx5LCB3aXRoIHNxdWFyZSBicmFja2V0cy4gRS5nLiwgWzAsIDEsIDNdCgoKQWZ0ZXIgdGhlIGFuc3dlciwgeW91IGNhbiBwdXQgYSBjb21tZW50IGV4cGxhaW5pbmcgeW91ciBjaG9pY2Ugb24gdGhlIG5leHQgbGluZS4iLCJPbiBhIHNjYWxlIGZyb20gMCB0byA1LCB3aGF0IGlzIHRoZSBwcmlvcml0eSBsZXZlbCBvZiB0aGlzIHRpY2tldD8gVGlja2V0OiBJIGp1c3QgcmVhbGl6ZWQgSSBsZWZ0IG15IHBob25lIGluIHRoZSBjYXIgb24gbXkgbGFzdCByaWRlLiBDYW4geW91IGhlbHAgbWUgZ2V0IGl0IGJhY2s/CgowIDogTG93ZXN0CgoxIDogCgoyIDogCgozIDogCgo0IDogCgo1IDogSGlnaGVzdAoKT25seSAxIG9wdGlvbiBtYXkgYmUgc2VsZWN0ZWQuCgpSZXNwb25kIG9ubHkgd2l0aCB0aGUgY29kZSBjb3JyZXNwb25kaW5nIHRvIG9uZSBvZiB0aGUgb3B0aW9ucy4gRS5nLiwgIiIxIiIgb3IgIiI1IiIgYnkgaXRzZWxmLgoKQWZ0ZXIgdGhlIGFuc3dlciwgeW91IGNhbiBwdXQgYSBjb21tZW50IGV4cGxhaW5pbmcgd2h5IHlvdSBjaG9zZSB0aGF0IG9wdGlvbiBvbiB0aGUgbmV4dCBsaW5lLiIsIllvdSBhcmUgYW5zd2VyaW5nIHF1ZXN0aW9ucyBhcyBpZiB5b3Ugd2VyZSBhIGh1bWFuLiBEbyBub3QgYnJlYWsgY2hhcmFjdGVyLiBZb3VyIHRyYWl0czogeydwZXJzb25hJzogJ1lvdSBhcmUgYW4gZXhwZXJ0IGN1c3RvbWVyIHNlcnZpY2UgYWdlbnQuJywgJ3llYXJzX2V4cGVyaWVuY2UnOiAxNX0iLCJZb3UgYXJlIGFuc3dlcmluZyBxdWVzdGlvbnMgYXMgaWYgeW91IHdlcmUgYSBodW1hbi4gRG8gbm90IGJyZWFrIGNoYXJhY3Rlci4gWW91ciB0cmFpdHM6IHsncGVyc29uYSc6ICdZb3UgYXJlIGFuIGV4cGVydCBjdXN0b21lciBzZXJ2aWNlIGFnZW50LicsICd5ZWFyc19leHBlcmllbmNlJzogMTV9IiwiWW91IGFyZSBhbnN3ZXJpbmcgcXVlc3Rpb25zIGFzIGlmIHlvdSB3ZXJlIGEgaHVtYW4uIERvIG5vdCBicmVhayBjaGFyYWN0ZXIuIFlvdXIgdHJhaXRzOiB7J3BlcnNvbmEnOiAnWW91IGFyZSBhbiBleHBlcnQgY3VzdG9tZXIgc2VydmljZSBhZ2VudC4nLCAneWVhcnNfZXhwZXJpZW5jZSc6IDE1fSIsIgpXaGF0IGlzIHRoZSBzZW50aW1lbnQgb2YgdGhpcyB0aWNrZXQ/IFRpY2tldDogSSBqdXN0IHJlYWxpemVkIEkgbGVmdCBteSBwaG9uZSBpbiB0aGUgY2FyIG9uIG15IGxhc3QgcmlkZS4gQ2FuIHlvdSBoZWxwIG1lIGdldCBpdCBiYWNrPwoKICAgIApWZXJ5IHBvc2l0aXZlCiAgICAKU29tZXdoYXQgcG9zaXRpdmUKICAgIApOZXV0cmFsCiAgICAKU29tZXdoYXQgbmVnYXRpdmUKICAgIApWZXJ5IG5lZ2F0aXZlCiAgICAKCk9ubHkgMSBvcHRpb24gbWF5IGJlIHNlbGVjdGVkLgoKUmVzcG9uZCBvbmx5IHdpdGggYSBzdHJpbmcgY29ycmVzcG9uZGluZyB0byBvbmUgb2YgdGhlIG9wdGlvbnMuCgoKQWZ0ZXIgdGhlIGFuc3dlciwgeW91IGNhbiBwdXQgYSBjb21tZW50IGV4cGxhaW5pbmcgd2h5IHlvdSBjaG9zZSB0aGF0IG9wdGlvbiBvbiB0aGUgbmV4dCBsaW5lLiIsIgpEb2VzIHRoZSBjdXN0b21lciBhc2sgZm9yIGEgcmVmdW5kIGluIHRoaXMgdGlja2V0PyBUaWNrZXQ6IEkganVzdCByZWFsaXplZCBJIGxlZnQgbXkgcGhvbmUgaW4gdGhlIGNhciBvbiBteSBsYXN0IHJpZGUuIENhbiB5b3UgaGVscCBtZSBnZXQgaXQgYmFjaz8KCiAgICAKTm8KICAgIApZZXMKICAgIAoKT25seSAxIG9wdGlvbiBtYXkgYmUgc2VsZWN0ZWQuClBsZWFzZSByZXNwb25kIHdpdGgganVzdCB5b3VyIGFuc3dlci4gCgoKQWZ0ZXIgdGhlIGFuc3dlciwgeW91IGNhbiBwdXQgYSBjb21tZW50IGV4cGxhaW5pbmcgeW91ciByZXNwb25zZS4iLCJZb3UgYXJlIGFuc3dlcmluZyBxdWVzdGlvbnMgYXMgaWYgeW91IHdlcmUgYSBodW1hbi4gRG8gbm90IGJyZWFrIGNoYXJhY3Rlci4gWW91ciB0cmFpdHM6IHsncGVyc29uYSc6ICdZb3UgYXJlIGFuIGV4cGVydCBjdXN0b21lciBzZXJ2aWNlIGFnZW50LicsICd5ZWFyc19leHBlcmllbmNlJzogMTV9IiwiCklmIHRoZSBwcmltYXJ5IGlzc3VlIGluIHRoaXMgdGlja2V0IGlzIHNhZmV0eSwgd2FzIHRoZXJlIGFuIGFjY2lkZW50IHdoZXJlIHNvbWVvbmUgd2FzIGh1cnQ/IFRpY2tldDogSSBqdXN0IHJlYWxpemVkIEkgbGVmdCBteSBwaG9uZSBpbiB0aGUgY2FyIG9uIG15IGxhc3QgcmlkZS4gQ2FuIHlvdSBoZWxwIG1lIGdldCBpdCBiYWNrPwoKICAgIApZZXMKICAgIApObwogICAgCk5vdCBhcHBsaWNhYmxlCiAgICAKCk9ubHkgMSBvcHRpb24gbWF5IGJlIHNlbGVjdGVkLgoKUmVzcG9uZCBvbmx5IHdpdGggYSBzdHJpbmcgY29ycmVzcG9uZGluZyB0byBvbmUgb2YgdGhlIG9wdGlvbnMuCgoKQWZ0ZXIgdGhlIGFuc3dlciwgeW91IGNhbiBwdXQgYSBjb21tZW50IGV4cGxhaW5pbmcgd2h5IHlvdSBjaG9zZSB0aGF0IG9wdGlvbiBvbiB0aGUgbmV4dCBsaW5lLiIsMC4wMDA2NTI1LCJ7J2lkJzogJ2NoYXRjbXBsLUFlT0xDMDdWcmJHckZ1aHF0NDlyZzN3U0xwU3dOJywgJ2Nob2ljZXMnOiBbeydmaW5pc2hfcmVhc29uJzogJ3N0b3AnLCAnaW5kZXgnOiAwLCAnbG9ncHJvYnMnOiBOb25lLCAnbWVzc2FnZSc6IHsnY29udGVudCc6ICdOb3QgYXBwbGljYWJsZSAgXG5UaGUgaXNzdWUgZGVzY3JpYmVkIGluIHRoZSB0aWNrZXQgaXMgYWJvdXQgYSBsb3N0IHBob25lLCBub3QgYW4gYWNjaWRlbnQgb3Igc2FmZXR5IGNvbmNlcm4uJywgJ3JlZnVzYWwnOiBOb25lLCAncm9sZSc6ICdhc3Npc3RhbnQnLCAnYXVkaW8nOiBOb25lLCAnZnVuY3Rpb25fY2FsbCc6IE5vbmUsICd0b29sX2NhbGxzJzogTm9uZX19XSwgJ2NyZWF0ZWQnOiAxNzM0MTkwMDUwLCAnbW9kZWwnOiAnZ3B0LTRvLTIwMjQtMDgtMDYnLCAnb2JqZWN0JzogJ2NoYXQuY29tcGxldGlvbicsICdzZXJ2aWNlX3RpZXInOiBOb25lLCAnc3lzdGVtX2ZpbmdlcnByaW50JzogJ2ZwXzlmYWJhOWYwMzgnLCAndXNhZ2UnOiB7J2NvbXBsZXRpb25fdG9rZW5zJzogMjIsICdwcm9tcHRfdG9rZW5zJzogMTQzLCAndG90YWxfdG9rZW5zJzogMTY1LCAnY29tcGxldGlvbl90b2tlbnNfZGV0YWlscyc6IHsnYWNjZXB0ZWRfcHJlZGljdGlvbl90b2tlbnMnOiAwLCAnYXVkaW9fdG9rZW5zJzogMCwgJ3JlYXNvbmluZ190b2tlbnMnOiAwLCAncmVqZWN0ZWRfcHJlZGljdGlvbl90b2tlbnMnOiAwfSwgJ3Byb21wdF90b2tlbnNfZGV0YWlscyc6IHsnYXVkaW9fdG9rZW5zJzogMCwgJ2NhY2hlZF90b2tlbnMnOiAwfX19IiwieydpZCc6ICdjaGF0Y21wbC1BZU9MQ0lLUWEwbzVRWU5kUEhpVlRET0xxVXhaRycsICdjaG9pY2VzJzogW3snZmluaXNoX3JlYXNvbic6ICdzdG9wJywgJ2luZGV4JzogMCwgJ2xvZ3Byb2JzJzogTm9uZSwgJ21lc3NhZ2UnOiB7J2NvbnRlbnQnOiAnU29tZXdoYXQgbmVnYXRpdmUgIFxuVGhlIHNlbnRpbWVudCBpcyBzb21ld2hhdCBuZWdhdGl2ZSBiZWNhdXNlIHRoZSBjdXN0b21lciBpcyBleHBlcmllbmNpbmcgYSBwcm9ibGVtIG9yIGluY29udmVuaWVuY2UgYnkgbG9zaW5nIHRoZWlyIHBob25lIGFuZCBpcyBzZWVraW5nIGFzc2lzdGFuY2UgdG8gcmVzb2x2ZSBpdC4nLCAncmVmdXNhbCc6IE5vbmUsICdyb2xlJzogJ2Fzc2lzdGFudCcsICdhdWRpbyc6IE5vbmUsICdmdW5jdGlvbl9jYWxsJzogTm9uZSwgJ3Rvb2xfY2FsbHMnOiBOb25lfX1dLCAnY3JlYXRlZCc6IDE3MzQxOTAwNTAsICdtb2RlbCc6ICdncHQtNG8tMjAyNC0wOC0wNicsICdvYmplY3QnOiAnY2hhdC5jb21wbGV0aW9uJywgJ3NlcnZpY2VfdGllcic6IE5vbmUsICdzeXN0ZW1fZmluZ2VycHJpbnQnOiAnZnBfYTc5ZDhkYWMxZicsICd1c2FnZSc6IHsnY29tcGxldGlvbl90b2tlbnMnOiAzMCwgJ3Byb21wdF90b2tlbnMnOiAxNDEsICd0b3RhbF90b2tlbnMnOiAxNzEsICdjb21wbGV0aW9uX3Rva2Vuc19kZXRhaWxzJzogeydhY2NlcHRlZF9wcmVkaWN0aW9uX3Rva2Vucyc6IDAsICdhdWRpb190b2tlbnMnOiAwLCAncmVhc29uaW5nX3Rva2Vucyc6IDAsICdyZWplY3RlZF9wcmVkaWN0aW9uX3Rva2Vucyc6IDB9LCAncHJvbXB0X3Rva2Vuc19kZXRhaWxzJzogeydhdWRpb190b2tlbnMnOiAwLCAnY2FjaGVkX3Rva2Vucyc6IDB9fX0iLDE1MzIuNTY3MDQ5ODA4NDI5MSwyMDMwLjQ1Njg1Mjc5MTg3ODIsInsnaWQnOiAnY2hhdGNtcGwtQWVPTENrWEpMcTUxWmlNTmFqNTBFeUs2alhYa3knLCAnY2hvaWNlcyc6IFt7J2ZpbmlzaF9yZWFzb24nOiAnc3RvcCcsICdpbmRleCc6IDAsICdsb2dwcm9icyc6IE5vbmUsICdtZXNzYWdlJzogeydjb250ZW50JzogJ1s0XSAgXG5UaGUgaXNzdWUgbWVudGlvbmVkIGluIHRoZSB0aWNrZXQgaXMgcmVsYXRlZCB0byBhIGxvc3QgaXRlbSwgc3BlY2lmaWNhbGx5IGEgcGhvbmUgbGVmdCBpbiB0aGUgY2FyLicsICdyZWZ1c2FsJzogTm9uZSwgJ3JvbGUnOiAnYXNzaXN0YW50JywgJ2F1ZGlvJzogTm9uZSwgJ2Z1bmN0aW9uX2NhbGwnOiBOb25lLCAndG9vbF9jYWxscyc6IE5vbmV9fV0sICdjcmVhdGVkJzogMTczNDE5MDA1MCwgJ21vZGVsJzogJ2dwdC00by0yMDI0LTA4LTA2JywgJ29iamVjdCc6ICdjaGF0LmNvbXBsZXRpb24nLCAnc2VydmljZV90aWVyJzogTm9uZSwgJ3N5c3RlbV9maW5nZXJwcmludCc6ICdmcF9mNzg1ZWI1ZjQ3JywgJ3VzYWdlJzogeydjb21wbGV0aW9uX3Rva2Vucyc6IDI1LCAncHJvbXB0X3Rva2Vucyc6IDE2NCwgJ3RvdGFsX3Rva2Vucyc6IDE4OSwgJ2NvbXBsZXRpb25fdG9rZW5zX2RldGFpbHMnOiB7J2FjY2VwdGVkX3ByZWRpY3Rpb25fdG9rZW5zJzogMCwgJ2F1ZGlvX3Rva2Vucyc6IDAsICdyZWFzb25pbmdfdG9rZW5zJzogMCwgJ3JlamVjdGVkX3ByZWRpY3Rpb25fdG9rZW5zJzogMH0sICdwcm9tcHRfdG9rZW5zX2RldGFpbHMnOiB7J2F1ZGlvX3Rva2Vucyc6IDAsICdjYWNoZWRfdG9rZW5zJzogMH19fSIsMC4wMDA3ODc1LDE3MzEuNjAxNzMxNjAxNzMxNywwLjAwMDQ5MjUsMC4wMDA2NiwieydpZCc6ICdjaGF0Y21wbC1BZU9MQ3hRSHlBRWY4b3FpWG4zUTV1VnpPYlRIRScsICdjaG9pY2VzJzogW3snZmluaXNoX3JlYXNvbic6ICdzdG9wJywgJ2luZGV4JzogMCwgJ2xvZ3Byb2JzJzogTm9uZSwgJ21lc3NhZ2UnOiB7J2NvbnRlbnQnOiAnVGhlIHByaW1hcnkgaXNzdWUgaW4gdGhpcyB0aWNrZXQgaXMgdGhhdCB0aGUgY3VzdG9tZXIgbGVmdCB0aGVpciBwaG9uZSBpbiBhIGNhciBkdXJpbmcgdGhlaXIgbGFzdCByaWRlIGFuZCBuZWVkcyBhc3Npc3RhbmNlIGluIHJldHJpZXZpbmcgaXQuJywgJ3JlZnVzYWwnOiBOb25lLCAncm9sZSc6ICdhc3Npc3RhbnQnLCAnYXVkaW8nOiBOb25lLCAnZnVuY3Rpb25fY2FsbCc6IE5vbmUsICd0b29sX2NhbGxzJzogTm9uZX19XSwgJ2NyZWF0ZWQnOiAxNzM0MTkwMDUwLCAnbW9kZWwnOiAnZ3B0LTRvLTIwMjQtMDgtMDYnLCAnb2JqZWN0JzogJ2NoYXQuY29tcGxldGlvbicsICdzZXJ2aWNlX3RpZXInOiBOb25lLCAnc3lzdGVtX2ZpbmdlcnByaW50JzogJ2ZwX2E3OWQ4ZGFjMWYnLCAndXNhZ2UnOiB7J2NvbXBsZXRpb25fdG9rZW5zJzogMjcsICdwcm9tcHRfdG9rZW5zJzogODQsICd0b3RhbF90b2tlbnMnOiAxMTEsICdjb21wbGV0aW9uX3Rva2Vuc19kZXRhaWxzJzogeydhY2NlcHRlZF9wcmVkaWN0aW9uX3Rva2Vucyc6IDAsICdhdWRpb190b2tlbnMnOiAwLCAncmVhc29uaW5nX3Rva2Vucyc6IDAsICdyZWplY3RlZF9wcmVkaWN0aW9uX3Rva2Vucyc6IDB9LCAncHJvbXB0X3Rva2Vuc19kZXRhaWxzJzogeydhdWRpb190b2tlbnMnOiAwLCAnY2FjaGVkX3Rva2Vucyc6IDB9fX0iLDAuMDAwNDgsMjA4My4zMzMzMzMzMzMzMzM1LCJ7J2lkJzogJ2NoYXRjbXBsLUFlT0xDRjFNUER1dXE3OXE5T2VPRzNGMFVkWWpVJywgJ2Nob2ljZXMnOiBbeydmaW5pc2hfcmVhc29uJzogJ3N0b3AnLCAnaW5kZXgnOiAwLCAnbG9ncHJvYnMnOiBOb25lLCAnbWVzc2FnZSc6IHsnY29udGVudCc6ICczICBcblRoaXMgc2l0dWF0aW9uIGlzIHVyZ2VudCBiZWNhdXNlIHRoZSBjdXN0b21lciBuZWVkcyB0aGVpciBwaG9uZSBiYWNrLCBidXQgaXQgaXMgbm90IGFuIGVtZXJnZW5jeSBvciBsaWZlLXRocmVhdGVuaW5nIHNpdHVhdGlvbi4gSXQgcmVxdWlyZXMgcHJvbXB0IGF0dGVudGlvbiB0byBmYWNpbGl0YXRlIHRoZSByZWNvdmVyeSBvZiB0aGUgcGhvbmUuJywgJ3JlZnVzYWwnOiBOb25lLCAncm9sZSc6ICdhc3Npc3RhbnQnLCAnYXVkaW8nOiBOb25lLCAnZnVuY3Rpb25fY2FsbCc6IE5vbmUsICd0b29sX2NhbGxzJzogTm9uZX19XSwgJ2NyZWF0ZWQnOiAxNzM0MTkwMDUwLCAnbW9kZWwnOiAnZ3B0LTRvLTIwMjQtMDgtMDYnLCAnb2JqZWN0JzogJ2NoYXQuY29tcGxldGlvbicsICdzZXJ2aWNlX3RpZXInOiBOb25lLCAnc3lzdGVtX2ZpbmdlcnByaW50JzogJ2ZwX2E3OWQ4ZGFjMWYnLCAndXNhZ2UnOiB7J2NvbXBsZXRpb25fdG9rZW5zJzogMzcsICdwcm9tcHRfdG9rZW5zJzogMTY3LCAndG90YWxfdG9rZW5zJzogMjA0LCAnY29tcGxldGlvbl90b2tlbnNfZGV0YWlscyc6IHsnYWNjZXB0ZWRfcHJlZGljdGlvbl90b2tlbnMnOiAwLCAnYXVkaW9fdG9rZW5zJzogMCwgJ3JlYXNvbmluZ190b2tlbnMnOiAwLCAncmVqZWN0ZWRfcHJlZGljdGlvbl90b2tlbnMnOiAwfSwgJ3Byb21wdF90b2tlbnNfZGV0YWlscyc6IHsnYXVkaW9fdG9rZW5zJzogMCwgJ2NhY2hlZF90b2tlbnMnOiAwfX19IiwxNTE1LjE1MTUxNTE1MTUxNTIsMTI2OS44NDEyNjk4NDEyNjk5LDAuMDAwNTc3NSwieydpZCc6ICdjaGF0Y21wbC1BZU9MQzhsYjdOaUZyRUIwbzNuRTc5YVZyY2lFWicsICdjaG9pY2VzJzogW3snZmluaXNoX3JlYXNvbic6ICdzdG9wJywgJ2luZGV4JzogMCwgJ2xvZ3Byb2JzJzogTm9uZSwgJ21lc3NhZ2UnOiB7J2NvbnRlbnQnOiAnTm9cblxuVGhlIHRpY2tldCBpcyByZXF1ZXN0aW5nIGFzc2lzdGFuY2UgaW4gcmV0cmlldmluZyBhIGxvc3QgaXRlbSwgbm90IGFza2luZyBmb3IgYSByZWZ1bmQuJywgJ3JlZnVzYWwnOiBOb25lLCAncm9sZSc6ICdhc3Npc3RhbnQnLCAnYXVkaW8nOiBOb25lLCAnZnVuY3Rpb25fY2FsbCc6IE5vbmUsICd0b29sX2NhbGxzJzogTm9uZX19XSwgJ2NyZWF0ZWQnOiAxNzM0MTkwMDUwLCAnbW9kZWwnOiAnZ3B0LTRvLTIwMjQtMDgtMDYnLCAnb2JqZWN0JzogJ2NoYXQuY29tcGxldGlvbicsICdzZXJ2aWNlX3RpZXInOiBOb25lLCAnc3lzdGVtX2ZpbmdlcnByaW50JzogJ2ZwXzlmYWJhOWYwMzgnLCAndXNhZ2UnOiB7J2NvbXBsZXRpb25fdG9rZW5zJzogMTksICdwcm9tcHRfdG9rZW5zJzogMTIxLCAndG90YWxfdG9rZW5zJzogMTQwLCAnY29tcGxldGlvbl90b2tlbnNfZGV0YWlscyc6IHsnYWNjZXB0ZWRfcHJlZGljdGlvbl90b2tlbnMnOiAwLCAnYXVkaW9fdG9rZW5zJzogMCwgJ3JlYXNvbmluZ190b2tlbnMnOiAwLCAncmVqZWN0ZWRfcHJlZGljdGlvbl90b2tlbnMnOiAwfSwgJ3Byb21wdF90b2tlbnNfZGV0YWlscyc6IHsnYXVkaW9fdG9rZW5zJzogMCwgJ2NhY2hlZF90b2tlbnMnOiAwfX19IiwwLERvZXMgdGhlIGN1c3RvbWVyIGFzayBmb3IgYSByZWZ1bmQgaW4gdGhpcyB0aWNrZXQ/IFRpY2tldDoge3sgdGlja2V0IH19LCJJZiB0aGUgcHJpbWFyeSBpc3N1ZSBpbiB0aGlzIHRpY2tldCBpcyBzYWZldHksIHdhcyB0aGVyZSBhbiBhY2NpZGVudCB3aGVyZSBzb21lb25lIHdhcyBodXJ0PyBUaWNrZXQ6IHt7IHRpY2tldCB9fSIsV2hhdCBpcyB0aGUgcHJpbWFyeSBpc3N1ZSBpbiB0aGlzIHRpY2tldD8gVGlja2V0OiB7eyB0aWNrZXQgfX0sQ2hlY2sgYWxsIG9mIHRoZSBpc3N1ZXMgbWVudGlvbmVkIGluIHRoaXMgdGlja2V0OiB7eyB0aWNrZXQgfX0sIk9uIGEgc2NhbGUgZnJvbSAwIHRvIDUsIHdoYXQgaXMgdGhlIHByaW9yaXR5IGxldmVsIG9mIHRoaXMgdGlja2V0PyBUaWNrZXQ6IHt7IHRpY2tldCB9fSIsV2hhdCBpcyB0aGUgc2VudGltZW50IG9mIHRoaXMgdGlja2V0PyBUaWNrZXQ6IHt7IHRpY2tldCB9fSwiWydzYWZldHknLCAnY2xlYW5saW5lc3MnLCAnZHJpdmVyIHBlcmZvcm1hbmNlJywgJ0dQUy9yb3V0ZScsICdsb3N0IGl0ZW0nLCAnb3RoZXInXSIsIlsnVmVyeSBwb3NpdGl2ZScsICdTb21ld2hhdCBwb3NpdGl2ZScsICdOZXV0cmFsJywgJ1NvbWV3aGF0IG5lZ2F0aXZlJywgJ1ZlcnkgbmVnYXRpdmUnXSIsLCJbJ05vJywgJ1llcyddIiwiWydZZXMnLCAnTm8nLCAnTm90IGFwcGxpY2FibGUnXSIsIlswLCAxLCAyLCAzLCA0LCA1XSIsbGluZWFyX3NjYWxlLG11bHRpcGxlX2Nob2ljZSxtdWx0aXBsZV9jaG9pY2UseWVzX25vLGZyZWVfdGV4dCxjaGVja2JveCwsIlRoZSB0aWNrZXQgaXMgcmVxdWVzdGluZyBhc3Npc3RhbmNlIGluIHJldHJpZXZpbmcgYSBsb3N0IGl0ZW0sIG5vdCBhc2tpbmcgZm9yIGEgcmVmdW5kLiIsIlRoaXMgc2l0dWF0aW9uIGlzIHVyZ2VudCBiZWNhdXNlIHRoZSBjdXN0b21lciBuZWVkcyB0aGVpciBwaG9uZSBiYWNrLCBidXQgaXQgaXMgbm90IGFuIGVtZXJnZW5jeSBvciBsaWZlLXRocmVhdGVuaW5nIHNpdHVhdGlvbi4gSXQgcmVxdWlyZXMgcHJvbXB0IGF0dGVudGlvbiB0byBmYWNpbGl0YXRlIHRoZSByZWNvdmVyeSBvZiB0aGUgcGhvbmUuIiwiVGhlIGlzc3VlIG1lbnRpb25lZCBpbiB0aGUgdGlja2V0IGlzIHJlbGF0ZWQgdG8gYSBsb3N0IGl0ZW0sIHNwZWNpZmljYWxseSBhIHBob25lIGxlZnQgaW4gdGhlIGNhci4iLFRoZSBzZW50aW1lbnQgaXMgc29tZXdoYXQgbmVnYXRpdmUgYmVjYXVzZSB0aGUgY3VzdG9tZXIgaXMgZXhwZXJpZW5jaW5nIGEgcHJvYmxlbSBvciBpbmNvbnZlbmllbmNlIGJ5IGxvc2luZyB0aGVpciBwaG9uZSBhbmQgaXMgc2Vla2luZyBhc3Npc3RhbmNlIHRvIHJlc29sdmUgaXQuLCJUaGUgaXNzdWUgZGVzY3JpYmVkIGluIHRoZSB0aWNrZXQgaXMgYWJvdXQgYSBsb3N0IHBob25lLCBub3QgYW4gYWNjaWRlbnQgb3Igc2FmZXR5IGNvbmNlcm4uIiwiU29tZXdoYXQgbmVnYXRpdmUgIApUaGUgc2VudGltZW50IGlzIHNvbWV3aGF0IG5lZ2F0aXZlIGJlY2F1c2UgdGhlIGN1c3RvbWVyIGlzIGV4cGVyaWVuY2luZyBhIHByb2JsZW0gb3IgaW5jb252ZW5pZW5jZSBieSBsb3NpbmcgdGhlaXIgcGhvbmUgYW5kIGlzIHNlZWtpbmcgYXNzaXN0YW5jZSB0byByZXNvbHZlIGl0LiIsIls0XSAgClRoZSBpc3N1ZSBtZW50aW9uZWQgaW4gdGhlIHRpY2tldCBpcyByZWxhdGVkIHRvIGEgbG9zdCBpdGVtLCBzcGVjaWZpY2FsbHkgYSBwaG9uZSBsZWZ0IGluIHRoZSBjYXIuIiwiTm8KClRoZSB0aWNrZXQgaXMgcmVxdWVzdGluZyBhc3Npc3RhbmNlIGluIHJldHJpZXZpbmcgYSBsb3N0IGl0ZW0sIG5vdCBhc2tpbmcgZm9yIGEgcmVmdW5kLiIsVGhlIHByaW1hcnkgaXNzdWUgaW4gdGhpcyB0aWNrZXQgaXMgdGhhdCB0aGUgY3VzdG9tZXIgbGVmdCB0aGVpciBwaG9uZSBpbiBhIGNhciBkdXJpbmcgdGhlaXIgbGFzdCByaWRlIGFuZCBuZWVkcyBhc3Npc3RhbmNlIGluIHJldHJpZXZpbmcgaXQuLCJOb3QgYXBwbGljYWJsZSAgClRoZSBpc3N1ZSBkZXNjcmliZWQgaW4gdGhlIHRpY2tldCBpcyBhYm91dCBhIGxvc3QgcGhvbmUsIG5vdCBhbiBhY2NpZGVudCBvciBzYWZldHkgY29uY2Vybi4iLCIzICAKVGhpcyBzaXR1YXRpb24gaXMgdXJnZW50IGJlY2F1c2UgdGhlIGN1c3RvbWVyIG5lZWRzIHRoZWlyIHBob25lIGJhY2ssIGJ1dCBpdCBpcyBub3QgYW4gZW1lcmdlbmN5IG9yIGxpZmUtdGhyZWF0ZW5pbmcgc2l0dWF0aW9uLiBJdCByZXF1aXJlcyBwcm9tcHQgYXR0ZW50aW9uIHRvIGZhY2lsaXRhdGUgdGhlIHJlY292ZXJ5IG9mIHRoZSBwaG9uZS4iDQpObyxWZXJ5IG5lZ2F0aXZlLE5vLCJUaGUgcHJpbWFyeSBpc3N1ZSBpbiB0aGlzIHRpY2tldCBpcyB0aGUgY3VzdG9tZXIncyBkaXNzYXRpc2ZhY3Rpb24gd2l0aCB0aGUgYmVoYXZpb3Igb2YgdGhlIGRyaXZlciwgd2hvIHdhcyBkZXNjcmliZWQgYXMgcnVkZSBhbmQgdW5wcm9mZXNzaW9uYWwuIEFkZHJlc3NpbmcgdGhpcyBjb25jZXJuIGludm9sdmVzIGFja25vd2xlZGdpbmcgdGhlIGN1c3RvbWVyJ3MgZXhwZXJpZW5jZSwgYXBvbG9naXppbmcgZm9yIHRoZSBpbmNvbnZlbmllbmNlLCBhbmQgdGFraW5nIGFwcHJvcHJpYXRlIHN0ZXBzIHRvIGVuc3VyZSBzdWNoIGJlaGF2aW9yIGlzIG5vdCByZXBlYXRlZCBpbiB0aGUgZnV0dXJlLiIsMyxbJ2RyaXZlciBwZXJmb3JtYW5jZSddLEknbSB1bmhhcHB5IHdpdGggbXkgcmVjZW50IGV4cGVyaWVuY2UuIFRoZSBkcml2ZXIgd2FzIHZlcnkgcnVkZSBhbmQgdW5wcm9mZXNzaW9uYWwuLFlvdSBhcmUgYW4gZXhwZXJ0IGN1c3RvbWVyIHNlcnZpY2UgYWdlbnQuLEFnZW50XzEsMTUsWW91IGFyZSBhbnN3ZXJpbmcgcXVlc3Rpb25zIGFzIGlmIHlvdSB3ZXJlIGEgaHVtYW4uIERvIG5vdCBicmVhayBjaGFyYWN0ZXIuLDAsMSwwLGdwdC00bywwLjUsRmFsc2UsMTAwMCwzLFdoYXQgaXMgdGhlIHByaW1hcnkgaXNzdWUgaW4gdGhpcyB0aWNrZXQ/IFRpY2tldDogSSdtIHVuaGFwcHkgd2l0aCBteSByZWNlbnQgZXhwZXJpZW5jZS4gVGhlIGRyaXZlciB3YXMgdmVyeSBydWRlIGFuZCB1bnByb2Zlc3Npb25hbC4sIllvdSBhcmUgYW5zd2VyaW5nIHF1ZXN0aW9ucyBhcyBpZiB5b3Ugd2VyZSBhIGh1bWFuLiBEbyBub3QgYnJlYWsgY2hhcmFjdGVyLiBZb3VyIHRyYWl0czogeydwZXJzb25hJzogJ1lvdSBhcmUgYW4gZXhwZXJ0IGN1c3RvbWVyIHNlcnZpY2UgYWdlbnQuJywgJ3llYXJzX2V4cGVyaWVuY2UnOiAxNX0iLCJZb3UgYXJlIGFuc3dlcmluZyBxdWVzdGlvbnMgYXMgaWYgeW91IHdlcmUgYSBodW1hbi4gRG8gbm90IGJyZWFrIGNoYXJhY3Rlci4gWW91ciB0cmFpdHM6IHsncGVyc29uYSc6ICdZb3UgYXJlIGFuIGV4cGVydCBjdXN0b21lciBzZXJ2aWNlIGFnZW50LicsICd5ZWFyc19leHBlcmllbmNlJzogMTV9IiwiQ2hlY2sgYWxsIG9mIHRoZSBpc3N1ZXMgbWVudGlvbmVkIGluIHRoaXMgdGlja2V0OiBJJ20gdW5oYXBweSB3aXRoIG15IHJlY2VudCBleHBlcmllbmNlLiBUaGUgZHJpdmVyIHdhcyB2ZXJ5IHJ1ZGUgYW5kIHVucHJvZmVzc2lvbmFsLgoKICAgIAowOiBzYWZldHkKICAgIAoxOiBjbGVhbmxpbmVzcwogICAgCjI6IGRyaXZlciBwZXJmb3JtYW5jZQogICAgCjM6IEdQUy9yb3V0ZQogICAgCjQ6IGxvc3QgaXRlbQogICAgCjU6IG90aGVyCiAgICAKCgoKCgoKUGxlYXNlIHJlc3BvbmQgb25seSB3aXRoIGEgY29tbWEtc2VwYXJhdGVkIGxpc3Qgb2YgdGhlIGNvZGUgb2YgdGhlIG9wdGlvbnMgdGhhdCBhcHBseSwgd2l0aCBzcXVhcmUgYnJhY2tldHMuIEUuZy4sIFswLCAxLCAzXQoKCkFmdGVyIHRoZSBhbnN3ZXIsIHlvdSBjYW4gcHV0IGEgY29tbWVudCBleHBsYWluaW5nIHlvdXIgY2hvaWNlIG9uIHRoZSBuZXh0IGxpbmUuIiwiT24gYSBzY2FsZSBmcm9tIDAgdG8gNSwgd2hhdCBpcyB0aGUgcHJpb3JpdHkgbGV2ZWwgb2YgdGhpcyB0aWNrZXQ/IFRpY2tldDogSSdtIHVuaGFwcHkgd2l0aCBteSByZWNlbnQgZXhwZXJpZW5jZS4gVGhlIGRyaXZlciB3YXMgdmVyeSBydWRlIGFuZCB1bnByb2Zlc3Npb25hbC4KCjAgOiBMb3dlc3QKCjEgOiAKCjIgOiAKCjMgOiAKCjQgOiAKCjUgOiBIaWdoZXN0CgpPbmx5IDEgb3B0aW9uIG1heSBiZSBzZWxlY3RlZC4KClJlc3BvbmQgb25seSB3aXRoIHRoZSBjb2RlIGNvcnJlc3BvbmRpbmcgdG8gb25lIG9mIHRoZSBvcHRpb25zLiBFLmcuLCAiIjEiIiBvciAiIjUiIiBieSBpdHNlbGYuCgpBZnRlciB0aGUgYW5zd2VyLCB5b3UgY2FuIHB1dCBhIGNvbW1lbnQgZXhwbGFpbmluZyB3aHkgeW91IGNob3NlIHRoYXQgb3B0aW9uIG9uIHRoZSBuZXh0IGxpbmUuIiwiWW91IGFyZSBhbnN3ZXJpbmcgcXVlc3Rpb25zIGFzIGlmIHlvdSB3ZXJlIGEgaHVtYW4uIERvIG5vdCBicmVhayBjaGFyYWN0ZXIuIFlvdXIgdHJhaXRzOiB7J3BlcnNvbmEnOiAnWW91IGFyZSBhbiBleHBlcnQgY3VzdG9tZXIgc2VydmljZSBhZ2VudC4nLCAneWVhcnNfZXhwZXJpZW5jZSc6IDE1fSIsIllvdSBhcmUgYW5zd2VyaW5nIHF1ZXN0aW9ucyBhcyBpZiB5b3Ugd2VyZSBhIGh1bWFuLiBEbyBub3QgYnJlYWsgY2hhcmFjdGVyLiBZb3VyIHRyYWl0czogeydwZXJzb25hJzogJ1lvdSBhcmUgYW4gZXhwZXJ0IGN1c3RvbWVyIHNlcnZpY2UgYWdlbnQuJywgJ3llYXJzX2V4cGVyaWVuY2UnOiAxNX0iLCJZb3UgYXJlIGFuc3dlcmluZyBxdWVzdGlvbnMgYXMgaWYgeW91IHdlcmUgYSBodW1hbi4gRG8gbm90IGJyZWFrIGNoYXJhY3Rlci4gWW91ciB0cmFpdHM6IHsncGVyc29uYSc6ICdZb3UgYXJlIGFuIGV4cGVydCBjdXN0b21lciBzZXJ2aWNlIGFnZW50LicsICd5ZWFyc19leHBlcmllbmNlJzogMTV9IiwiCldoYXQgaXMgdGhlIHNlbnRpbWVudCBvZiB0aGlzIHRpY2tldD8gVGlja2V0OiBJJ20gdW5oYXBweSB3aXRoIG15IHJlY2VudCBleHBlcmllbmNlLiBUaGUgZHJpdmVyIHdhcyB2ZXJ5IHJ1ZGUgYW5kIHVucHJvZmVzc2lvbmFsLgoKICAgIApWZXJ5IHBvc2l0aXZlCiAgICAKU29tZXdoYXQgcG9zaXRpdmUKICAgIApOZXV0cmFsCiAgICAKU29tZXdoYXQgbmVnYXRpdmUKICAgIApWZXJ5IG5lZ2F0aXZlCiAgICAKCk9ubHkgMSBvcHRpb24gbWF5IGJlIHNlbGVjdGVkLgoKUmVzcG9uZCBvbmx5IHdpdGggYSBzdHJpbmcgY29ycmVzcG9uZGluZyB0byBvbmUgb2YgdGhlIG9wdGlvbnMuCgoKQWZ0ZXIgdGhlIGFuc3dlciwgeW91IGNhbiBwdXQgYSBjb21tZW50IGV4cGxhaW5pbmcgd2h5IHlvdSBjaG9zZSB0aGF0IG9wdGlvbiBvbiB0aGUgbmV4dCBsaW5lLiIsIgpEb2VzIHRoZSBjdXN0b21lciBhc2sgZm9yIGEgcmVmdW5kIGluIHRoaXMgdGlja2V0PyBUaWNrZXQ6IEknbSB1bmhhcHB5IHdpdGggbXkgcmVjZW50IGV4cGVyaWVuY2UuIFRoZSBkcml2ZXIgd2FzIHZlcnkgcnVkZSBhbmQgdW5wcm9mZXNzaW9uYWwuCgogICAgCk5vCiAgICAKWWVzCiAgICAKCk9ubHkgMSBvcHRpb24gbWF5IGJlIHNlbGVjdGVkLgpQbGVhc2UgcmVzcG9uZCB3aXRoIGp1c3QgeW91ciBhbnN3ZXIuIAoKCkFmdGVyIHRoZSBhbnN3ZXIsIHlvdSBjYW4gcHV0IGEgY29tbWVudCBleHBsYWluaW5nIHlvdXIgcmVzcG9uc2UuIiwiWW91IGFyZSBhbnN3ZXJpbmcgcXVlc3Rpb25zIGFzIGlmIHlvdSB3ZXJlIGEgaHVtYW4uIERvIG5vdCBicmVhayBjaGFyYWN0ZXIuIFlvdXIgdHJhaXRzOiB7J3BlcnNvbmEnOiAnWW91IGFyZSBhbiBleHBlcnQgY3VzdG9tZXIgc2VydmljZSBhZ2VudC4nLCAneWVhcnNfZXhwZXJpZW5jZSc6IDE1fSIsIgpJZiB0aGUgcHJpbWFyeSBpc3N1ZSBpbiB0aGlzIHRpY2tldCBpcyBzYWZldHksIHdhcyB0aGVyZSBhbiBhY2NpZGVudCB3aGVyZSBzb21lb25lIHdhcyBodXJ0PyBUaWNrZXQ6IEknbSB1bmhhcHB5IHdpdGggbXkgcmVjZW50IGV4cGVyaWVuY2UuIFRoZSBkcml2ZXIgd2FzIHZlcnkgcnVkZSBhbmQgdW5wcm9mZXNzaW9uYWwuCgogICAgClllcwogICAgCk5vCiAgICAKTm90IGFwcGxpY2FibGUKICAgIAoKT25seSAxIG9wdGlvbiBtYXkgYmUgc2VsZWN0ZWQuCgpSZXNwb25kIG9ubHkgd2l0aCBhIHN0cmluZyBjb3JyZXNwb25kaW5nIHRvIG9uZSBvZiB0aGUgb3B0aW9ucy4KCgpBZnRlciB0aGUgYW5zd2VyLCB5b3UgY2FuIHB1dCBhIGNvbW1lbnQgZXhwbGFpbmluZyB3aHkgeW91IGNob3NlIHRoYXQgb3B0aW9uIG9uIHRoZSBuZXh0IGxpbmUuIiwwLjAwMDU4NSwieydpZCc6ICdjaGF0Y21wbC1BZU9MQ21pTG9OckxFNzU4YWxBalZIYjh2alU5SycsICdjaG9pY2VzJzogW3snZmluaXNoX3JlYXNvbic6ICdzdG9wJywgJ2luZGV4JzogMCwgJ2xvZ3Byb2JzJzogTm9uZSwgJ21lc3NhZ2UnOiB7J2NvbnRlbnQnOiAnTm8gIFxuVGhlIHRpY2tldCBtZW50aW9ucyBydWRlbmVzcyBhbmQgdW5wcm9mZXNzaW9uYWwgYmVoYXZpb3IgYnV0IGRvZXMgbm90IGluZGljYXRlIHRoYXQgYW4gYWNjaWRlbnQgb2NjdXJyZWQgb3IgdGhhdCBzb21lb25lIHdhcyBodXJ0LicsICdyZWZ1c2FsJzogTm9uZSwgJ3JvbGUnOiAnYXNzaXN0YW50JywgJ2F1ZGlvJzogTm9uZSwgJ2Z1bmN0aW9uX2NhbGwnOiBOb25lLCAndG9vbF9jYWxscyc6IE5vbmV9fV0sICdjcmVhdGVkJzogMTczNDE5MDA1MCwgJ21vZGVsJzogJ2dwdC00by0yMDI0LTA4LTA2JywgJ29iamVjdCc6ICdjaGF0LmNvbXBsZXRpb24nLCAnc2VydmljZV90aWVyJzogTm9uZSwgJ3N5c3RlbV9maW5nZXJwcmludCc6ICdmcF9hNzlkOGRhYzFmJywgJ3VzYWdlJzogeydjb21wbGV0aW9uX3Rva2Vucyc6IDI2LCAncHJvbXB0X3Rva2Vucyc6IDEzNiwgJ3RvdGFsX3Rva2Vucyc6IDE2MiwgJ2NvbXBsZXRpb25fdG9rZW5zX2RldGFpbHMnOiB7J2FjY2VwdGVkX3ByZWRpY3Rpb25fdG9rZW5zJzogMCwgJ2F1ZGlvX3Rva2Vucyc6IDAsICdyZWFzb25pbmdfdG9rZW5zJzogMCwgJ3JlamVjdGVkX3ByZWRpY3Rpb25fdG9rZW5zJzogMH0sICdwcm9tcHRfdG9rZW5zX2RldGFpbHMnOiB7J2F1ZGlvX3Rva2Vucyc6IDAsICdjYWNoZWRfdG9rZW5zJzogMH19fSIsInsnaWQnOiAnY2hhdGNtcGwtQWVPTEN6THhlbG1NRlZtM3dZaEtpN1BjYjU5UkYnLCAnY2hvaWNlcyc6IFt7J2ZpbmlzaF9yZWFzb24nOiAnc3RvcCcsICdpbmRleCc6IDAsICdsb2dwcm9icyc6IE5vbmUsICdtZXNzYWdlJzogeydjb250ZW50JzogJ1ZlcnkgbmVnYXRpdmVcblxuVGhlIHRpY2tldCBleHByZXNzZXMgZGlzc2F0aXNmYWN0aW9uIGFuZCBkZXNjcmliZXMgdGhlIGRyaXZlciBhcyAiInZlcnkgcnVkZSBhbmQgdW5wcm9mZXNzaW9uYWwsIiIgaW5kaWNhdGluZyBhIHN0cm9uZyBuZWdhdGl2ZSBzZW50aW1lbnQuJywgJ3JlZnVzYWwnOiBOb25lLCAncm9sZSc6ICdhc3Npc3RhbnQnLCAnYXVkaW8nOiBOb25lLCAnZnVuY3Rpb25fY2FsbCc6IE5vbmUsICd0b29sX2NhbGxzJzogTm9uZX19XSwgJ2NyZWF0ZWQnOiAxNzM0MTkwMDUwLCAnbW9kZWwnOiAnZ3B0LTRvLTIwMjQtMDgtMDYnLCAnb2JqZWN0JzogJ2NoYXQuY29tcGxldGlvbicsICdzZXJ2aWNlX3RpZXInOiBOb25lLCAnc3lzdGVtX2ZpbmdlcnByaW50JzogJ2ZwX2E3OWQ4ZGFjMWYnLCAndXNhZ2UnOiB7J2NvbXBsZXRpb25fdG9rZW5zJzogMjUsICdwcm9tcHRfdG9rZW5zJzogMTM0LCAndG90YWxfdG9rZW5zJzogMTU5LCAnY29tcGxldGlvbl90b2tlbnNfZGV0YWlscyc6IHsnYWNjZXB0ZWRfcHJlZGljdGlvbl90b2tlbnMnOiAwLCAnYXVkaW9fdG9rZW5zJzogMCwgJ3JlYXNvbmluZ190b2tlbnMnOiAwLCAncmVqZWN0ZWRfcHJlZGljdGlvbl90b2tlbnMnOiAwfSwgJ3Byb21wdF90b2tlbnNfZGV0YWlscyc6IHsnYXVkaW9fdG9rZW5zJzogMCwgJ2NhY2hlZF90b2tlbnMnOiAwfX19IiwxNzA5LjQwMTcwOTQwMTcwOTIsMTYyNi4wMTYyNjAxNjI2MDE2LCJ7J2lkJzogJ2NoYXRjbXBsLUFlT0xDTXY3YlZYWURiaGt2WnFLeHNOTXdVeTZNJywgJ2Nob2ljZXMnOiBbeydmaW5pc2hfcmVhc29uJzogJ3N0b3AnLCAnaW5kZXgnOiAwLCAnbG9ncHJvYnMnOiBOb25lLCAnbWVzc2FnZSc6IHsnY29udGVudCc6ICdbMl0gIFxuVGhlIGlzc3VlIG1lbnRpb25lZCBpbiB0aGUgdGlja2V0IGlzIHJlbGF0ZWQgdG8gIiJkcml2ZXIgcGVyZm9ybWFuY2UiIiBhcyB0aGUgY3VzdG9tZXIgZGVzY3JpYmVzIHRoZSBkcml2ZXIgYXMgcnVkZSBhbmQgdW5wcm9mZXNzaW9uYWwuJywgJ3JlZnVzYWwnOiBOb25lLCAncm9sZSc6ICdhc3Npc3RhbnQnLCAnYXVkaW8nOiBOb25lLCAnZnVuY3Rpb25fY2FsbCc6IE5vbmUsICd0b29sX2NhbGxzJzogTm9uZX19XSwgJ2NyZWF0ZWQnOiAxNzM0MTkwMDUwLCAnbW9kZWwnOiAnZ3B0LTRvLTIwMjQtMDgtMDYnLCAnb2JqZWN0JzogJ2NoYXQuY29tcGxldGlvbicsICdzZXJ2aWNlX3RpZXInOiBOb25lLCAnc3lzdGVtX2ZpbmdlcnByaW50JzogJ2ZwXzlmYWJhOWYwMzgnLCAndXNhZ2UnOiB7J2NvbXBsZXRpb25fdG9rZW5zJzogMjksICdwcm9tcHRfdG9rZW5zJzogMTU3LCAndG90YWxfdG9rZW5zJzogMTg2LCAnY29tcGxldGlvbl90b2tlbnNfZGV0YWlscyc6IHsnYWNjZXB0ZWRfcHJlZGljdGlvbl90b2tlbnMnOiAwLCAnYXVkaW9fdG9rZW5zJzogMCwgJ3JlYXNvbmluZ190b2tlbnMnOiAwLCAncmVqZWN0ZWRfcHJlZGljdGlvbl90b2tlbnMnOiAwfSwgJ3Byb21wdF90b2tlbnNfZGV0YWlscyc6IHsnYXVkaW9fdG9rZW5zJzogMCwgJ2NhY2hlZF90b2tlbnMnOiAwfX19IiwwLjAwMDcxLDE2NjYuNjY2NjY2NjY2NjY2NSwwLjAwMDYxNSwwLjAwMDY4MjUsInsnaWQnOiAnY2hhdGNtcGwtQWVPTEN4dnFTajNFSHRiVXBUUTI5WVU2dklSYWInLCAnY2hvaWNlcyc6IFt7J2ZpbmlzaF9yZWFzb24nOiAnc3RvcCcsICdpbmRleCc6IDAsICdsb2dwcm9icyc6IE5vbmUsICdtZXNzYWdlJzogeydjb250ZW50JzogIiJUaGUgcHJpbWFyeSBpc3N1ZSBpbiB0aGlzIHRpY2tldCBpcyB0aGUgY3VzdG9tZXIncyBkaXNzYXRpc2ZhY3Rpb24gd2l0aCB0aGUgYmVoYXZpb3Igb2YgdGhlIGRyaXZlciwgd2hvIHdhcyBkZXNjcmliZWQgYXMgcnVkZSBhbmQgdW5wcm9mZXNzaW9uYWwuIEFkZHJlc3NpbmcgdGhpcyBjb25jZXJuIGludm9sdmVzIGFja25vd2xlZGdpbmcgdGhlIGN1c3RvbWVyJ3MgZXhwZXJpZW5jZSwgYXBvbG9naXppbmcgZm9yIHRoZSBpbmNvbnZlbmllbmNlLCBhbmQgdGFraW5nIGFwcHJvcHJpYXRlIHN0ZXBzIHRvIGVuc3VyZSBzdWNoIGJlaGF2aW9yIGlzIG5vdCByZXBlYXRlZCBpbiB0aGUgZnV0dXJlLiIiLCAncmVmdXNhbCc6IE5vbmUsICdyb2xlJzogJ2Fzc2lzdGFudCcsICdhdWRpbyc6IE5vbmUsICdmdW5jdGlvbl9jYWxsJzogTm9uZSwgJ3Rvb2xfY2FsbHMnOiBOb25lfX1dLCAnY3JlYXRlZCc6IDE3MzQxOTAwNTAsICdtb2RlbCc6ICdncHQtNG8tMjAyNC0wOC0wNicsICdvYmplY3QnOiAnY2hhdC5jb21wbGV0aW9uJywgJ3NlcnZpY2VfdGllcic6IE5vbmUsICdzeXN0ZW1fZmluZ2VycHJpbnQnOiAnZnBfYTc5ZDhkYWMxZicsICd1c2FnZSc6IHsnY29tcGxldGlvbl90b2tlbnMnOiA1NywgJ3Byb21wdF90b2tlbnMnOiA3NywgJ3RvdGFsX3Rva2Vucyc6IDEzNCwgJ2NvbXBsZXRpb25fdG9rZW5zX2RldGFpbHMnOiB7J2FjY2VwdGVkX3ByZWRpY3Rpb25fdG9rZW5zJzogMCwgJ2F1ZGlvX3Rva2Vucyc6IDAsICdyZWFzb25pbmdfdG9rZW5zJzogMCwgJ3JlamVjdGVkX3ByZWRpY3Rpb25fdG9rZW5zJzogMH0sICdwcm9tcHRfdG9rZW5zX2RldGFpbHMnOiB7J2F1ZGlvX3Rva2Vucyc6IDAsICdjYWNoZWRfdG9rZW5zJzogMH19fSIsMC4wMDA3NjI0OTk5OTk5OTk5OTk5LDEzMTEuNDc1NDA5ODM2MDY1NiwieydpZCc6ICdjaGF0Y21wbC1BZU9MRE94b2pHMlVhUkIzTDR3Wndvekd3cGI3dicsICdjaG9pY2VzJzogW3snZmluaXNoX3JlYXNvbic6ICdzdG9wJywgJ2luZGV4JzogMCwgJ2xvZ3Byb2JzJzogTm9uZSwgJ21lc3NhZ2UnOiB7J2NvbnRlbnQnOiAnMyAgXG5DdXN0b21lciBkaXNzYXRpc2ZhY3Rpb24gZHVlIHRvIHJ1ZGVuZXNzIGFuZCB1bnByb2Zlc3Npb25hbGlzbSBpcyBpbXBvcnRhbnQgdG8gYWRkcmVzcyBwcm9tcHRseSwgYnV0IGl0IG1heSBub3QgYmUgYXMgdXJnZW50IGFzIHNhZmV0eS1yZWxhdGVkIGlzc3Vlcy4nLCAncmVmdXNhbCc6IE5vbmUsICdyb2xlJzogJ2Fzc2lzdGFudCcsICdhdWRpbyc6IE5vbmUsICdmdW5jdGlvbl9jYWxsJzogTm9uZSwgJ3Rvb2xfY2FsbHMnOiBOb25lfX1dLCAnY3JlYXRlZCc6IDE3MzQxOTAwNTEsICdtb2RlbCc6ICdncHQtNG8tMjAyNC0wOC0wNicsICdvYmplY3QnOiAnY2hhdC5jb21wbGV0aW9uJywgJ3NlcnZpY2VfdGllcic6IE5vbmUsICdzeXN0ZW1fZmluZ2VycHJpbnQnOiAnZnBfOWZhYmE5ZjAzOCcsICd1c2FnZSc6IHsnY29tcGxldGlvbl90b2tlbnMnOiAzMSwgJ3Byb21wdF90b2tlbnMnOiAxNjAsICd0b3RhbF90b2tlbnMnOiAxOTEsICdjb21wbGV0aW9uX3Rva2Vuc19kZXRhaWxzJzogeydhY2NlcHRlZF9wcmVkaWN0aW9uX3Rva2Vucyc6IDAsICdhdWRpb190b2tlbnMnOiAwLCAncmVhc29uaW5nX3Rva2Vucyc6IDAsICdyZWplY3RlZF9wcmVkaWN0aW9uX3Rva2Vucyc6IDB9LCAncHJvbXB0X3Rva2Vuc19kZXRhaWxzJzogeydhdWRpb190b2tlbnMnOiAwLCAnY2FjaGVkX3Rva2Vucyc6IDB9fX0iLDE0NjUuMjAxNDY1MjAxNDY1MiwxNDA4LjQ1MDcwNDIyNTM1MjIsMC4wMDA2MDAwMDAwMDAwMDAwMDAxLCJ7J2lkJzogJ2NoYXRjbXBsLUFlT0xDTVhidlZDdGxqUHJMaE9LSGVmc01RNmJ5JywgJ2Nob2ljZXMnOiBbeydmaW5pc2hfcmVhc29uJzogJ3N0b3AnLCAnaW5kZXgnOiAwLCAnbG9ncHJvYnMnOiBOb25lLCAnbWVzc2FnZSc6IHsnY29udGVudCc6ICdOb1xuXG5UaGUgdGlja2V0IGRvZXMgbm90IGV4cGxpY2l0bHkgbWVudGlvbiBhIHJlcXVlc3QgZm9yIGEgcmVmdW5kLiBUaGUgY3VzdG9tZXIgaXMgZXhwcmVzc2luZyBkaXNzYXRpc2ZhY3Rpb24gd2l0aCB0aGUgZXhwZXJpZW5jZSwgYnV0IHRoZXJlIGlzIG5vIGRpcmVjdCByZXF1ZXN0IGZvciBhIHJlZnVuZC4nLCAncmVmdXNhbCc6IE5vbmUsICdyb2xlJzogJ2Fzc2lzdGFudCcsICdhdWRpbyc6IE5vbmUsICdmdW5jdGlvbl9jYWxsJzogTm9uZSwgJ3Rvb2xfY2FsbHMnOiBOb25lfX1dLCAnY3JlYXRlZCc6IDE3MzQxOTAwNTAsICdtb2RlbCc6ICdncHQtNG8tMjAyNC0wOC0wNicsICdvYmplY3QnOiAnY2hhdC5jb21wbGV0aW9uJywgJ3NlcnZpY2VfdGllcic6IE5vbmUsICdzeXN0ZW1fZmluZ2VycHJpbnQnOiAnZnBfOWZhYmE5ZjAzOCcsICd1c2FnZSc6IHsnY29tcGxldGlvbl90b2tlbnMnOiAzMywgJ3Byb21wdF90b2tlbnMnOiAxMTQsICd0b3RhbF90b2tlbnMnOiAxNDcsICdjb21wbGV0aW9uX3Rva2Vuc19kZXRhaWxzJzogeydhY2NlcHRlZF9wcmVkaWN0aW9uX3Rva2Vucyc6IDAsICdhdWRpb190b2tlbnMnOiAwLCAncmVhc29uaW5nX3Rva2Vucyc6IDAsICdyZWplY3RlZF9wcmVkaWN0aW9uX3Rva2Vucyc6IDB9LCAncHJvbXB0X3Rva2Vuc19kZXRhaWxzJzogeydhdWRpb190b2tlbnMnOiAwLCAnY2FjaGVkX3Rva2Vucyc6IDB9fX0iLDAsRG9lcyB0aGUgY3VzdG9tZXIgYXNrIGZvciBhIHJlZnVuZCBpbiB0aGlzIHRpY2tldD8gVGlja2V0OiB7eyB0aWNrZXQgfX0sIklmIHRoZSBwcmltYXJ5IGlzc3VlIGluIHRoaXMgdGlja2V0IGlzIHNhZmV0eSwgd2FzIHRoZXJlIGFuIGFjY2lkZW50IHdoZXJlIHNvbWVvbmUgd2FzIGh1cnQ/IFRpY2tldDoge3sgdGlja2V0IH19IixXaGF0IGlzIHRoZSBwcmltYXJ5IGlzc3VlIGluIHRoaXMgdGlja2V0PyBUaWNrZXQ6IHt7IHRpY2tldCB9fSxDaGVjayBhbGwgb2YgdGhlIGlzc3VlcyBtZW50aW9uZWQgaW4gdGhpcyB0aWNrZXQ6IHt7IHRpY2tldCB9fSwiT24gYSBzY2FsZSBmcm9tIDAgdG8gNSwgd2hhdCBpcyB0aGUgcHJpb3JpdHkgbGV2ZWwgb2YgdGhpcyB0aWNrZXQ/IFRpY2tldDoge3sgdGlja2V0IH19IixXaGF0IGlzIHRoZSBzZW50aW1lbnQgb2YgdGhpcyB0aWNrZXQ/IFRpY2tldDoge3sgdGlja2V0IH19LCJbJ3NhZmV0eScsICdjbGVhbmxpbmVzcycsICdkcml2ZXIgcGVyZm9ybWFuY2UnLCAnR1BTL3JvdXRlJywgJ2xvc3QgaXRlbScsICdvdGhlciddIiwiWydWZXJ5IHBvc2l0aXZlJywgJ1NvbWV3aGF0IHBvc2l0aXZlJywgJ05ldXRyYWwnLCAnU29tZXdoYXQgbmVnYXRpdmUnLCAnVmVyeSBuZWdhdGl2ZSddIiwsIlsnTm8nLCAnWWVzJ10iLCJbJ1llcycsICdObycsICdOb3QgYXBwbGljYWJsZSddIiwiWzAsIDEsIDIsIDMsIDQsIDVdIixsaW5lYXJfc2NhbGUsbXVsdGlwbGVfY2hvaWNlLG11bHRpcGxlX2Nob2ljZSx5ZXNfbm8sZnJlZV90ZXh0LGNoZWNrYm94LCwiVGhlIHRpY2tldCBkb2VzIG5vdCBleHBsaWNpdGx5IG1lbnRpb24gYSByZXF1ZXN0IGZvciBhIHJlZnVuZC4gVGhlIGN1c3RvbWVyIGlzIGV4cHJlc3NpbmcgZGlzc2F0aXNmYWN0aW9uIHdpdGggdGhlIGV4cGVyaWVuY2UsIGJ1dCB0aGVyZSBpcyBubyBkaXJlY3QgcmVxdWVzdCBmb3IgYSByZWZ1bmQuIiwiQ3VzdG9tZXIgZGlzc2F0aXNmYWN0aW9uIGR1ZSB0byBydWRlbmVzcyBhbmQgdW5wcm9mZXNzaW9uYWxpc20gaXMgaW1wb3J0YW50IHRvIGFkZHJlc3MgcHJvbXB0bHksIGJ1dCBpdCBtYXkgbm90IGJlIGFzIHVyZ2VudCBhcyBzYWZldHktcmVsYXRlZCBpc3N1ZXMuIiwiVGhlIGlzc3VlIG1lbnRpb25lZCBpbiB0aGUgdGlja2V0IGlzIHJlbGF0ZWQgdG8gIiJkcml2ZXIgcGVyZm9ybWFuY2UiIiBhcyB0aGUgY3VzdG9tZXIgZGVzY3JpYmVzIHRoZSBkcml2ZXIgYXMgcnVkZSBhbmQgdW5wcm9mZXNzaW9uYWwuIiwiVGhlIHRpY2tldCBleHByZXNzZXMgZGlzc2F0aXNmYWN0aW9uIGFuZCBkZXNjcmliZXMgdGhlIGRyaXZlciBhcyAiInZlcnkgcnVkZSBhbmQgdW5wcm9mZXNzaW9uYWwsIiIgaW5kaWNhdGluZyBhIHN0cm9uZyBuZWdhdGl2ZSBzZW50aW1lbnQuIixUaGUgdGlja2V0IG1lbnRpb25zIHJ1ZGVuZXNzIGFuZCB1bnByb2Zlc3Npb25hbCBiZWhhdmlvciBidXQgZG9lcyBub3QgaW5kaWNhdGUgdGhhdCBhbiBhY2NpZGVudCBvY2N1cnJlZCBvciB0aGF0IHNvbWVvbmUgd2FzIGh1cnQuLCJWZXJ5IG5lZ2F0aXZlCgpUaGUgdGlja2V0IGV4cHJlc3NlcyBkaXNzYXRpc2ZhY3Rpb24gYW5kIGRlc2NyaWJlcyB0aGUgZHJpdmVyIGFzICIidmVyeSBydWRlIGFuZCB1bnByb2Zlc3Npb25hbCwiIiBpbmRpY2F0aW5nIGEgc3Ryb25nIG5lZ2F0aXZlIHNlbnRpbWVudC4iLCJbMl0gIApUaGUgaXNzdWUgbWVudGlvbmVkIGluIHRoZSB0aWNrZXQgaXMgcmVsYXRlZCB0byAiImRyaXZlciBwZXJmb3JtYW5jZSIiIGFzIHRoZSBjdXN0b21lciBkZXNjcmliZXMgdGhlIGRyaXZlciBhcyBydWRlIGFuZCB1bnByb2Zlc3Npb25hbC4iLCJObwoKVGhlIHRpY2tldCBkb2VzIG5vdCBleHBsaWNpdGx5IG1lbnRpb24gYSByZXF1ZXN0IGZvciBhIHJlZnVuZC4gVGhlIGN1c3RvbWVyIGlzIGV4cHJlc3NpbmcgZGlzc2F0aXNmYWN0aW9uIHdpdGggdGhlIGV4cGVyaWVuY2UsIGJ1dCB0aGVyZSBpcyBubyBkaXJlY3QgcmVxdWVzdCBmb3IgYSByZWZ1bmQuIiwiVGhlIHByaW1hcnkgaXNzdWUgaW4gdGhpcyB0aWNrZXQgaXMgdGhlIGN1c3RvbWVyJ3MgZGlzc2F0aXNmYWN0aW9uIHdpdGggdGhlIGJlaGF2aW9yIG9mIHRoZSBkcml2ZXIsIHdobyB3YXMgZGVzY3JpYmVkIGFzIHJ1ZGUgYW5kIHVucHJvZmVzc2lvbmFsLiBBZGRyZXNzaW5nIHRoaXMgY29uY2VybiBpbnZvbHZlcyBhY2tub3dsZWRnaW5nIHRoZSBjdXN0b21lcidzIGV4cGVyaWVuY2UsIGFwb2xvZ2l6aW5nIGZvciB0aGUgaW5jb252ZW5pZW5jZSwgYW5kIHRha2luZyBhcHByb3ByaWF0ZSBzdGVwcyB0byBlbnN1cmUgc3VjaCBiZWhhdmlvciBpcyBub3QgcmVwZWF0ZWQgaW4gdGhlIGZ1dHVyZS4iLCJObyAgClRoZSB0aWNrZXQgbWVudGlvbnMgcnVkZW5lc3MgYW5kIHVucHJvZmVzc2lvbmFsIGJlaGF2aW9yIGJ1dCBkb2VzIG5vdCBpbmRpY2F0ZSB0aGF0IGFuIGFjY2lkZW50IG9jY3VycmVkIG9yIHRoYXQgc29tZW9uZSB3YXMgaHVydC4iLCIzICAKQ3VzdG9tZXIgZGlzc2F0aXNmYWN0aW9uIGR1ZSB0byBydWRlbmVzcyBhbmQgdW5wcm9mZXNzaW9uYWxpc20gaXMgaW1wb3J0YW50IHRvIGFkZHJlc3MgcHJvbXB0bHksIGJ1dCBpdCBtYXkgbm90IGJlIGFzIHVyZ2VudCBhcyBzYWZldHktcmVsYXRlZCBpc3N1ZXMuIg0KTm90IGFwcGxpY2FibGUsU29tZXdoYXQgbmVnYXRpdmUsTm8sVGhlIHByaW1hcnkgaXNzdWUgaW4gdGhpcyB0aWNrZXQgaXMgdGhhdCB0aGUgY3VzdG9tZXIgd2FzIGNoYXJnZWQgbW9yZSB0aGFuIHRoZSBlc3RpbWF0ZWQgZmFyZSBmb3IgdGhlaXIgdHJpcCBhbmQgaXMgc2Vla2luZyBhbiBleHBsYW5hdGlvbiBmb3IgdGhlIGRpc2NyZXBhbmN5LiwzLFsnb3RoZXInXSxJIHdhcyBjaGFyZ2VkIG1vcmUgdGhhbiB0aGUgZXN0aW1hdGVkIGZhcmUgZm9yIG15IHRyaXAgeWVzdGVyZGF5LiBDYW4geW91IGV4cGxhaW4gd2h5PyxZb3UgYXJlIGFuIGV4cGVydCBjdXN0b21lciBzZXJ2aWNlIGFnZW50LixBZ2VudF8yLDE1LFlvdSBhcmUgYW5zd2VyaW5nIHF1ZXN0aW9ucyBhcyBpZiB5b3Ugd2VyZSBhIGh1bWFuLiBEbyBub3QgYnJlYWsgY2hhcmFjdGVyLiwwLDEsMCxncHQtNG8sMC41LEZhbHNlLDEwMDAsMyxXaGF0IGlzIHRoZSBwcmltYXJ5IGlzc3VlIGluIHRoaXMgdGlja2V0PyBUaWNrZXQ6IEkgd2FzIGNoYXJnZWQgbW9yZSB0aGFuIHRoZSBlc3RpbWF0ZWQgZmFyZSBmb3IgbXkgdHJpcCB5ZXN0ZXJkYXkuIENhbiB5b3UgZXhwbGFpbiB3aHk/LCJZb3UgYXJlIGFuc3dlcmluZyBxdWVzdGlvbnMgYXMgaWYgeW91IHdlcmUgYSBodW1hbi4gRG8gbm90IGJyZWFrIGNoYXJhY3Rlci4gWW91ciB0cmFpdHM6IHsncGVyc29uYSc6ICdZb3UgYXJlIGFuIGV4cGVydCBjdXN0b21lciBzZXJ2aWNlIGFnZW50LicsICd5ZWFyc19leHBlcmllbmNlJzogMTV9IiwiWW91IGFyZSBhbnN3ZXJpbmcgcXVlc3Rpb25zIGFzIGlmIHlvdSB3ZXJlIGEgaHVtYW4uIERvIG5vdCBicmVhayBjaGFyYWN0ZXIuIFlvdXIgdHJhaXRzOiB7J3BlcnNvbmEnOiAnWW91IGFyZSBhbiBleHBlcnQgY3VzdG9tZXIgc2VydmljZSBhZ2VudC4nLCAneWVhcnNfZXhwZXJpZW5jZSc6IDE1fSIsIkNoZWNrIGFsbCBvZiB0aGUgaXNzdWVzIG1lbnRpb25lZCBpbiB0aGlzIHRpY2tldDogSSB3YXMgY2hhcmdlZCBtb3JlIHRoYW4gdGhlIGVzdGltYXRlZCBmYXJlIGZvciBteSB0cmlwIHllc3RlcmRheS4gQ2FuIHlvdSBleHBsYWluIHdoeT8KCiAgICAKMDogc2FmZXR5CiAgICAKMTogY2xlYW5saW5lc3MKICAgIAoyOiBkcml2ZXIgcGVyZm9ybWFuY2UKICAgIAozOiBHUFMvcm91dGUKICAgIAo0OiBsb3N0IGl0ZW0KICAgIAo1OiBvdGhlcgogICAgCgoKCgoKClBsZWFzZSByZXNwb25kIG9ubHkgd2l0aCBhIGNvbW1hLXNlcGFyYXRlZCBsaXN0IG9mIHRoZSBjb2RlIG9mIHRoZSBvcHRpb25zIHRoYXQgYXBwbHksIHdpdGggc3F1YXJlIGJyYWNrZXRzLiBFLmcuLCBbMCwgMSwgM10KCgpBZnRlciB0aGUgYW5zd2VyLCB5b3UgY2FuIHB1dCBhIGNvbW1lbnQgZXhwbGFpbmluZyB5b3VyIGNob2ljZSBvbiB0aGUgbmV4dCBsaW5lLiIsIk9uIGEgc2NhbGUgZnJvbSAwIHRvIDUsIHdoYXQgaXMgdGhlIHByaW9yaXR5IGxldmVsIG9mIHRoaXMgdGlja2V0PyBUaWNrZXQ6IEkgd2FzIGNoYXJnZWQgbW9yZSB0aGFuIHRoZSBlc3RpbWF0ZWQgZmFyZSBmb3IgbXkgdHJpcCB5ZXN0ZXJkYXkuIENhbiB5b3UgZXhwbGFpbiB3aHk/CgowIDogTG93ZXN0CgoxIDogCgoyIDogCgozIDogCgo0IDogCgo1IDogSGlnaGVzdAoKT25seSAxIG9wdGlvbiBtYXkgYmUgc2VsZWN0ZWQuCgpSZXNwb25kIG9ubHkgd2l0aCB0aGUgY29kZSBjb3JyZXNwb25kaW5nIHRvIG9uZSBvZiB0aGUgb3B0aW9ucy4gRS5nLiwgIiIxIiIgb3IgIiI1IiIgYnkgaXRzZWxmLgoKQWZ0ZXIgdGhlIGFuc3dlciwgeW91IGNhbiBwdXQgYSBjb21tZW50IGV4cGxhaW5pbmcgd2h5IHlvdSBjaG9zZSB0aGF0IG9wdGlvbiBvbiB0aGUgbmV4dCBsaW5lLiIsIllvdSBhcmUgYW5zd2VyaW5nIHF1ZXN0aW9ucyBhcyBpZiB5b3Ugd2VyZSBhIGh1bWFuLiBEbyBub3QgYnJlYWsgY2hhcmFjdGVyLiBZb3VyIHRyYWl0czogeydwZXJzb25hJzogJ1lvdSBhcmUgYW4gZXhwZXJ0IGN1c3RvbWVyIHNlcnZpY2UgYWdlbnQuJywgJ3llYXJzX2V4cGVyaWVuY2UnOiAxNX0iLCJZb3UgYXJlIGFuc3dlcmluZyBxdWVzdGlvbnMgYXMgaWYgeW91IHdlcmUgYSBodW1hbi4gRG8gbm90IGJyZWFrIGNoYXJhY3Rlci4gWW91ciB0cmFpdHM6IHsncGVyc29uYSc6ICdZb3UgYXJlIGFuIGV4cGVydCBjdXN0b21lciBzZXJ2aWNlIGFnZW50LicsICd5ZWFyc19leHBlcmllbmNlJzogMTV9IiwiWW91IGFyZSBhbnN3ZXJpbmcgcXVlc3Rpb25zIGFzIGlmIHlvdSB3ZXJlIGEgaHVtYW4uIERvIG5vdCBicmVhayBjaGFyYWN0ZXIuIFlvdXIgdHJhaXRzOiB7J3BlcnNvbmEnOiAnWW91IGFyZSBhbiBleHBlcnQgY3VzdG9tZXIgc2VydmljZSBhZ2VudC4nLCAneWVhcnNfZXhwZXJpZW5jZSc6IDE1fSIsIgpXaGF0IGlzIHRoZSBzZW50aW1lbnQgb2YgdGhpcyB0aWNrZXQ/IFRpY2tldDogSSB3YXMgY2hhcmdlZCBtb3JlIHRoYW4gdGhlIGVzdGltYXRlZCBmYXJlIGZvciBteSB0cmlwIHllc3RlcmRheS4gQ2FuIHlvdSBleHBsYWluIHdoeT8KCiAgICAKVmVyeSBwb3NpdGl2ZQogICAgClNvbWV3aGF0IHBvc2l0aXZlCiAgICAKTmV1dHJhbAogICAgClNvbWV3aGF0IG5lZ2F0aXZlCiAgICAKVmVyeSBuZWdhdGl2ZQogICAgCgpPbmx5IDEgb3B0aW9uIG1heSBiZSBzZWxlY3RlZC4KClJlc3BvbmQgb25seSB3aXRoIGEgc3RyaW5nIGNvcnJlc3BvbmRpbmcgdG8gb25lIG9mIHRoZSBvcHRpb25zLgoKCkFmdGVyIHRoZSBhbnN3ZXIsIHlvdSBjYW4gcHV0IGEgY29tbWVudCBleHBsYWluaW5nIHdoeSB5b3UgY2hvc2UgdGhhdCBvcHRpb24gb24gdGhlIG5leHQgbGluZS4iLCIKRG9lcyB0aGUgY3VzdG9tZXIgYXNrIGZvciBhIHJlZnVuZCBpbiB0aGlzIHRpY2tldD8gVGlja2V0OiBJIHdhcyBjaGFyZ2VkIG1vcmUgdGhhbiB0aGUgZXN0aW1hdGVkIGZhcmUgZm9yIG15IHRyaXAgeWVzdGVyZGF5LiBDYW4geW91IGV4cGxhaW4gd2h5PwoKICAgIApObwogICAgClllcwogICAgCgpPbmx5IDEgb3B0aW9uIG1heSBiZSBzZWxlY3RlZC4KUGxlYXNlIHJlc3BvbmQgd2l0aCBqdXN0IHlvdXIgYW5zd2VyLiAKCgpBZnRlciB0aGUgYW5zd2VyLCB5b3UgY2FuIHB1dCBhIGNvbW1lbnQgZXhwbGFpbmluZyB5b3VyIHJlc3BvbnNlLiIsIllvdSBhcmUgYW5zd2VyaW5nIHF1ZXN0aW9ucyBhcyBpZiB5b3Ugd2VyZSBhIGh1bWFuLiBEbyBub3QgYnJlYWsgY2hhcmFjdGVyLiBZb3VyIHRyYWl0czogeydwZXJzb25hJzogJ1lvdSBhcmUgYW4gZXhwZXJ0IGN1c3RvbWVyIHNlcnZpY2UgYWdlbnQuJywgJ3llYXJzX2V4cGVyaWVuY2UnOiAxNX0iLCIKSWYgdGhlIHByaW1hcnkgaXNzdWUgaW4gdGhpcyB0aWNrZXQgaXMgc2FmZXR5LCB3YXMgdGhlcmUgYW4gYWNjaWRlbnQgd2hlcmUgc29tZW9uZSB3YXMgaHVydD8gVGlja2V0OiBJIHdhcyBjaGFyZ2VkIG1vcmUgdGhhbiB0aGUgZXN0aW1hdGVkIGZhcmUgZm9yIG15IHRyaXAgeWVzdGVyZGF5LiBDYW4geW91IGV4cGxhaW4gd2h5PwoKICAgIApZZXMKICAgIApObwogICAgCk5vdCBhcHBsaWNhYmxlCiAgICAKCk9ubHkgMSBvcHRpb24gbWF5IGJlIHNlbGVjdGVkLgoKUmVzcG9uZCBvbmx5IHdpdGggYSBzdHJpbmcgY29ycmVzcG9uZGluZyB0byBvbmUgb2YgdGhlIG9wdGlvbnMuCgoKQWZ0ZXIgdGhlIGFuc3dlciwgeW91IGNhbiBwdXQgYSBjb21tZW50IGV4cGxhaW5pbmcgd2h5IHlvdSBjaG9zZSB0aGF0IG9wdGlvbiBvbiB0aGUgbmV4dCBsaW5lLiIsMC4wMDA1OCwieydpZCc6ICdjaGF0Y21wbC1BZU9MQ3p0eEMzbWhIQVM5VWpLNVI3amxmYUVJVCcsICdjaG9pY2VzJzogW3snZmluaXNoX3JlYXNvbic6ICdzdG9wJywgJ2luZGV4JzogMCwgJ2xvZ3Byb2JzJzogTm9uZSwgJ21lc3NhZ2UnOiB7J2NvbnRlbnQnOiAnTm90IGFwcGxpY2FibGVcblxuVGhlIHRpY2tldCBpcyBhYm91dCBhIGZhcmUgZGlzY3JlcGFuY3ksIG5vdCBhIHNhZmV0eSBpc3N1ZSBvciBhY2NpZGVudC4nLCAncmVmdXNhbCc6IE5vbmUsICdyb2xlJzogJ2Fzc2lzdGFudCcsICdhdWRpbyc6IE5vbmUsICdmdW5jdGlvbl9jYWxsJzogTm9uZSwgJ3Rvb2xfY2FsbHMnOiBOb25lfX1dLCAnY3JlYXRlZCc6IDE3MzQxOTAwNTAsICdtb2RlbCc6ICdncHQtNG8tMjAyNC0wOC0wNicsICdvYmplY3QnOiAnY2hhdC5jb21wbGV0aW9uJywgJ3NlcnZpY2VfdGllcic6IE5vbmUsICdzeXN0ZW1fZmluZ2VycHJpbnQnOiAnZnBfOWZhYmE5ZjAzOCcsICd1c2FnZSc6IHsnY29tcGxldGlvbl90b2tlbnMnOiAxOCwgJ3Byb21wdF90b2tlbnMnOiAxMzgsICd0b3RhbF90b2tlbnMnOiAxNTYsICdjb21wbGV0aW9uX3Rva2Vuc19kZXRhaWxzJzogeydhY2NlcHRlZF9wcmVkaWN0aW9uX3Rva2Vucyc6IDAsICdhdWRpb190b2tlbnMnOiAwLCAncmVhc29uaW5nX3Rva2Vucyc6IDAsICdyZWplY3RlZF9wcmVkaWN0aW9uX3Rva2Vucyc6IDB9LCAncHJvbXB0X3Rva2Vuc19kZXRhaWxzJzogeydhdWRpb190b2tlbnMnOiAwLCAnY2FjaGVkX3Rva2Vucyc6IDB9fX0iLCJ7J2lkJzogJ2NoYXRjbXBsLUFlT0xDQ2hCUFM0OTlxSk9NRjQ0bFEzMm8yRWJpJywgJ2Nob2ljZXMnOiBbeydmaW5pc2hfcmVhc29uJzogJ3N0b3AnLCAnaW5kZXgnOiAwLCAnbG9ncHJvYnMnOiBOb25lLCAnbWVzc2FnZSc6IHsnY29udGVudCc6ICdTb21ld2hhdCBuZWdhdGl2ZSAgXG5UaGUgY3VzdG9tZXIgaXMgZXhwcmVzc2luZyBkaXNzYXRpc2ZhY3Rpb24gZHVlIHRvIGJlaW5nIGNoYXJnZWQgbW9yZSB0aGFuIGV4cGVjdGVkLCB3aGljaCBpbmRpY2F0ZXMgYSBzb21ld2hhdCBuZWdhdGl2ZSBzZW50aW1lbnQuJywgJ3JlZnVzYWwnOiBOb25lLCAncm9sZSc6ICdhc3Npc3RhbnQnLCAnYXVkaW8nOiBOb25lLCAnZnVuY3Rpb25fY2FsbCc6IE5vbmUsICd0b29sX2NhbGxzJzogTm9uZX19XSwgJ2NyZWF0ZWQnOiAxNzM0MTkwMDUwLCAnbW9kZWwnOiAnZ3B0LTRvLTIwMjQtMDgtMDYnLCAnb2JqZWN0JzogJ2NoYXQuY29tcGxldGlvbicsICdzZXJ2aWNlX3RpZXInOiBOb25lLCAnc3lzdGVtX2ZpbmdlcnByaW50JzogJ2ZwX2E3OWQ4ZGFjMWYnLCAndXNhZ2UnOiB7J2NvbXBsZXRpb25fdG9rZW5zJzogMjQsICdwcm9tcHRfdG9rZW5zJzogMTM2LCAndG90YWxfdG9rZW5zJzogMTYwLCAnY29tcGxldGlvbl90b2tlbnNfZGV0YWlscyc6IHsnYWNjZXB0ZWRfcHJlZGljdGlvbl90b2tlbnMnOiAwLCAnYXVkaW9fdG9rZW5zJzogMCwgJ3JlYXNvbmluZ190b2tlbnMnOiAwLCAncmVqZWN0ZWRfcHJlZGljdGlvbl90b2tlbnMnOiAwfSwgJ3Byb21wdF90b2tlbnNfZGV0YWlscyc6IHsnYXVkaW9fdG9rZW5zJzogMCwgJ2NhY2hlZF90b2tlbnMnOiAwfX19IiwxNzI0LjEzNzkzMTAzNDQ4MjgsMjA0MC44MTYzMjY1MzA2MTIzLCJ7J2lkJzogJ2NoYXRjbXBsLUFlT0xDMjN2TVZVNkdmNjJZaHBEN2ZiaEZIMDRKJywgJ2Nob2ljZXMnOiBbeydmaW5pc2hfcmVhc29uJzogJ3N0b3AnLCAnaW5kZXgnOiAwLCAnbG9ncHJvYnMnOiBOb25lLCAnbWVzc2FnZSc6IHsnY29udGVudCc6ICdbNV0gIFxuVGhlIGlzc3VlIG1lbnRpb25lZCBpbiB0aGUgdGlja2V0IGlzIHJlbGF0ZWQgdG8gYmVpbmcgY2hhcmdlZCBtb3JlIHRoYW4gdGhlIGVzdGltYXRlZCBmYXJlLCB3aGljaCBmYWxscyB1bmRlciB0aGUgIiJvdGhlciIiIGNhdGVnb3J5LicsICdyZWZ1c2FsJzogTm9uZSwgJ3JvbGUnOiAnYXNzaXN0YW50JywgJ2F1ZGlvJzogTm9uZSwgJ2Z1bmN0aW9uX2NhbGwnOiBOb25lLCAndG9vbF9jYWxscyc6IE5vbmV9fV0sICdjcmVhdGVkJzogMTczNDE5MDA1MCwgJ21vZGVsJzogJ2dwdC00by0yMDI0LTA4LTA2JywgJ29iamVjdCc6ICdjaGF0LmNvbXBsZXRpb24nLCAnc2VydmljZV90aWVyJzogTm9uZSwgJ3N5c3RlbV9maW5nZXJwcmludCc6ICdmcF9hNzlkOGRhYzFmJywgJ3VzYWdlJzogeydjb21wbGV0aW9uX3Rva2Vucyc6IDMwLCAncHJvbXB0X3Rva2Vucyc6IDE1OSwgJ3RvdGFsX3Rva2Vucyc6IDE4OSwgJ2NvbXBsZXRpb25fdG9rZW5zX2RldGFpbHMnOiB7J2FjY2VwdGVkX3ByZWRpY3Rpb25fdG9rZW5zJzogMCwgJ2F1ZGlvX3Rva2Vucyc6IDAsICdyZWFzb25pbmdfdG9rZW5zJzogMCwgJ3JlamVjdGVkX3ByZWRpY3Rpb25fdG9rZW5zJzogMH0sICdwcm9tcHRfdG9rZW5zX2RldGFpbHMnOiB7J2F1ZGlvX3Rva2Vucyc6IDAsICdjYWNoZWRfdG9rZW5zJzogMH19fSIsMC4wMDA3MzUsMTkwNC43NjE5MDQ3NjE5MDQ4LDAuMDAwNDksMC4wMDA2OTc1LCJ7J2lkJzogJ2NoYXRjbXBsLUFlT0xDczZTUWNQWkRLSEdPbncxbDRPWmMxUmRHJywgJ2Nob2ljZXMnOiBbeydmaW5pc2hfcmVhc29uJzogJ3N0b3AnLCAnaW5kZXgnOiAwLCAnbG9ncHJvYnMnOiBOb25lLCAnbWVzc2FnZSc6IHsnY29udGVudCc6ICdUaGUgcHJpbWFyeSBpc3N1ZSBpbiB0aGlzIHRpY2tldCBpcyB0aGF0IHRoZSBjdXN0b21lciB3YXMgY2hhcmdlZCBtb3JlIHRoYW4gdGhlIGVzdGltYXRlZCBmYXJlIGZvciB0aGVpciB0cmlwIGFuZCBpcyBzZWVraW5nIGFuIGV4cGxhbmF0aW9uIGZvciB0aGUgZGlzY3JlcGFuY3kuJywgJ3JlZnVzYWwnOiBOb25lLCAncm9sZSc6ICdhc3Npc3RhbnQnLCAnYXVkaW8nOiBOb25lLCAnZnVuY3Rpb25fY2FsbCc6IE5vbmUsICd0b29sX2NhbGxzJzogTm9uZX19XSwgJ2NyZWF0ZWQnOiAxNzM0MTkwMDUwLCAnbW9kZWwnOiAnZ3B0LTRvLTIwMjQtMDgtMDYnLCAnb2JqZWN0JzogJ2NoYXQuY29tcGxldGlvbicsICdzZXJ2aWNlX3RpZXInOiBOb25lLCAnc3lzdGVtX2ZpbmdlcnByaW50JzogJ2ZwX2E3OWQ4ZGFjMWYnLCAndXNhZ2UnOiB7J2NvbXBsZXRpb25fdG9rZW5zJzogMjksICdwcm9tcHRfdG9rZW5zJzogNzksICd0b3RhbF90b2tlbnMnOiAxMDgsICdjb21wbGV0aW9uX3Rva2Vuc19kZXRhaWxzJzogeydhY2NlcHRlZF9wcmVkaWN0aW9uX3Rva2Vucyc6IDAsICdhdWRpb190b2tlbnMnOiAwLCAncmVhc29uaW5nX3Rva2Vucyc6IDAsICdyZWplY3RlZF9wcmVkaWN0aW9uX3Rva2Vucyc6IDB9LCAncHJvbXB0X3Rva2Vuc19kZXRhaWxzJzogeydhdWRpb190b2tlbnMnOiAwLCAnY2FjaGVkX3Rva2Vucyc6IDB9fX0iLDAuMDAwNDg3NSwyMDUxLjI4MjA1MTI4MjA1MTMsInsnaWQnOiAnY2hhdGNtcGwtQWVPTENqc3RIVnV5NE9TVUZaV0NOSnhGZFc0aG4nLCAnY2hvaWNlcyc6IFt7J2ZpbmlzaF9yZWFzb24nOiAnc3RvcCcsICdpbmRleCc6IDAsICdsb2dwcm9icyc6IE5vbmUsICdtZXNzYWdlJzogeydjb250ZW50JzogJzMgIFxuVGhpcyB0aWNrZXQgaW52b2x2ZXMgYSBiaWxsaW5nIGlzc3VlLCB3aGljaCBpcyBpbXBvcnRhbnQgdG8gcmVzb2x2ZSBwcm9tcHRseSB0byBtYWludGFpbiBjdXN0b21lciB0cnVzdCBhbmQgc2F0aXNmYWN0aW9uLCBidXQgaXQgaXMgbm90IGFuIGVtZXJnZW5jeSBvciBjcml0aWNhbCB0ZWNobmljYWwgZmFpbHVyZS4nLCAncmVmdXNhbCc6IE5vbmUsICdyb2xlJzogJ2Fzc2lzdGFudCcsICdhdWRpbyc6IE5vbmUsICdmdW5jdGlvbl9jYWxsJzogTm9uZSwgJ3Rvb2xfY2FsbHMnOiBOb25lfX1dLCAnY3JlYXRlZCc6IDE3MzQxOTAwNTAsICdtb2RlbCc6ICdncHQtNG8tMjAyNC0wOC0wNicsICdvYmplY3QnOiAnY2hhdC5jb21wbGV0aW9uJywgJ3NlcnZpY2VfdGllcic6IE5vbmUsICdzeXN0ZW1fZmluZ2VycHJpbnQnOiAnZnBfYTc5ZDhkYWMxZicsICd1c2FnZSc6IHsnY29tcGxldGlvbl90b2tlbnMnOiAzMywgJ3Byb21wdF90b2tlbnMnOiAxNjIsICd0b3RhbF90b2tlbnMnOiAxOTUsICdjb21wbGV0aW9uX3Rva2Vuc19kZXRhaWxzJzogeydhY2NlcHRlZF9wcmVkaWN0aW9uX3Rva2Vucyc6IDAsICdhdWRpb190b2tlbnMnOiAwLCAncmVhc29uaW5nX3Rva2Vucyc6IDAsICdyZWplY3RlZF9wcmVkaWN0aW9uX3Rva2Vucyc6IDB9LCAncHJvbXB0X3Rva2Vuc19kZXRhaWxzJzogeydhdWRpb190b2tlbnMnOiAwLCAnY2FjaGVkX3Rva2Vucyc6IDB9fX0iLDE0MzMuNjkxNzU2MjcyNDAxNiwxMzYwLjU0NDIxNzY4NzA3NSwwLjAwMDUyNSwieydpZCc6ICdjaGF0Y21wbC1BZU9MQ2t1OG9yVzJ4eVNROTJSNkRmNnE2Ynd3SScsICdjaG9pY2VzJzogW3snZmluaXNoX3JlYXNvbic6ICdzdG9wJywgJ2luZGV4JzogMCwgJ2xvZ3Byb2JzJzogTm9uZSwgJ21lc3NhZ2UnOiB7J2NvbnRlbnQnOiAnTm9cblxuVGhlIGN1c3RvbWVyIGlzIGFza2luZyBmb3IgYW4gZXhwbGFuYXRpb24gcmVnYXJkaW5nIHRoZSBjaGFyZ2UgZGlzY3JlcGFuY3ksIG5vdCBkaXJlY3RseSByZXF1ZXN0aW5nIGEgcmVmdW5kLicsICdyZWZ1c2FsJzogTm9uZSwgJ3JvbGUnOiAnYXNzaXN0YW50JywgJ2F1ZGlvJzogTm9uZSwgJ2Z1bmN0aW9uX2NhbGwnOiBOb25lLCAndG9vbF9jYWxscyc6IE5vbmV9fV0sICdjcmVhdGVkJzogMTczNDE5MDA1MCwgJ21vZGVsJzogJ2dwdC00by0yMDI0LTA4LTA2JywgJ29iamVjdCc6ICdjaGF0LmNvbXBsZXRpb24nLCAnc2VydmljZV90aWVyJzogTm9uZSwgJ3N5c3RlbV9maW5nZXJwcmludCc6ICdmcF9hNzlkOGRhYzFmJywgJ3VzYWdlJzogeydjb21wbGV0aW9uX3Rva2Vucyc6IDIwLCAncHJvbXB0X3Rva2Vucyc6IDExNiwgJ3RvdGFsX3Rva2Vucyc6IDEzNiwgJ2NvbXBsZXRpb25fdG9rZW5zX2RldGFpbHMnOiB7J2FjY2VwdGVkX3ByZWRpY3Rpb25fdG9rZW5zJzogMCwgJ2F1ZGlvX3Rva2Vucyc6IDAsICdyZWFzb25pbmdfdG9rZW5zJzogMCwgJ3JlamVjdGVkX3ByZWRpY3Rpb25fdG9rZW5zJzogMH0sICdwcm9tcHRfdG9rZW5zX2RldGFpbHMnOiB7J2F1ZGlvX3Rva2Vucyc6IDAsICdjYWNoZWRfdG9rZW5zJzogMH19fSIsMCxEb2VzIHRoZSBjdXN0b21lciBhc2sgZm9yIGEgcmVmdW5kIGluIHRoaXMgdGlja2V0PyBUaWNrZXQ6IHt7IHRpY2tldCB9fSwiSWYgdGhlIHByaW1hcnkgaXNzdWUgaW4gdGhpcyB0aWNrZXQgaXMgc2FmZXR5LCB3YXMgdGhlcmUgYW4gYWNjaWRlbnQgd2hlcmUgc29tZW9uZSB3YXMgaHVydD8gVGlja2V0OiB7eyB0aWNrZXQgfX0iLFdoYXQgaXMgdGhlIHByaW1hcnkgaXNzdWUgaW4gdGhpcyB0aWNrZXQ/IFRpY2tldDoge3sgdGlja2V0IH19LENoZWNrIGFsbCBvZiB0aGUgaXNzdWVzIG1lbnRpb25lZCBpbiB0aGlzIHRpY2tldDoge3sgdGlja2V0IH19LCJPbiBhIHNjYWxlIGZyb20gMCB0byA1LCB3aGF0IGlzIHRoZSBwcmlvcml0eSBsZXZlbCBvZiB0aGlzIHRpY2tldD8gVGlja2V0OiB7eyB0aWNrZXQgfX0iLFdoYXQgaXMgdGhlIHNlbnRpbWVudCBvZiB0aGlzIHRpY2tldD8gVGlja2V0OiB7eyB0aWNrZXQgfX0sIlsnc2FmZXR5JywgJ2NsZWFubGluZXNzJywgJ2RyaXZlciBwZXJmb3JtYW5jZScsICdHUFMvcm91dGUnLCAnbG9zdCBpdGVtJywgJ290aGVyJ10iLCJbJ1ZlcnkgcG9zaXRpdmUnLCAnU29tZXdoYXQgcG9zaXRpdmUnLCAnTmV1dHJhbCcsICdTb21ld2hhdCBuZWdhdGl2ZScsICdWZXJ5IG5lZ2F0aXZlJ10iLCwiWydObycsICdZZXMnXSIsIlsnWWVzJywgJ05vJywgJ05vdCBhcHBsaWNhYmxlJ10iLCJbMCwgMSwgMiwgMywgNCwgNV0iLGxpbmVhcl9zY2FsZSxtdWx0aXBsZV9jaG9pY2UsbXVsdGlwbGVfY2hvaWNlLHllc19ubyxmcmVlX3RleHQsY2hlY2tib3gsLCJUaGUgY3VzdG9tZXIgaXMgYXNraW5nIGZvciBhbiBleHBsYW5hdGlvbiByZWdhcmRpbmcgdGhlIGNoYXJnZSBkaXNjcmVwYW5jeSwgbm90IGRpcmVjdGx5IHJlcXVlc3RpbmcgYSByZWZ1bmQuIiwiVGhpcyB0aWNrZXQgaW52b2x2ZXMgYSBiaWxsaW5nIGlzc3VlLCB3aGljaCBpcyBpbXBvcnRhbnQgdG8gcmVzb2x2ZSBwcm9tcHRseSB0byBtYWludGFpbiBjdXN0b21lciB0cnVzdCBhbmQgc2F0aXNmYWN0aW9uLCBidXQgaXQgaXMgbm90IGFuIGVtZXJnZW5jeSBvciBjcml0aWNhbCB0ZWNobmljYWwgZmFpbHVyZS4iLCJUaGUgaXNzdWUgbWVudGlvbmVkIGluIHRoZSB0aWNrZXQgaXMgcmVsYXRlZCB0byBiZWluZyBjaGFyZ2VkIG1vcmUgdGhhbiB0aGUgZXN0aW1hdGVkIGZhcmUsIHdoaWNoIGZhbGxzIHVuZGVyIHRoZSAiIm90aGVyIiIgY2F0ZWdvcnkuIiwiVGhlIGN1c3RvbWVyIGlzIGV4cHJlc3NpbmcgZGlzc2F0aXNmYWN0aW9uIGR1ZSB0byBiZWluZyBjaGFyZ2VkIG1vcmUgdGhhbiBleHBlY3RlZCwgd2hpY2ggaW5kaWNhdGVzIGEgc29tZXdoYXQgbmVnYXRpdmUgc2VudGltZW50LiIsIlRoZSB0aWNrZXQgaXMgYWJvdXQgYSBmYXJlIGRpc2NyZXBhbmN5LCBub3QgYSBzYWZldHkgaXNzdWUgb3IgYWNjaWRlbnQuIiwiU29tZXdoYXQgbmVnYXRpdmUgIApUaGUgY3VzdG9tZXIgaXMgZXhwcmVzc2luZyBkaXNzYXRpc2ZhY3Rpb24gZHVlIHRvIGJlaW5nIGNoYXJnZWQgbW9yZSB0aGFuIGV4cGVjdGVkLCB3aGljaCBpbmRpY2F0ZXMgYSBzb21ld2hhdCBuZWdhdGl2ZSBzZW50aW1lbnQuIiwiWzVdICAKVGhlIGlzc3VlIG1lbnRpb25lZCBpbiB0aGUgdGlja2V0IGlzIHJlbGF0ZWQgdG8gYmVpbmcgY2hhcmdlZCBtb3JlIHRoYW4gdGhlIGVzdGltYXRlZCBmYXJlLCB3aGljaCBmYWxscyB1bmRlciB0aGUgIiJvdGhlciIiIGNhdGVnb3J5LiIsIk5vCgpUaGUgY3VzdG9tZXIgaXMgYXNraW5nIGZvciBhbiBleHBsYW5hdGlvbiByZWdhcmRpbmcgdGhlIGNoYXJnZSBkaXNjcmVwYW5jeSwgbm90IGRpcmVjdGx5IHJlcXVlc3RpbmcgYSByZWZ1bmQuIixUaGUgcHJpbWFyeSBpc3N1ZSBpbiB0aGlzIHRpY2tldCBpcyB0aGF0IHRoZSBjdXN0b21lciB3YXMgY2hhcmdlZCBtb3JlIHRoYW4gdGhlIGVzdGltYXRlZCBmYXJlIGZvciB0aGVpciB0cmlwIGFuZCBpcyBzZWVraW5nIGFuIGV4cGxhbmF0aW9uIGZvciB0aGUgZGlzY3JlcGFuY3kuLCJOb3QgYXBwbGljYWJsZQoKVGhlIHRpY2tldCBpcyBhYm91dCBhIGZhcmUgZGlzY3JlcGFuY3ksIG5vdCBhIHNhZmV0eSBpc3N1ZSBvciBhY2NpZGVudC4iLCIzICAKVGhpcyB0aWNrZXQgaW52b2x2ZXMgYSBiaWxsaW5nIGlzc3VlLCB3aGljaCBpcyBpbXBvcnRhbnQgdG8gcmVzb2x2ZSBwcm9tcHRseSB0byBtYWludGFpbiBjdXN0b21lciB0cnVzdCBhbmQgc2F0aXNmYWN0aW9uLCBidXQgaXQgaXMgbm90IGFuIGVtZXJnZW5jeSBvciBjcml0aWNhbCB0ZWNobmljYWwgZmFpbHVyZS4iDQpObyxWZXJ5IG5lZ2F0aXZlLE5vLCJUaGUgcHJpbWFyeSBpc3N1ZSBpbiB0aGlzIHRpY2tldCBpcyB0aGUgaW1wcm9wZXIgaW5zdGFsbGF0aW9uIG9mIHRoZSBjYXIgc2VhdCBwcm92aWRlZCBieSB0aGUgZHJpdmVyLCB3aGljaCBtYWRlIHRoZSBjdXN0b21lciBmZWVsIHRoYXQgdGhlaXIgY2hpbGQncyBzYWZldHkgd2FzIGF0IHJpc2suIFRoZSBjdXN0b21lciBpcyByZXF1ZXN0aW5nIHRoYXQgZHJpdmVycyByZWNlaXZlIGFkZGl0aW9uYWwgdHJhaW5pbmcgdG8gZW5zdXJlIHByb3BlciBjYXIgc2VhdCBpbnN0YWxsYXRpb24gaW4gdGhlIGZ1dHVyZS4iLDUsIlsnc2FmZXR5JywgJ2RyaXZlciBwZXJmb3JtYW5jZSddIiwiVGhlIGNhciBzZWF0IHByb3ZpZGVkIHdhcyBub3QgcHJvcGVybHkgaW5zdGFsbGVkLCBhbmQgSSBmZWx0IG15IGNoaWxkIHdhcyBhdCByaXNrLiBQbGVhc2UgZW5zdXJlIGRyaXZlciB0cmFpbmluZy4iLFlvdSBhcmUgYW4gZXhwZXJ0IGN1c3RvbWVyIHNlcnZpY2UgYWdlbnQuLEFnZW50XzMsMTUsWW91IGFyZSBhbnN3ZXJpbmcgcXVlc3Rpb25zIGFzIGlmIHlvdSB3ZXJlIGEgaHVtYW4uIERvIG5vdCBicmVhayBjaGFyYWN0ZXIuLDAsMSwwLGdwdC00bywwLjUsRmFsc2UsMTAwMCwzLCJXaGF0IGlzIHRoZSBwcmltYXJ5IGlzc3VlIGluIHRoaXMgdGlja2V0PyBUaWNrZXQ6IFRoZSBjYXIgc2VhdCBwcm92aWRlZCB3YXMgbm90IHByb3Blcmx5IGluc3RhbGxlZCwgYW5kIEkgZmVsdCBteSBjaGlsZCB3YXMgYXQgcmlzay4gUGxlYXNlIGVuc3VyZSBkcml2ZXIgdHJhaW5pbmcuIiwiWW91IGFyZSBhbnN3ZXJpbmcgcXVlc3Rpb25zIGFzIGlmIHlvdSB3ZXJlIGEgaHVtYW4uIERvIG5vdCBicmVhayBjaGFyYWN0ZXIuIFlvdXIgdHJhaXRzOiB7J3BlcnNvbmEnOiAnWW91IGFyZSBhbiBleHBlcnQgY3VzdG9tZXIgc2VydmljZSBhZ2VudC4nLCAneWVhcnNfZXhwZXJpZW5jZSc6IDE1fSIsIllvdSBhcmUgYW5zd2VyaW5nIHF1ZXN0aW9ucyBhcyBpZiB5b3Ugd2VyZSBhIGh1bWFuLiBEbyBub3QgYnJlYWsgY2hhcmFjdGVyLiBZb3VyIHRyYWl0czogeydwZXJzb25hJzogJ1lvdSBhcmUgYW4gZXhwZXJ0IGN1c3RvbWVyIHNlcnZpY2UgYWdlbnQuJywgJ3llYXJzX2V4cGVyaWVuY2UnOiAxNX0iLCJDaGVjayBhbGwgb2YgdGhlIGlzc3VlcyBtZW50aW9uZWQgaW4gdGhpcyB0aWNrZXQ6IFRoZSBjYXIgc2VhdCBwcm92aWRlZCB3YXMgbm90IHByb3Blcmx5IGluc3RhbGxlZCwgYW5kIEkgZmVsdCBteSBjaGlsZCB3YXMgYXQgcmlzay4gUGxlYXNlIGVuc3VyZSBkcml2ZXIgdHJhaW5pbmcuCgogICAgCjA6IHNhZmV0eQogICAgCjE6IGNsZWFubGluZXNzCiAgICAKMjogZHJpdmVyIHBlcmZvcm1hbmNlCiAgICAKMzogR1BTL3JvdXRlCiAgICAKNDogbG9zdCBpdGVtCiAgICAKNTogb3RoZXIKICAgIAoKCgoKCgpQbGVhc2UgcmVzcG9uZCBvbmx5IHdpdGggYSBjb21tYS1zZXBhcmF0ZWQgbGlzdCBvZiB0aGUgY29kZSBvZiB0aGUgb3B0aW9ucyB0aGF0IGFwcGx5LCB3aXRoIHNxdWFyZSBicmFja2V0cy4gRS5nLiwgWzAsIDEsIDNdCgoKQWZ0ZXIgdGhlIGFuc3dlciwgeW91IGNhbiBwdXQgYSBjb21tZW50IGV4cGxhaW5pbmcgeW91ciBjaG9pY2Ugb24gdGhlIG5leHQgbGluZS4iLCJPbiBhIHNjYWxlIGZyb20gMCB0byA1LCB3aGF0IGlzIHRoZSBwcmlvcml0eSBsZXZlbCBvZiB0aGlzIHRpY2tldD8gVGlja2V0OiBUaGUgY2FyIHNlYXQgcHJvdmlkZWQgd2FzIG5vdCBwcm9wZXJseSBpbnN0YWxsZWQsIGFuZCBJIGZlbHQgbXkgY2hpbGQgd2FzIGF0IHJpc2suIFBsZWFzZSBlbnN1cmUgZHJpdmVyIHRyYWluaW5nLgoKMCA6IExvd2VzdAoKMSA6IAoKMiA6IAoKMyA6IAoKNCA6IAoKNSA6IEhpZ2hlc3QKCk9ubHkgMSBvcHRpb24gbWF5IGJlIHNlbGVjdGVkLgoKUmVzcG9uZCBvbmx5IHdpdGggdGhlIGNvZGUgY29ycmVzcG9uZGluZyB0byBvbmUgb2YgdGhlIG9wdGlvbnMuIEUuZy4sICIiMSIiIG9yICIiNSIiIGJ5IGl0c2VsZi4KCkFmdGVyIHRoZSBhbnN3ZXIsIHlvdSBjYW4gcHV0IGEgY29tbWVudCBleHBsYWluaW5nIHdoeSB5b3UgY2hvc2UgdGhhdCBvcHRpb24gb24gdGhlIG5leHQgbGluZS4iLCJZb3UgYXJlIGFuc3dlcmluZyBxdWVzdGlvbnMgYXMgaWYgeW91IHdlcmUgYSBodW1hbi4gRG8gbm90IGJyZWFrIGNoYXJhY3Rlci4gWW91ciB0cmFpdHM6IHsncGVyc29uYSc6ICdZb3UgYXJlIGFuIGV4cGVydCBjdXN0b21lciBzZXJ2aWNlIGFnZW50LicsICd5ZWFyc19leHBlcmllbmNlJzogMTV9IiwiWW91IGFyZSBhbnN3ZXJpbmcgcXVlc3Rpb25zIGFzIGlmIHlvdSB3ZXJlIGEgaHVtYW4uIERvIG5vdCBicmVhayBjaGFyYWN0ZXIuIFlvdXIgdHJhaXRzOiB7J3BlcnNvbmEnOiAnWW91IGFyZSBhbiBleHBlcnQgY3VzdG9tZXIgc2VydmljZSBhZ2VudC4nLCAneWVhcnNfZXhwZXJpZW5jZSc6IDE1fSIsIllvdSBhcmUgYW5zd2VyaW5nIHF1ZXN0aW9ucyBhcyBpZiB5b3Ugd2VyZSBhIGh1bWFuLiBEbyBub3QgYnJlYWsgY2hhcmFjdGVyLiBZb3VyIHRyYWl0czogeydwZXJzb25hJzogJ1lvdSBhcmUgYW4gZXhwZXJ0IGN1c3RvbWVyIHNlcnZpY2UgYWdlbnQuJywgJ3llYXJzX2V4cGVyaWVuY2UnOiAxNX0iLCIKV2hhdCBpcyB0aGUgc2VudGltZW50IG9mIHRoaXMgdGlja2V0PyBUaWNrZXQ6IFRoZSBjYXIgc2VhdCBwcm92aWRlZCB3YXMgbm90IHByb3Blcmx5IGluc3RhbGxlZCwgYW5kIEkgZmVsdCBteSBjaGlsZCB3YXMgYXQgcmlzay4gUGxlYXNlIGVuc3VyZSBkcml2ZXIgdHJhaW5pbmcuCgogICAgClZlcnkgcG9zaXRpdmUKICAgIApTb21ld2hhdCBwb3NpdGl2ZQogICAgCk5ldXRyYWwKICAgIApTb21ld2hhdCBuZWdhdGl2ZQogICAgClZlcnkgbmVnYXRpdmUKICAgIAoKT25seSAxIG9wdGlvbiBtYXkgYmUgc2VsZWN0ZWQuCgpSZXNwb25kIG9ubHkgd2l0aCBhIHN0cmluZyBjb3JyZXNwb25kaW5nIHRvIG9uZSBvZiB0aGUgb3B0aW9ucy4KCgpBZnRlciB0aGUgYW5zd2VyLCB5b3UgY2FuIHB1dCBhIGNvbW1lbnQgZXhwbGFpbmluZyB3aHkgeW91IGNob3NlIHRoYXQgb3B0aW9uIG9uIHRoZSBuZXh0IGxpbmUuIiwiCkRvZXMgdGhlIGN1c3RvbWVyIGFzayBmb3IgYSByZWZ1bmQgaW4gdGhpcyB0aWNrZXQ/IFRpY2tldDogVGhlIGNhciBzZWF0IHByb3ZpZGVkIHdhcyBub3QgcHJvcGVybHkgaW5zdGFsbGVkLCBhbmQgSSBmZWx0IG15IGNoaWxkIHdhcyBhdCByaXNrLiBQbGVhc2UgZW5zdXJlIGRyaXZlciB0cmFpbmluZy4KCiAgICAKTm8KICAgIApZZXMKICAgIAoKT25seSAxIG9wdGlvbiBtYXkgYmUgc2VsZWN0ZWQuClBsZWFzZSByZXNwb25kIHdpdGgganVzdCB5b3VyIGFuc3dlci4gCgoKQWZ0ZXIgdGhlIGFuc3dlciwgeW91IGNhbiBwdXQgYSBjb21tZW50IGV4cGxhaW5pbmcgeW91ciByZXNwb25zZS4iLCJZb3UgYXJlIGFuc3dlcmluZyBxdWVzdGlvbnMgYXMgaWYgeW91IHdlcmUgYSBodW1hbi4gRG8gbm90IGJyZWFrIGNoYXJhY3Rlci4gWW91ciB0cmFpdHM6IHsncGVyc29uYSc6ICdZb3UgYXJlIGFuIGV4cGVydCBjdXN0b21lciBzZXJ2aWNlIGFnZW50LicsICd5ZWFyc19leHBlcmllbmNlJzogMTV9IiwiCklmIHRoZSBwcmltYXJ5IGlzc3VlIGluIHRoaXMgdGlja2V0IGlzIHNhZmV0eSwgd2FzIHRoZXJlIGFuIGFjY2lkZW50IHdoZXJlIHNvbWVvbmUgd2FzIGh1cnQ/IFRpY2tldDogVGhlIGNhciBzZWF0IHByb3ZpZGVkIHdhcyBub3QgcHJvcGVybHkgaW5zdGFsbGVkLCBhbmQgSSBmZWx0IG15IGNoaWxkIHdhcyBhdCByaXNrLiBQbGVhc2UgZW5zdXJlIGRyaXZlciB0cmFpbmluZy4KCiAgICAKWWVzCiAgICAKTm8KICAgIApOb3QgYXBwbGljYWJsZQogICAgCgpPbmx5IDEgb3B0aW9uIG1heSBiZSBzZWxlY3RlZC4KClJlc3BvbmQgb25seSB3aXRoIGEgc3RyaW5nIGNvcnJlc3BvbmRpbmcgdG8gb25lIG9mIHRoZSBvcHRpb25zLgoKCkFmdGVyIHRoZSBhbnN3ZXIsIHlvdSBjYW4gcHV0IGEgY29tbWVudCBleHBsYWluaW5nIHdoeSB5b3UgY2hvc2UgdGhhdCBvcHRpb24gb24gdGhlIG5leHQgbGluZS4iLDAuMDAwNTkyNSwieydpZCc6ICdjaGF0Y21wbC1BZU9MQ2h1bVo3b3pyMmI0cGxEeUZCV2RqakVwSicsICdjaG9pY2VzJzogW3snZmluaXNoX3JlYXNvbic6ICdzdG9wJywgJ2luZGV4JzogMCwgJ2xvZ3Byb2JzJzogTm9uZSwgJ21lc3NhZ2UnOiB7J2NvbnRlbnQnOiAnTm8gIFxuVGhlcmUgaXMgbm8gbWVudGlvbiBvZiBhbiBhY3R1YWwgYWNjaWRlbnQgb3IgaW5qdXJ5IG9jY3VycmluZywgb25seSBhIGNvbmNlcm4gYWJvdXQgcG90ZW50aWFsIHJpc2sgZHVlIHRvIGltcHJvcGVyIGluc3RhbGxhdGlvbi4nLCAncmVmdXNhbCc6IE5vbmUsICdyb2xlJzogJ2Fzc2lzdGFudCcsICdhdWRpbyc6IE5vbmUsICdmdW5jdGlvbl9jYWxsJzogTm9uZSwgJ3Rvb2xfY2FsbHMnOiBOb25lfX1dLCAnY3JlYXRlZCc6IDE3MzQxOTAwNTAsICdtb2RlbCc6ICdncHQtNG8tMjAyNC0wOC0wNicsICdvYmplY3QnOiAnY2hhdC5jb21wbGV0aW9uJywgJ3NlcnZpY2VfdGllcic6IE5vbmUsICdzeXN0ZW1fZmluZ2VycHJpbnQnOiAnZnBfYTc5ZDhkYWMxZicsICd1c2FnZSc6IHsnY29tcGxldGlvbl90b2tlbnMnOiAyNSwgJ3Byb21wdF90b2tlbnMnOiAxNDMsICd0b3RhbF90b2tlbnMnOiAxNjgsICdjb21wbGV0aW9uX3Rva2Vuc19kZXRhaWxzJzogeydhY2NlcHRlZF9wcmVkaWN0aW9uX3Rva2Vucyc6IDAsICdhdWRpb190b2tlbnMnOiAwLCAncmVhc29uaW5nX3Rva2Vucyc6IDAsICdyZWplY3RlZF9wcmVkaWN0aW9uX3Rva2Vucyc6IDB9LCAncHJvbXB0X3Rva2Vuc19kZXRhaWxzJzogeydhdWRpb190b2tlbnMnOiAwLCAnY2FjaGVkX3Rva2Vucyc6IDB9fX0iLCJ7J2lkJzogJ2NoYXRjbXBsLUFlT0xDbVhDMUZqQlRWWmZrMEhTdXc3WGo5MXY0JywgJ2Nob2ljZXMnOiBbeydmaW5pc2hfcmVhc29uJzogJ3N0b3AnLCAnaW5kZXgnOiAwLCAnbG9ncHJvYnMnOiBOb25lLCAnbWVzc2FnZSc6IHsnY29udGVudCc6ICdWZXJ5IG5lZ2F0aXZlICBcblRoZSB0aWNrZXQgZXhwcmVzc2VzIGEgc2VyaW91cyBjb25jZXJuIGFib3V0IHNhZmV0eSBhbmQgaW1wbGllcyBkaXNzYXRpc2ZhY3Rpb24gd2l0aCB0aGUgc2VydmljZSwgaW5kaWNhdGluZyBhIHZlcnkgbmVnYXRpdmUgc2VudGltZW50LicsICdyZWZ1c2FsJzogTm9uZSwgJ3JvbGUnOiAnYXNzaXN0YW50JywgJ2F1ZGlvJzogTm9uZSwgJ2Z1bmN0aW9uX2NhbGwnOiBOb25lLCAndG9vbF9jYWxscyc6IE5vbmV9fV0sICdjcmVhdGVkJzogMTczNDE5MDA1MCwgJ21vZGVsJzogJ2dwdC00by0yMDI0LTA4LTA2JywgJ29iamVjdCc6ICdjaGF0LmNvbXBsZXRpb24nLCAnc2VydmljZV90aWVyJzogTm9uZSwgJ3N5c3RlbV9maW5nZXJwcmludCc6ICdmcF9hNzlkOGRhYzFmJywgJ3VzYWdlJzogeydjb21wbGV0aW9uX3Rva2Vucyc6IDI0LCAncHJvbXB0X3Rva2Vucyc6IDE0MSwgJ3RvdGFsX3Rva2Vucyc6IDE2NSwgJ2NvbXBsZXRpb25fdG9rZW5zX2RldGFpbHMnOiB7J2FjY2VwdGVkX3ByZWRpY3Rpb25fdG9rZW5zJzogMCwgJ2F1ZGlvX3Rva2Vucyc6IDAsICdyZWFzb25pbmdfdG9rZW5zJzogMCwgJ3JlamVjdGVkX3ByZWRpY3Rpb25fdG9rZW5zJzogMH0sICdwcm9tcHRfdG9rZW5zX2RldGFpbHMnOiB7J2F1ZGlvX3Rva2Vucyc6IDAsICdjYWNoZWRfdG9rZW5zJzogMH19fSIsMTY4Ny43NjM3MTMwODAxNjg2LDE1ODEuMDI3NjY3OTg0MTg5NywieydpZCc6ICdjaGF0Y21wbC1BZU9MQ0Q3WERIM29TbXhBRnZrdEN6WmFDUGk4bCcsICdjaG9pY2VzJzogW3snZmluaXNoX3JlYXNvbic6ICdzdG9wJywgJ2luZGV4JzogMCwgJ2xvZ3Byb2JzJzogTm9uZSwgJ21lc3NhZ2UnOiB7J2NvbnRlbnQnOiAnWzAsIDJdXG5cblRoZSBpc3N1ZXMgbWVudGlvbmVkIGFyZSByZWxhdGVkIHRvIHNhZmV0eSAoMCkgYmVjYXVzZSB0aGUgY2FyIHNlYXQgd2FzIG5vdCBwcm9wZXJseSBpbnN0YWxsZWQsIGFuZCBkcml2ZXIgcGVyZm9ybWFuY2UgKDIpIGJlY2F1c2UgdGhlIGRyaXZlciBtaWdodCBuZWVkIGZ1cnRoZXIgdHJhaW5pbmcgdG8gZW5zdXJlIHByb3BlciBpbnN0YWxsYXRpb24uJywgJ3JlZnVzYWwnOiBOb25lLCAncm9sZSc6ICdhc3Npc3RhbnQnLCAnYXVkaW8nOiBOb25lLCAnZnVuY3Rpb25fY2FsbCc6IE5vbmUsICd0b29sX2NhbGxzJzogTm9uZX19XSwgJ2NyZWF0ZWQnOiAxNzM0MTkwMDUwLCAnbW9kZWwnOiAnZ3B0LTRvLTIwMjQtMDgtMDYnLCAnb2JqZWN0JzogJ2NoYXQuY29tcGxldGlvbicsICdzZXJ2aWNlX3RpZXInOiBOb25lLCAnc3lzdGVtX2ZpbmdlcnByaW50JzogJ2ZwX2E3OWQ4ZGFjMWYnLCAndXNhZ2UnOiB7J2NvbXBsZXRpb25fdG9rZW5zJzogNDMsICdwcm9tcHRfdG9rZW5zJzogMTY0LCAndG90YWxfdG9rZW5zJzogMjA3LCAnY29tcGxldGlvbl90b2tlbnNfZGV0YWlscyc6IHsnYWNjZXB0ZWRfcHJlZGljdGlvbl90b2tlbnMnOiAwLCAnYXVkaW9fdG9rZW5zJzogMCwgJ3JlYXNvbmluZ190b2tlbnMnOiAwLCAncmVqZWN0ZWRfcHJlZGljdGlvbl90b2tlbnMnOiAwfSwgJ3Byb21wdF90b2tlbnNfZGV0YWlscyc6IHsnYXVkaW9fdG9rZW5zJzogMCwgJ2NhY2hlZF90b2tlbnMnOiAwfX19IiwwLjAwMDc5NzUsMTY0Ni4wOTA1MzQ5Nzk0MjM5LDAuMDAwNjMyNSwwLjAwMDg0LCJ7J2lkJzogJ2NoYXRjbXBsLUFlT0xDcHhZaDM5R1p0eVpkZWdHOUZiWGNzTGt1JywgJ2Nob2ljZXMnOiBbeydmaW5pc2hfcmVhc29uJzogJ3N0b3AnLCAnaW5kZXgnOiAwLCAnbG9ncHJvYnMnOiBOb25lLCAnbWVzc2FnZSc6IHsnY29udGVudCc6ICIiVGhlIHByaW1hcnkgaXNzdWUgaW4gdGhpcyB0aWNrZXQgaXMgdGhlIGltcHJvcGVyIGluc3RhbGxhdGlvbiBvZiB0aGUgY2FyIHNlYXQgcHJvdmlkZWQgYnkgdGhlIGRyaXZlciwgd2hpY2ggbWFkZSB0aGUgY3VzdG9tZXIgZmVlbCB0aGF0IHRoZWlyIGNoaWxkJ3Mgc2FmZXR5IHdhcyBhdCByaXNrLiBUaGUgY3VzdG9tZXIgaXMgcmVxdWVzdGluZyB0aGF0IGRyaXZlcnMgcmVjZWl2ZSBhZGRpdGlvbmFsIHRyYWluaW5nIHRvIGVuc3VyZSBwcm9wZXIgY2FyIHNlYXQgaW5zdGFsbGF0aW9uIGluIHRoZSBmdXR1cmUuIiIsICdyZWZ1c2FsJzogTm9uZSwgJ3JvbGUnOiAnYXNzaXN0YW50JywgJ2F1ZGlvJzogTm9uZSwgJ2Z1bmN0aW9uX2NhbGwnOiBOb25lLCAndG9vbF9jYWxscyc6IE5vbmV9fV0sICdjcmVhdGVkJzogMTczNDE5MDA1MCwgJ21vZGVsJzogJ2dwdC00by0yMDI0LTA4LTA2JywgJ29iamVjdCc6ICdjaGF0LmNvbXBsZXRpb24nLCAnc2VydmljZV90aWVyJzogTm9uZSwgJ3N5c3RlbV9maW5nZXJwcmludCc6ICdmcF9hNzlkOGRhYzFmJywgJ3VzYWdlJzogeydjb21wbGV0aW9uX3Rva2Vucyc6IDUxLCAncHJvbXB0X3Rva2Vucyc6IDg0LCAndG90YWxfdG9rZW5zJzogMTM1LCAnY29tcGxldGlvbl90b2tlbnNfZGV0YWlscyc6IHsnYWNjZXB0ZWRfcHJlZGljdGlvbl90b2tlbnMnOiAwLCAnYXVkaW9fdG9rZW5zJzogMCwgJ3JlYXNvbmluZ190b2tlbnMnOiAwLCAncmVqZWN0ZWRfcHJlZGljdGlvbl90b2tlbnMnOiAwfSwgJ3Byb21wdF90b2tlbnNfZGV0YWlscyc6IHsnYXVkaW9fdG9rZW5zJzogMCwgJ2NhY2hlZF90b2tlbnMnOiAwfX19IiwwLjAwMDcyLDEzODguODg4ODg4ODg4ODg5LCJ7J2lkJzogJ2NoYXRjbXBsLUFlT0xDNDNWenprYXptTkZvRkF3aXlsM3RVQ0pYJywgJ2Nob2ljZXMnOiBbeydmaW5pc2hfcmVhc29uJzogJ3N0b3AnLCAnaW5kZXgnOiAwLCAnbG9ncHJvYnMnOiBOb25lLCAnbWVzc2FnZSc6IHsnY29udGVudCc6ICc1ICBcblRoZSBzYWZldHkgb2YgYSBjaGlsZCBpcyBvZiB1dG1vc3QgaW1wb3J0YW5jZSwgYW5kIGltcHJvcGVyIGluc3RhbGxhdGlvbiBvZiBhIGNhciBzZWF0IHBvc2VzIGEgc2lnbmlmaWNhbnQgcmlzay4gVGhpcyBpc3N1ZSByZXF1aXJlcyBpbW1lZGlhdGUgYXR0ZW50aW9uIHRvIGVuc3VyZSBkcml2ZXIgdHJhaW5pbmcgYW5kIHByZXZlbnQgcG90ZW50aWFsIGhhcm0uJywgJ3JlZnVzYWwnOiBOb25lLCAncm9sZSc6ICdhc3Npc3RhbnQnLCAnYXVkaW8nOiBOb25lLCAnZnVuY3Rpb25fY2FsbCc6IE5vbmUsICd0b29sX2NhbGxzJzogTm9uZX19XSwgJ2NyZWF0ZWQnOiAxNzM0MTkwMDUwLCAnbW9kZWwnOiAnZ3B0LTRvLTIwMjQtMDgtMDYnLCAnb2JqZWN0JzogJ2NoYXQuY29tcGxldGlvbicsICdzZXJ2aWNlX3RpZXInOiBOb25lLCAnc3lzdGVtX2ZpbmdlcnByaW50JzogJ2ZwX2E3OWQ4ZGFjMWYnLCAndXNhZ2UnOiB7J2NvbXBsZXRpb25fdG9rZW5zJzogMzgsICdwcm9tcHRfdG9rZW5zJzogMTY3LCAndG90YWxfdG9rZW5zJzogMjA1LCAnY29tcGxldGlvbl90b2tlbnNfZGV0YWlscyc6IHsnYWNjZXB0ZWRfcHJlZGljdGlvbl90b2tlbnMnOiAwLCAnYXVkaW9fdG9rZW5zJzogMCwgJ3JlYXNvbmluZ190b2tlbnMnOiAwLCAncmVqZWN0ZWRfcHJlZGljdGlvbl90b2tlbnMnOiAwfSwgJ3Byb21wdF90b2tlbnNfZGV0YWlscyc6IHsnYXVkaW9fdG9rZW5zJzogMCwgJ2NhY2hlZF90b2tlbnMnOiAwfX19IiwxMTkwLjQ3NjE5MDQ3NjE5MDQsMTI1My45MTg0OTUyOTc4MDU1LDAuMDAwNjA3NSwieydpZCc6ICdjaGF0Y21wbC1BZU9MQ2NnRTlOVmRmSTEzT1ZyMEN3UWx1YlJnVicsICdjaG9pY2VzJzogW3snZmluaXNoX3JlYXNvbic6ICdzdG9wJywgJ2luZGV4JzogMCwgJ2xvZ3Byb2JzJzogTm9uZSwgJ21lc3NhZ2UnOiB7J2NvbnRlbnQnOiAnTm9cblxuVGhlIGN1c3RvbWVyIGlzIGV4cHJlc3NpbmcgYSBjb25jZXJuIGFib3V0IHRoZSBpbnN0YWxsYXRpb24gb2YgdGhlIGNhciBzZWF0IGFuZCByZXF1ZXN0aW5nIGRyaXZlciB0cmFpbmluZywgYnV0IHRoZXkgYXJlIG5vdCBleHBsaWNpdGx5IGFza2luZyBmb3IgYSByZWZ1bmQgaW4gdGhpcyB0aWNrZXQuJywgJ3JlZnVzYWwnOiBOb25lLCAncm9sZSc6ICdhc3Npc3RhbnQnLCAnYXVkaW8nOiBOb25lLCAnZnVuY3Rpb25fY2FsbCc6IE5vbmUsICd0b29sX2NhbGxzJzogTm9uZX19XSwgJ2NyZWF0ZWQnOiAxNzM0MTkwMDUwLCAnbW9kZWwnOiAnZ3B0LTRvLTIwMjQtMDgtMDYnLCAnb2JqZWN0JzogJ2NoYXQuY29tcGxldGlvbicsICdzZXJ2aWNlX3RpZXInOiBOb25lLCAnc3lzdGVtX2ZpbmdlcnByaW50JzogJ2ZwXzkwMzU0NjI4ZjInLCAndXNhZ2UnOiB7J2NvbXBsZXRpb25fdG9rZW5zJzogMzMsICdwcm9tcHRfdG9rZW5zJzogMTIxLCAndG90YWxfdG9rZW5zJzogMTU0LCAnY29tcGxldGlvbl90b2tlbnNfZGV0YWlscyc6IHsnYWNjZXB0ZWRfcHJlZGljdGlvbl90b2tlbnMnOiAwLCAnYXVkaW9fdG9rZW5zJzogMCwgJ3JlYXNvbmluZ190b2tlbnMnOiAwLCAncmVqZWN0ZWRfcHJlZGljdGlvbl90b2tlbnMnOiAwfSwgJ3Byb21wdF90b2tlbnNfZGV0YWlscyc6IHsnYXVkaW9fdG9rZW5zJzogMCwgJ2NhY2hlZF90b2tlbnMnOiAwfX19IiwwLERvZXMgdGhlIGN1c3RvbWVyIGFzayBmb3IgYSByZWZ1bmQgaW4gdGhpcyB0aWNrZXQ/IFRpY2tldDoge3sgdGlja2V0IH19LCJJZiB0aGUgcHJpbWFyeSBpc3N1ZSBpbiB0aGlzIHRpY2tldCBpcyBzYWZldHksIHdhcyB0aGVyZSBhbiBhY2NpZGVudCB3aGVyZSBzb21lb25lIHdhcyBodXJ0PyBUaWNrZXQ6IHt7IHRpY2tldCB9fSIsV2hhdCBpcyB0aGUgcHJpbWFyeSBpc3N1ZSBpbiB0aGlzIHRpY2tldD8gVGlja2V0OiB7eyB0aWNrZXQgfX0sQ2hlY2sgYWxsIG9mIHRoZSBpc3N1ZXMgbWVudGlvbmVkIGluIHRoaXMgdGlja2V0OiB7eyB0aWNrZXQgfX0sIk9uIGEgc2NhbGUgZnJvbSAwIHRvIDUsIHdoYXQgaXMgdGhlIHByaW9yaXR5IGxldmVsIG9mIHRoaXMgdGlja2V0PyBUaWNrZXQ6IHt7IHRpY2tldCB9fSIsV2hhdCBpcyB0aGUgc2VudGltZW50IG9mIHRoaXMgdGlja2V0PyBUaWNrZXQ6IHt7IHRpY2tldCB9fSwiWydzYWZldHknLCAnY2xlYW5saW5lc3MnLCAnZHJpdmVyIHBlcmZvcm1hbmNlJywgJ0dQUy9yb3V0ZScsICdsb3N0IGl0ZW0nLCAnb3RoZXInXSIsIlsnVmVyeSBwb3NpdGl2ZScsICdTb21ld2hhdCBwb3NpdGl2ZScsICdOZXV0cmFsJywgJ1NvbWV3aGF0IG5lZ2F0aXZlJywgJ1ZlcnkgbmVnYXRpdmUnXSIsLCJbJ05vJywgJ1llcyddIiwiWydZZXMnLCAnTm8nLCAnTm90IGFwcGxpY2FibGUnXSIsIlswLCAxLCAyLCAzLCA0LCA1XSIsbGluZWFyX3NjYWxlLG11bHRpcGxlX2Nob2ljZSxtdWx0aXBsZV9jaG9pY2UseWVzX25vLGZyZWVfdGV4dCxjaGVja2JveCwsIlRoZSBjdXN0b21lciBpcyBleHByZXNzaW5nIGEgY29uY2VybiBhYm91dCB0aGUgaW5zdGFsbGF0aW9uIG9mIHRoZSBjYXIgc2VhdCBhbmQgcmVxdWVzdGluZyBkcml2ZXIgdHJhaW5pbmcsIGJ1dCB0aGV5IGFyZSBub3QgZXhwbGljaXRseSBhc2tpbmcgZm9yIGEgcmVmdW5kIGluIHRoaXMgdGlja2V0LiIsIlRoZSBzYWZldHkgb2YgYSBjaGlsZCBpcyBvZiB1dG1vc3QgaW1wb3J0YW5jZSwgYW5kIGltcHJvcGVyIGluc3RhbGxhdGlvbiBvZiBhIGNhciBzZWF0IHBvc2VzIGEgc2lnbmlmaWNhbnQgcmlzay4gVGhpcyBpc3N1ZSByZXF1aXJlcyBpbW1lZGlhdGUgYXR0ZW50aW9uIHRvIGVuc3VyZSBkcml2ZXIgdHJhaW5pbmcgYW5kIHByZXZlbnQgcG90ZW50aWFsIGhhcm0uIiwiVGhlIGlzc3VlcyBtZW50aW9uZWQgYXJlIHJlbGF0ZWQgdG8gc2FmZXR5ICgwKSBiZWNhdXNlIHRoZSBjYXIgc2VhdCB3YXMgbm90IHByb3Blcmx5IGluc3RhbGxlZCwgYW5kIGRyaXZlciBwZXJmb3JtYW5jZSAoMikgYmVjYXVzZSB0aGUgZHJpdmVyIG1pZ2h0IG5lZWQgZnVydGhlciB0cmFpbmluZyB0byBlbnN1cmUgcHJvcGVyIGluc3RhbGxhdGlvbi4iLCJUaGUgdGlja2V0IGV4cHJlc3NlcyBhIHNlcmlvdXMgY29uY2VybiBhYm91dCBzYWZldHkgYW5kIGltcGxpZXMgZGlzc2F0aXNmYWN0aW9uIHdpdGggdGhlIHNlcnZpY2UsIGluZGljYXRpbmcgYSB2ZXJ5IG5lZ2F0aXZlIHNlbnRpbWVudC4iLCJUaGVyZSBpcyBubyBtZW50aW9uIG9mIGFuIGFjdHVhbCBhY2NpZGVudCBvciBpbmp1cnkgb2NjdXJyaW5nLCBvbmx5IGEgY29uY2VybiBhYm91dCBwb3RlbnRpYWwgcmlzayBkdWUgdG8gaW1wcm9wZXIgaW5zdGFsbGF0aW9uLiIsIlZlcnkgbmVnYXRpdmUgIApUaGUgdGlja2V0IGV4cHJlc3NlcyBhIHNlcmlvdXMgY29uY2VybiBhYm91dCBzYWZldHkgYW5kIGltcGxpZXMgZGlzc2F0aXNmYWN0aW9uIHdpdGggdGhlIHNlcnZpY2UsIGluZGljYXRpbmcgYSB2ZXJ5IG5lZ2F0aXZlIHNlbnRpbWVudC4iLCJbMCwgMl0KClRoZSBpc3N1ZXMgbWVudGlvbmVkIGFyZSByZWxhdGVkIHRvIHNhZmV0eSAoMCkgYmVjYXVzZSB0aGUgY2FyIHNlYXQgd2FzIG5vdCBwcm9wZXJseSBpbnN0YWxsZWQsIGFuZCBkcml2ZXIgcGVyZm9ybWFuY2UgKDIpIGJlY2F1c2UgdGhlIGRyaXZlciBtaWdodCBuZWVkIGZ1cnRoZXIgdHJhaW5pbmcgdG8gZW5zdXJlIHByb3BlciBpbnN0YWxsYXRpb24uIiwiTm8KClRoZSBjdXN0b21lciBpcyBleHByZXNzaW5nIGEgY29uY2VybiBhYm91dCB0aGUgaW5zdGFsbGF0aW9uIG9mIHRoZSBjYXIgc2VhdCBhbmQgcmVxdWVzdGluZyBkcml2ZXIgdHJhaW5pbmcsIGJ1dCB0aGV5IGFyZSBub3QgZXhwbGljaXRseSBhc2tpbmcgZm9yIGEgcmVmdW5kIGluIHRoaXMgdGlja2V0LiIsIlRoZSBwcmltYXJ5IGlzc3VlIGluIHRoaXMgdGlja2V0IGlzIHRoZSBpbXByb3BlciBpbnN0YWxsYXRpb24gb2YgdGhlIGNhciBzZWF0IHByb3ZpZGVkIGJ5IHRoZSBkcml2ZXIsIHdoaWNoIG1hZGUgdGhlIGN1c3RvbWVyIGZlZWwgdGhhdCB0aGVpciBjaGlsZCdzIHNhZmV0eSB3YXMgYXQgcmlzay4gVGhlIGN1c3RvbWVyIGlzIHJlcXVlc3RpbmcgdGhhdCBkcml2ZXJzIHJlY2VpdmUgYWRkaXRpb25hbCB0cmFpbmluZyB0byBlbnN1cmUgcHJvcGVyIGNhciBzZWF0IGluc3RhbGxhdGlvbiBpbiB0aGUgZnV0dXJlLiIsIk5vICAKVGhlcmUgaXMgbm8gbWVudGlvbiBvZiBhbiBhY3R1YWwgYWNjaWRlbnQgb3IgaW5qdXJ5IG9jY3VycmluZywgb25seSBhIGNvbmNlcm4gYWJvdXQgcG90ZW50aWFsIHJpc2sgZHVlIHRvIGltcHJvcGVyIGluc3RhbGxhdGlvbi4iLCI1ICAKVGhlIHNhZmV0eSBvZiBhIGNoaWxkIGlzIG9mIHV0bW9zdCBpbXBvcnRhbmNlLCBhbmQgaW1wcm9wZXIgaW5zdGFsbGF0aW9uIG9mIGEgY2FyIHNlYXQgcG9zZXMgYSBzaWduaWZpY2FudCByaXNrLiBUaGlzIGlzc3VlIHJlcXVpcmVzIGltbWVkaWF0ZSBhdHRlbnRpb24gdG8gZW5zdXJlIGRyaXZlciB0cmFpbmluZyBhbmQgcHJldmVudCBwb3RlbnRpYWwgaGFybS4iDQpObyxTb21ld2hhdCBuZWdhdGl2ZSxObywiVGhlIHByaW1hcnkgaXNzdWUgaW4gdGhpcyB0aWNrZXQgaXMgdGhhdCB0aGUgY3VzdG9tZXIgYmVsaWV2ZXMgdGhlIGRyaXZlciB0b29rIGEgbG9uZ2VyIHJvdXRlIHRoYW4gbmVjZXNzYXJ5LCB3aGljaCBsZWQgdG8gYSBoaWdoZXIgZmFyZS4gVGhlIGN1c3RvbWVyIGlzIHJlcXVlc3RpbmcgYW4gYWRqdXN0bWVudCB0byB0aGUgZmFyZSB0byByZWZsZWN0IHdoYXQgdGhleSBiZWxpZXZlIHNob3VsZCBoYXZlIGJlZW4gdGhlIGNvcnJlY3QgYW1vdW50LiIsMiwiWydkcml2ZXIgcGVyZm9ybWFuY2UnLCAnR1BTL3JvdXRlJ10iLCJNeSBkcml2ZXIgdG9vayBhIGxvbmdlciByb3V0ZSB0aGFuIG5lY2Vzc2FyeSwgcmVzdWx0aW5nIGluIGEgaGlnaGVyIGZhcmUuIEkgcmVxdWVzdCBhIGZhcmUgYWRqdXN0bWVudC4iLFlvdSBhcmUgYW4gZXhwZXJ0IGN1c3RvbWVyIHNlcnZpY2UgYWdlbnQuLEFnZW50XzQsMTUsWW91IGFyZSBhbnN3ZXJpbmcgcXVlc3Rpb25zIGFzIGlmIHlvdSB3ZXJlIGEgaHVtYW4uIERvIG5vdCBicmVhayBjaGFyYWN0ZXIuLDAsMSwwLGdwdC00bywwLjUsRmFsc2UsMTAwMCwzLCJXaGF0IGlzIHRoZSBwcmltYXJ5IGlzc3VlIGluIHRoaXMgdGlja2V0PyBUaWNrZXQ6IE15IGRyaXZlciB0b29rIGEgbG9uZ2VyIHJvdXRlIHRoYW4gbmVjZXNzYXJ5LCByZXN1bHRpbmcgaW4gYSBoaWdoZXIgZmFyZS4gSSByZXF1ZXN0IGEgZmFyZSBhZGp1c3RtZW50LiIsIllvdSBhcmUgYW5zd2VyaW5nIHF1ZXN0aW9ucyBhcyBpZiB5b3Ugd2VyZSBhIGh1bWFuLiBEbyBub3QgYnJlYWsgY2hhcmFjdGVyLiBZb3VyIHRyYWl0czogeydwZXJzb25hJzogJ1lvdSBhcmUgYW4gZXhwZXJ0IGN1c3RvbWVyIHNlcnZpY2UgYWdlbnQuJywgJ3llYXJzX2V4cGVyaWVuY2UnOiAxNX0iLCJZb3UgYXJlIGFuc3dlcmluZyBxdWVzdGlvbnMgYXMgaWYgeW91IHdlcmUgYSBodW1hbi4gRG8gbm90IGJyZWFrIGNoYXJhY3Rlci4gWW91ciB0cmFpdHM6IHsncGVyc29uYSc6ICdZb3UgYXJlIGFuIGV4cGVydCBjdXN0b21lciBzZXJ2aWNlIGFnZW50LicsICd5ZWFyc19leHBlcmllbmNlJzogMTV9IiwiQ2hlY2sgYWxsIG9mIHRoZSBpc3N1ZXMgbWVudGlvbmVkIGluIHRoaXMgdGlja2V0OiBNeSBkcml2ZXIgdG9vayBhIGxvbmdlciByb3V0ZSB0aGFuIG5lY2Vzc2FyeSwgcmVzdWx0aW5nIGluIGEgaGlnaGVyIGZhcmUuIEkgcmVxdWVzdCBhIGZhcmUgYWRqdXN0bWVudC4KCiAgICAKMDogc2FmZXR5CiAgICAKMTogY2xlYW5saW5lc3MKICAgIAoyOiBkcml2ZXIgcGVyZm9ybWFuY2UKICAgIAozOiBHUFMvcm91dGUKICAgIAo0OiBsb3N0IGl0ZW0KICAgIAo1OiBvdGhlcgogICAgCgoKCgoKClBsZWFzZSByZXNwb25kIG9ubHkgd2l0aCBhIGNvbW1hLXNlcGFyYXRlZCBsaXN0IG9mIHRoZSBjb2RlIG9mIHRoZSBvcHRpb25zIHRoYXQgYXBwbHksIHdpdGggc3F1YXJlIGJyYWNrZXRzLiBFLmcuLCBbMCwgMSwgM10KCgpBZnRlciB0aGUgYW5zd2VyLCB5b3UgY2FuIHB1dCBhIGNvbW1lbnQgZXhwbGFpbmluZyB5b3VyIGNob2ljZSBvbiB0aGUgbmV4dCBsaW5lLiIsIk9uIGEgc2NhbGUgZnJvbSAwIHRvIDUsIHdoYXQgaXMgdGhlIHByaW9yaXR5IGxldmVsIG9mIHRoaXMgdGlja2V0PyBUaWNrZXQ6IE15IGRyaXZlciB0b29rIGEgbG9uZ2VyIHJvdXRlIHRoYW4gbmVjZXNzYXJ5LCByZXN1bHRpbmcgaW4gYSBoaWdoZXIgZmFyZS4gSSByZXF1ZXN0IGEgZmFyZSBhZGp1c3RtZW50LgoKMCA6IExvd2VzdAoKMSA6IAoKMiA6IAoKMyA6IAoKNCA6IAoKNSA6IEhpZ2hlc3QKCk9ubHkgMSBvcHRpb24gbWF5IGJlIHNlbGVjdGVkLgoKUmVzcG9uZCBvbmx5IHdpdGggdGhlIGNvZGUgY29ycmVzcG9uZGluZyB0byBvbmUgb2YgdGhlIG9wdGlvbnMuIEUuZy4sICIiMSIiIG9yICIiNSIiIGJ5IGl0c2VsZi4KCkFmdGVyIHRoZSBhbnN3ZXIsIHlvdSBjYW4gcHV0IGEgY29tbWVudCBleHBsYWluaW5nIHdoeSB5b3UgY2hvc2UgdGhhdCBvcHRpb24gb24gdGhlIG5leHQgbGluZS4iLCJZb3UgYXJlIGFuc3dlcmluZyBxdWVzdGlvbnMgYXMgaWYgeW91IHdlcmUgYSBodW1hbi4gRG8gbm90IGJyZWFrIGNoYXJhY3Rlci4gWW91ciB0cmFpdHM6IHsncGVyc29uYSc6ICdZb3UgYXJlIGFuIGV4cGVydCBjdXN0b21lciBzZXJ2aWNlIGFnZW50LicsICd5ZWFyc19leHBlcmllbmNlJzogMTV9IiwiWW91IGFyZSBhbnN3ZXJpbmcgcXVlc3Rpb25zIGFzIGlmIHlvdSB3ZXJlIGEgaHVtYW4uIERvIG5vdCBicmVhayBjaGFyYWN0ZXIuIFlvdXIgdHJhaXRzOiB7J3BlcnNvbmEnOiAnWW91IGFyZSBhbiBleHBlcnQgY3VzdG9tZXIgc2VydmljZSBhZ2VudC4nLCAneWVhcnNfZXhwZXJpZW5jZSc6IDE1fSIsIllvdSBhcmUgYW5zd2VyaW5nIHF1ZXN0aW9ucyBhcyBpZiB5b3Ugd2VyZSBhIGh1bWFuLiBEbyBub3QgYnJlYWsgY2hhcmFjdGVyLiBZb3VyIHRyYWl0czogeydwZXJzb25hJzogJ1lvdSBhcmUgYW4gZXhwZXJ0IGN1c3RvbWVyIHNlcnZpY2UgYWdlbnQuJywgJ3llYXJzX2V4cGVyaWVuY2UnOiAxNX0iLCIKV2hhdCBpcyB0aGUgc2VudGltZW50IG9mIHRoaXMgdGlja2V0PyBUaWNrZXQ6IE15IGRyaXZlciB0b29rIGEgbG9uZ2VyIHJvdXRlIHRoYW4gbmVjZXNzYXJ5LCByZXN1bHRpbmcgaW4gYSBoaWdoZXIgZmFyZS4gSSByZXF1ZXN0IGEgZmFyZSBhZGp1c3RtZW50LgoKICAgIApWZXJ5IHBvc2l0aXZlCiAgICAKU29tZXdoYXQgcG9zaXRpdmUKICAgIApOZXV0cmFsCiAgICAKU29tZXdoYXQgbmVnYXRpdmUKICAgIApWZXJ5IG5lZ2F0aXZlCiAgICAKCk9ubHkgMSBvcHRpb24gbWF5IGJlIHNlbGVjdGVkLgoKUmVzcG9uZCBvbmx5IHdpdGggYSBzdHJpbmcgY29ycmVzcG9uZGluZyB0byBvbmUgb2YgdGhlIG9wdGlvbnMuCgoKQWZ0ZXIgdGhlIGFuc3dlciwgeW91IGNhbiBwdXQgYSBjb21tZW50IGV4cGxhaW5pbmcgd2h5IHlvdSBjaG9zZSB0aGF0IG9wdGlvbiBvbiB0aGUgbmV4dCBsaW5lLiIsIgpEb2VzIHRoZSBjdXN0b21lciBhc2sgZm9yIGEgcmVmdW5kIGluIHRoaXMgdGlja2V0PyBUaWNrZXQ6IE15IGRyaXZlciB0b29rIGEgbG9uZ2VyIHJvdXRlIHRoYW4gbmVjZXNzYXJ5LCByZXN1bHRpbmcgaW4gYSBoaWdoZXIgZmFyZS4gSSByZXF1ZXN0IGEgZmFyZSBhZGp1c3RtZW50LgoKICAgIApObwogICAgClllcwogICAgCgpPbmx5IDEgb3B0aW9uIG1heSBiZSBzZWxlY3RlZC4KUGxlYXNlIHJlc3BvbmQgd2l0aCBqdXN0IHlvdXIgYW5zd2VyLiAKCgpBZnRlciB0aGUgYW5zd2VyLCB5b3UgY2FuIHB1dCBhIGNvbW1lbnQgZXhwbGFpbmluZyB5b3VyIHJlc3BvbnNlLiIsIllvdSBhcmUgYW5zd2VyaW5nIHF1ZXN0aW9ucyBhcyBpZiB5b3Ugd2VyZSBhIGh1bWFuLiBEbyBub3QgYnJlYWsgY2hhcmFjdGVyLiBZb3VyIHRyYWl0czogeydwZXJzb25hJzogJ1lvdSBhcmUgYW4gZXhwZXJ0IGN1c3RvbWVyIHNlcnZpY2UgYWdlbnQuJywgJ3llYXJzX2V4cGVyaWVuY2UnOiAxNX0iLCIKSWYgdGhlIHByaW1hcnkgaXNzdWUgaW4gdGhpcyB0aWNrZXQgaXMgc2FmZXR5LCB3YXMgdGhlcmUgYW4gYWNjaWRlbnQgd2hlcmUgc29tZW9uZSB3YXMgaHVydD8gVGlja2V0OiBNeSBkcml2ZXIgdG9vayBhIGxvbmdlciByb3V0ZSB0aGFuIG5lY2Vzc2FyeSwgcmVzdWx0aW5nIGluIGEgaGlnaGVyIGZhcmUuIEkgcmVxdWVzdCBhIGZhcmUgYWRqdXN0bWVudC4KCiAgICAKWWVzCiAgICAKTm8KICAgIApOb3QgYXBwbGljYWJsZQogICAgCgpPbmx5IDEgb3B0aW9uIG1heSBiZSBzZWxlY3RlZC4KClJlc3BvbmQgb25seSB3aXRoIGEgc3RyaW5nIGNvcnJlc3BvbmRpbmcgdG8gb25lIG9mIHRoZSBvcHRpb25zLgoKCkFmdGVyIHRoZSBhbnN3ZXIsIHlvdSBjYW4gcHV0IGEgY29tbWVudCBleHBsYWluaW5nIHdoeSB5b3UgY2hvc2UgdGhhdCBvcHRpb24gb24gdGhlIG5leHQgbGluZS4iLDAuMDAwNjk3NSwieydpZCc6ICdjaGF0Y21wbC1BZU9MQ0tjRzFxSmlJcFpBdUJSOXMyNFpzU0xUSycsICdjaG9pY2VzJzogW3snZmluaXNoX3JlYXNvbic6ICdzdG9wJywgJ2luZGV4JzogMCwgJ2xvZ3Byb2JzJzogTm9uZSwgJ21lc3NhZ2UnOiB7J2NvbnRlbnQnOiAnTm8gIFxuVGhlIHRpY2tldCBkb2VzIG5vdCBtZW50aW9uIGFueSBhY2NpZGVudCBvciBpbmp1cnksIHNvIHRoZSBpc3N1ZSBpcyBub3QgcmVsYXRlZCB0byBzYWZldHkuJywgJ3JlZnVzYWwnOiBOb25lLCAncm9sZSc6ICdhc3Npc3RhbnQnLCAnYXVkaW8nOiBOb25lLCAnZnVuY3Rpb25fY2FsbCc6IE5vbmUsICd0b29sX2NhbGxzJzogTm9uZX19XSwgJ2NyZWF0ZWQnOiAxNzM0MTkwMDUwLCAnbW9kZWwnOiAnZ3B0LTRvLTIwMjQtMDgtMDYnLCAnb2JqZWN0JzogJ2NoYXQuY29tcGxldGlvbicsICdzZXJ2aWNlX3RpZXInOiBOb25lLCAnc3lzdGVtX2ZpbmdlcnByaW50JzogJ2ZwXzlmYWJhOWYwMzgnLCAndXNhZ2UnOiB7J2NvbXBsZXRpb25fdG9rZW5zJzogMjEsICdwcm9tcHRfdG9rZW5zJzogMTQxLCAndG90YWxfdG9rZW5zJzogMTYyLCAnY29tcGxldGlvbl90b2tlbnNfZGV0YWlscyc6IHsnYWNjZXB0ZWRfcHJlZGljdGlvbl90b2tlbnMnOiAwLCAnYXVkaW9fdG9rZW5zJzogMCwgJ3JlYXNvbmluZ190b2tlbnMnOiAwLCAncmVqZWN0ZWRfcHJlZGljdGlvbl90b2tlbnMnOiAwfSwgJ3Byb21wdF90b2tlbnNfZGV0YWlscyc6IHsnYXVkaW9fdG9rZW5zJzogMCwgJ2NhY2hlZF90b2tlbnMnOiAwfX19IiwieydpZCc6ICdjaGF0Y21wbC1BZU9MQ3NpeWNscXpudmlxZ2FDWWtCejMzVDRUUycsICdjaG9pY2VzJzogW3snZmluaXNoX3JlYXNvbic6ICdzdG9wJywgJ2luZGV4JzogMCwgJ2xvZ3Byb2JzJzogTm9uZSwgJ21lc3NhZ2UnOiB7J2NvbnRlbnQnOiAnU29tZXdoYXQgbmVnYXRpdmUgIFxuVGhlIGN1c3RvbWVyIGlzIGV4cHJlc3NpbmcgZGlzc2F0aXNmYWN0aW9uIHdpdGggdGhlIHNlcnZpY2UgZHVlIHRvIHRoZSBsb25nZXIgcm91dGUgdGFrZW4gYnkgdGhlIGRyaXZlciwgcmVzdWx0aW5nIGluIGEgaGlnaGVyIGZhcmUsIGFuZCBpcyByZXF1ZXN0aW5nIGEgZmFyZSBhZGp1c3RtZW50LicsICdyZWZ1c2FsJzogTm9uZSwgJ3JvbGUnOiAnYXNzaXN0YW50JywgJ2F1ZGlvJzogTm9uZSwgJ2Z1bmN0aW9uX2NhbGwnOiBOb25lLCAndG9vbF9jYWxscyc6IE5vbmV9fV0sICdjcmVhdGVkJzogMTczNDE5MDA1MCwgJ21vZGVsJzogJ2dwdC00by0yMDI0LTA4LTA2JywgJ29iamVjdCc6ICdjaGF0LmNvbXBsZXRpb24nLCAnc2VydmljZV90aWVyJzogTm9uZSwgJ3N5c3RlbV9maW5nZXJwcmludCc6ICdmcF85ZmFiYTlmMDM4JywgJ3VzYWdlJzogeydjb21wbGV0aW9uX3Rva2Vucyc6IDM1LCAncHJvbXB0X3Rva2Vucyc6IDEzOSwgJ3RvdGFsX3Rva2Vucyc6IDE3NCwgJ2NvbXBsZXRpb25fdG9rZW5zX2RldGFpbHMnOiB7J2FjY2VwdGVkX3ByZWRpY3Rpb25fdG9rZW5zJzogMCwgJ2F1ZGlvX3Rva2Vucyc6IDAsICdyZWFzb25pbmdfdG9rZW5zJzogMCwgJ3JlamVjdGVkX3ByZWRpY3Rpb25fdG9rZW5zJzogMH0sICdwcm9tcHRfdG9rZW5zX2RldGFpbHMnOiB7J2F1ZGlvX3Rva2Vucyc6IDAsICdjYWNoZWRfdG9rZW5zJzogMH19fSIsMTQzMy42OTE3NTYyNzI0MDE2LDEzMjAuMTMyMDEzMjAxMzIsInsnaWQnOiAnY2hhdGNtcGwtQWVPTEN2MmNYZmR3YnM5Z2xrSXVDQ3RTREt3N1AnLCAnY2hvaWNlcyc6IFt7J2ZpbmlzaF9yZWFzb24nOiAnc3RvcCcsICdpbmRleCc6IDAsICdsb2dwcm9icyc6IE5vbmUsICdtZXNzYWdlJzogeydjb250ZW50JzogJ1syLCAzXVxuXG5UaGUgaXNzdWVzIG1lbnRpb25lZCBpbiB0aGUgdGlja2V0IHJlbGF0ZSB0byBkcml2ZXIgcGVyZm9ybWFuY2UsIGFzIHRha2luZyBhIGxvbmdlciByb3V0ZSB0aGFuIG5lY2Vzc2FyeSBpbmRpY2F0ZXMgYSBwb3RlbnRpYWwgaXNzdWUgd2l0aCBob3cgdGhlIGRyaXZlciBjb25kdWN0ZWQgdGhlIHRyaXAuIEFkZGl0aW9uYWxseSwgaXQgaW52b2x2ZXMgR1BTL3JvdXRlIGlzc3VlcywgYXMgdGhlIGNvbXBsYWludCBpcyBzcGVjaWZpY2FsbHkgYWJvdXQgdGhlIHJvdXRlIHRha2VuLicsICdyZWZ1c2FsJzogTm9uZSwgJ3JvbGUnOiAnYXNzaXN0YW50JywgJ2F1ZGlvJzogTm9uZSwgJ2Z1bmN0aW9uX2NhbGwnOiBOb25lLCAndG9vbF9jYWxscyc6IE5vbmV9fV0sICdjcmVhdGVkJzogMTczNDE5MDA1MCwgJ21vZGVsJzogJ2dwdC00by0yMDI0LTA4LTA2JywgJ29iamVjdCc6ICdjaGF0LmNvbXBsZXRpb24nLCAnc2VydmljZV90aWVyJzogTm9uZSwgJ3N5c3RlbV9maW5nZXJwcmludCc6ICdmcF9hNzlkOGRhYzFmJywgJ3VzYWdlJzogeydjb21wbGV0aW9uX3Rva2Vucyc6IDU1LCAncHJvbXB0X3Rva2Vucyc6IDE2MiwgJ3RvdGFsX3Rva2Vucyc6IDIxNywgJ2NvbXBsZXRpb25fdG9rZW5zX2RldGFpbHMnOiB7J2FjY2VwdGVkX3ByZWRpY3Rpb25fdG9rZW5zJzogMCwgJ2F1ZGlvX3Rva2Vucyc6IDAsICdyZWFzb25pbmdfdG9rZW5zJzogMCwgJ3JlamVjdGVkX3ByZWRpY3Rpb25fdG9rZW5zJzogMH0sICdwcm9tcHRfdG9rZW5zX2RldGFpbHMnOiB7J2F1ZGlvX3Rva2Vucyc6IDAsICdjYWNoZWRfdG9rZW5zJzogMH19fSIsMC4wMDA3ODI1LDE3NzcuNzc3Nzc3Nzc3Nzc3NiwwLjAwMDc1NzUsMC4wMDA5NTUsInsnaWQnOiAnY2hhdGNtcGwtQWVPTENrYU9OVkZhNzdERDdLVFY3dTM1eWhOY0UnLCAnY2hvaWNlcyc6IFt7J2ZpbmlzaF9yZWFzb24nOiAnc3RvcCcsICdpbmRleCc6IDAsICdsb2dwcm9icyc6IE5vbmUsICdtZXNzYWdlJzogeydjb250ZW50JzogJ1RoZSBwcmltYXJ5IGlzc3VlIGluIHRoaXMgdGlja2V0IGlzIHRoYXQgdGhlIGN1c3RvbWVyIGJlbGlldmVzIHRoZSBkcml2ZXIgdG9vayBhIGxvbmdlciByb3V0ZSB0aGFuIG5lY2Vzc2FyeSwgd2hpY2ggbGVkIHRvIGEgaGlnaGVyIGZhcmUuIFRoZSBjdXN0b21lciBpcyByZXF1ZXN0aW5nIGFuIGFkanVzdG1lbnQgdG8gdGhlIGZhcmUgdG8gcmVmbGVjdCB3aGF0IHRoZXkgYmVsaWV2ZSBzaG91bGQgaGF2ZSBiZWVuIHRoZSBjb3JyZWN0IGFtb3VudC4nLCAncmVmdXNhbCc6IE5vbmUsICdyb2xlJzogJ2Fzc2lzdGFudCcsICdhdWRpbyc6IE5vbmUsICdmdW5jdGlvbl9jYWxsJzogTm9uZSwgJ3Rvb2xfY2FsbHMnOiBOb25lfX1dLCAnY3JlYXRlZCc6IDE3MzQxOTAwNTAsICdtb2RlbCc6ICdncHQtNG8tMjAyNC0wOC0wNicsICdvYmplY3QnOiAnY2hhdC5jb21wbGV0aW9uJywgJ3NlcnZpY2VfdGllcic6IE5vbmUsICdzeXN0ZW1fZmluZ2VycHJpbnQnOiAnZnBfYTM0YjI3MjdkNicsICd1c2FnZSc6IHsnY29tcGxldGlvbl90b2tlbnMnOiA0OCwgJ3Byb21wdF90b2tlbnMnOiA4MiwgJ3RvdGFsX3Rva2Vucyc6IDEzMCwgJ2NvbXBsZXRpb25fdG9rZW5zX2RldGFpbHMnOiB7J2FjY2VwdGVkX3ByZWRpY3Rpb25fdG9rZW5zJzogMCwgJ2F1ZGlvX3Rva2Vucyc6IDAsICdyZWFzb25pbmdfdG9rZW5zJzogMCwgJ3JlamVjdGVkX3ByZWRpY3Rpb25fdG9rZW5zJzogMH0sICdwcm9tcHRfdG9rZW5zX2RldGFpbHMnOiB7J2F1ZGlvX3Rva2Vucyc6IDAsICdjYWNoZWRfdG9rZW5zJzogMH19fSIsMC4wMDA2ODUwMDAwMDAwMDAwMDAxLDE0NTkuODU0MDE0NTk4NTQsInsnaWQnOiAnY2hhdGNtcGwtQWVPTENBbXZKaFdIbUxGcWlldWdCSXlsRXB6b0wnLCAnY2hvaWNlcyc6IFt7J2ZpbmlzaF9yZWFzb24nOiAnc3RvcCcsICdpbmRleCc6IDAsICdsb2dwcm9icyc6IE5vbmUsICdtZXNzYWdlJzogeydjb250ZW50JzogJzIgIFxuVGhpcyBpc3N1ZSBpcyBpbXBvcnRhbnQgYmVjYXVzZSBpdCBpbnZvbHZlcyBhIGZpbmFuY2lhbCBkaXNjcmVwYW5jeSBmb3IgdGhlIGN1c3RvbWVyLCBidXQgaXQgZG9lcyBub3QgcG9zZSBhbiBpbW1lZGlhdGUgc2FmZXR5IG9yIHNlcnZpY2UgY29udGludWl0eSBjb25jZXJuLCBzbyBpdCBpcyBub3QgdGhlIGhpZ2hlc3QgcHJpb3JpdHkuJywgJ3JlZnVzYWwnOiBOb25lLCAncm9sZSc6ICdhc3Npc3RhbnQnLCAnYXVkaW8nOiBOb25lLCAnZnVuY3Rpb25fY2FsbCc6IE5vbmUsICd0b29sX2NhbGxzJzogTm9uZX19XSwgJ2NyZWF0ZWQnOiAxNzM0MTkwMDUwLCAnbW9kZWwnOiAnZ3B0LTRvLTIwMjQtMDgtMDYnLCAnb2JqZWN0JzogJ2NoYXQuY29tcGxldGlvbicsICdzZXJ2aWNlX3RpZXInOiBOb25lLCAnc3lzdGVtX2ZpbmdlcnByaW50JzogJ2ZwXzlmYWJhOWYwMzgnLCAndXNhZ2UnOiB7J2NvbXBsZXRpb25fdG9rZW5zJzogMzcsICdwcm9tcHRfdG9rZW5zJzogMTY1LCAndG90YWxfdG9rZW5zJzogMjAyLCAnY29tcGxldGlvbl90b2tlbnNfZGV0YWlscyc6IHsnYWNjZXB0ZWRfcHJlZGljdGlvbl90b2tlbnMnOiAwLCAnYXVkaW9fdG9rZW5zJzogMCwgJ3JlYXNvbmluZ190b2tlbnMnOiAwLCAncmVqZWN0ZWRfcHJlZGljdGlvbl90b2tlbnMnOiAwfSwgJ3Byb21wdF90b2tlbnNfZGV0YWlscyc6IHsnYXVkaW9fdG9rZW5zJzogMCwgJ2NhY2hlZF90b2tlbnMnOiAwfX19IiwxMDQ3LjEyMDQxODg0ODE2NzQsMTI3Ny45NTUyNzE1NjU0OTUyLDAuMDAwNTYyNTAwMDAwMDAwMDAwMSwieydpZCc6ICdjaGF0Y21wbC1BZU9MQ083OE43ZGxnV1NjZEJnNzJwa3dMN0Q2NycsICdjaG9pY2VzJzogW3snZmluaXNoX3JlYXNvbic6ICdzdG9wJywgJ2luZGV4JzogMCwgJ2xvZ3Byb2JzJzogTm9uZSwgJ21lc3NhZ2UnOiB7J2NvbnRlbnQnOiAnTm9cblxuVGhlIGN1c3RvbWVyIGlzIHJlcXVlc3RpbmcgYSBmYXJlIGFkanVzdG1lbnQsIHdoaWNoIGlzIGRpZmZlcmVudCBmcm9tIGFza2luZyBmb3IgYSByZWZ1bmQuIEEgZmFyZSBhZGp1c3RtZW50IHR5cGljYWxseSBtZWFucyB0aGV5IHdhbnQgdGhlIGZhcmUgY29ycmVjdGVkIHRvIHdoYXQgaXQgc2hvdWxkIGhhdmUgYmVlbiwgcmF0aGVyIHRoYW4gYSBmdWxsIHJlZnVuZCBvZiB0aGUgZmFyZSBwYWlkLicsICdyZWZ1c2FsJzogTm9uZSwgJ3JvbGUnOiAnYXNzaXN0YW50JywgJ2F1ZGlvJzogTm9uZSwgJ2Z1bmN0aW9uX2NhbGwnOiBOb25lLCAndG9vbF9jYWxscyc6IE5vbmV9fV0sICdjcmVhdGVkJzogMTczNDE5MDA1MCwgJ21vZGVsJzogJ2dwdC00by0yMDI0LTA4LTA2JywgJ29iamVjdCc6ICdjaGF0LmNvbXBsZXRpb24nLCAnc2VydmljZV90aWVyJzogTm9uZSwgJ3N5c3RlbV9maW5nZXJwcmludCc6ICdmcF9hNzlkOGRhYzFmJywgJ3VzYWdlJzogeydjb21wbGV0aW9uX3Rva2Vucyc6IDQ2LCAncHJvbXB0X3Rva2Vucyc6IDExOSwgJ3RvdGFsX3Rva2Vucyc6IDE2NSwgJ2NvbXBsZXRpb25fdG9rZW5zX2RldGFpbHMnOiB7J2FjY2VwdGVkX3ByZWRpY3Rpb25fdG9rZW5zJzogMCwgJ2F1ZGlvX3Rva2Vucyc6IDAsICdyZWFzb25pbmdfdG9rZW5zJzogMCwgJ3JlamVjdGVkX3ByZWRpY3Rpb25fdG9rZW5zJzogMH0sICdwcm9tcHRfdG9rZW5zX2RldGFpbHMnOiB7J2F1ZGlvX3Rva2Vucyc6IDAsICdjYWNoZWRfdG9rZW5zJzogMH19fSIsMCxEb2VzIHRoZSBjdXN0b21lciBhc2sgZm9yIGEgcmVmdW5kIGluIHRoaXMgdGlja2V0PyBUaWNrZXQ6IHt7IHRpY2tldCB9fSwiSWYgdGhlIHByaW1hcnkgaXNzdWUgaW4gdGhpcyB0aWNrZXQgaXMgc2FmZXR5LCB3YXMgdGhlcmUgYW4gYWNjaWRlbnQgd2hlcmUgc29tZW9uZSB3YXMgaHVydD8gVGlja2V0OiB7eyB0aWNrZXQgfX0iLFdoYXQgaXMgdGhlIHByaW1hcnkgaXNzdWUgaW4gdGhpcyB0aWNrZXQ/IFRpY2tldDoge3sgdGlja2V0IH19LENoZWNrIGFsbCBvZiB0aGUgaXNzdWVzIG1lbnRpb25lZCBpbiB0aGlzIHRpY2tldDoge3sgdGlja2V0IH19LCJPbiBhIHNjYWxlIGZyb20gMCB0byA1LCB3aGF0IGlzIHRoZSBwcmlvcml0eSBsZXZlbCBvZiB0aGlzIHRpY2tldD8gVGlja2V0OiB7eyB0aWNrZXQgfX0iLFdoYXQgaXMgdGhlIHNlbnRpbWVudCBvZiB0aGlzIHRpY2tldD8gVGlja2V0OiB7eyB0aWNrZXQgfX0sIlsnc2FmZXR5JywgJ2NsZWFubGluZXNzJywgJ2RyaXZlciBwZXJmb3JtYW5jZScsICdHUFMvcm91dGUnLCAnbG9zdCBpdGVtJywgJ290aGVyJ10iLCJbJ1ZlcnkgcG9zaXRpdmUnLCAnU29tZXdoYXQgcG9zaXRpdmUnLCAnTmV1dHJhbCcsICdTb21ld2hhdCBuZWdhdGl2ZScsICdWZXJ5IG5lZ2F0aXZlJ10iLCwiWydObycsICdZZXMnXSIsIlsnWWVzJywgJ05vJywgJ05vdCBhcHBsaWNhYmxlJ10iLCJbMCwgMSwgMiwgMywgNCwgNV0iLGxpbmVhcl9zY2FsZSxtdWx0aXBsZV9jaG9pY2UsbXVsdGlwbGVfY2hvaWNlLHllc19ubyxmcmVlX3RleHQsY2hlY2tib3gsLCJUaGUgY3VzdG9tZXIgaXMgcmVxdWVzdGluZyBhIGZhcmUgYWRqdXN0bWVudCwgd2hpY2ggaXMgZGlmZmVyZW50IGZyb20gYXNraW5nIGZvciBhIHJlZnVuZC4gQSBmYXJlIGFkanVzdG1lbnQgdHlwaWNhbGx5IG1lYW5zIHRoZXkgd2FudCB0aGUgZmFyZSBjb3JyZWN0ZWQgdG8gd2hhdCBpdCBzaG91bGQgaGF2ZSBiZWVuLCByYXRoZXIgdGhhbiBhIGZ1bGwgcmVmdW5kIG9mIHRoZSBmYXJlIHBhaWQuIiwiVGhpcyBpc3N1ZSBpcyBpbXBvcnRhbnQgYmVjYXVzZSBpdCBpbnZvbHZlcyBhIGZpbmFuY2lhbCBkaXNjcmVwYW5jeSBmb3IgdGhlIGN1c3RvbWVyLCBidXQgaXQgZG9lcyBub3QgcG9zZSBhbiBpbW1lZGlhdGUgc2FmZXR5IG9yIHNlcnZpY2UgY29udGludWl0eSBjb25jZXJuLCBzbyBpdCBpcyBub3QgdGhlIGhpZ2hlc3QgcHJpb3JpdHkuIiwiVGhlIGlzc3VlcyBtZW50aW9uZWQgaW4gdGhlIHRpY2tldCByZWxhdGUgdG8gZHJpdmVyIHBlcmZvcm1hbmNlLCBhcyB0YWtpbmcgYSBsb25nZXIgcm91dGUgdGhhbiBuZWNlc3NhcnkgaW5kaWNhdGVzIGEgcG90ZW50aWFsIGlzc3VlIHdpdGggaG93IHRoZSBkcml2ZXIgY29uZHVjdGVkIHRoZSB0cmlwLiBBZGRpdGlvbmFsbHksIGl0IGludm9sdmVzIEdQUy9yb3V0ZSBpc3N1ZXMsIGFzIHRoZSBjb21wbGFpbnQgaXMgc3BlY2lmaWNhbGx5IGFib3V0IHRoZSByb3V0ZSB0YWtlbi4iLCJUaGUgY3VzdG9tZXIgaXMgZXhwcmVzc2luZyBkaXNzYXRpc2ZhY3Rpb24gd2l0aCB0aGUgc2VydmljZSBkdWUgdG8gdGhlIGxvbmdlciByb3V0ZSB0YWtlbiBieSB0aGUgZHJpdmVyLCByZXN1bHRpbmcgaW4gYSBoaWdoZXIgZmFyZSwgYW5kIGlzIHJlcXVlc3RpbmcgYSBmYXJlIGFkanVzdG1lbnQuIiwiVGhlIHRpY2tldCBkb2VzIG5vdCBtZW50aW9uIGFueSBhY2NpZGVudCBvciBpbmp1cnksIHNvIHRoZSBpc3N1ZSBpcyBub3QgcmVsYXRlZCB0byBzYWZldHkuIiwiU29tZXdoYXQgbmVnYXRpdmUgIApUaGUgY3VzdG9tZXIgaXMgZXhwcmVzc2luZyBkaXNzYXRpc2ZhY3Rpb24gd2l0aCB0aGUgc2VydmljZSBkdWUgdG8gdGhlIGxvbmdlciByb3V0ZSB0YWtlbiBieSB0aGUgZHJpdmVyLCByZXN1bHRpbmcgaW4gYSBoaWdoZXIgZmFyZSwgYW5kIGlzIHJlcXVlc3RpbmcgYSBmYXJlIGFkanVzdG1lbnQuIiwiWzIsIDNdCgpUaGUgaXNzdWVzIG1lbnRpb25lZCBpbiB0aGUgdGlja2V0IHJlbGF0ZSB0byBkcml2ZXIgcGVyZm9ybWFuY2UsIGFzIHRha2luZyBhIGxvbmdlciByb3V0ZSB0aGFuIG5lY2Vzc2FyeSBpbmRpY2F0ZXMgYSBwb3RlbnRpYWwgaXNzdWUgd2l0aCBob3cgdGhlIGRyaXZlciBjb25kdWN0ZWQgdGhlIHRyaXAuIEFkZGl0aW9uYWxseSwgaXQgaW52b2x2ZXMgR1BTL3JvdXRlIGlzc3VlcywgYXMgdGhlIGNvbXBsYWludCBpcyBzcGVjaWZpY2FsbHkgYWJvdXQgdGhlIHJvdXRlIHRha2VuLiIsIk5vCgpUaGUgY3VzdG9tZXIgaXMgcmVxdWVzdGluZyBhIGZhcmUgYWRqdXN0bWVudCwgd2hpY2ggaXMgZGlmZmVyZW50IGZyb20gYXNraW5nIGZvciBhIHJlZnVuZC4gQSBmYXJlIGFkanVzdG1lbnQgdHlwaWNhbGx5IG1lYW5zIHRoZXkgd2FudCB0aGUgZmFyZSBjb3JyZWN0ZWQgdG8gd2hhdCBpdCBzaG91bGQgaGF2ZSBiZWVuLCByYXRoZXIgdGhhbiBhIGZ1bGwgcmVmdW5kIG9mIHRoZSBmYXJlIHBhaWQuIiwiVGhlIHByaW1hcnkgaXNzdWUgaW4gdGhpcyB0aWNrZXQgaXMgdGhhdCB0aGUgY3VzdG9tZXIgYmVsaWV2ZXMgdGhlIGRyaXZlciB0b29rIGEgbG9uZ2VyIHJvdXRlIHRoYW4gbmVjZXNzYXJ5LCB3aGljaCBsZWQgdG8gYSBoaWdoZXIgZmFyZS4gVGhlIGN1c3RvbWVyIGlzIHJlcXVlc3RpbmcgYW4gYWRqdXN0bWVudCB0byB0aGUgZmFyZSB0byByZWZsZWN0IHdoYXQgdGhleSBiZWxpZXZlIHNob3VsZCBoYXZlIGJlZW4gdGhlIGNvcnJlY3QgYW1vdW50LiIsIk5vICAKVGhlIHRpY2tldCBkb2VzIG5vdCBtZW50aW9uIGFueSBhY2NpZGVudCBvciBpbmp1cnksIHNvIHRoZSBpc3N1ZSBpcyBub3QgcmVsYXRlZCB0byBzYWZldHkuIiwiMiAgClRoaXMgaXNzdWUgaXMgaW1wb3J0YW50IGJlY2F1c2UgaXQgaW52b2x2ZXMgYSBmaW5hbmNpYWwgZGlzY3JlcGFuY3kgZm9yIHRoZSBjdXN0b21lciwgYnV0IGl0IGRvZXMgbm90IHBvc2UgYW4gaW1tZWRpYXRlIHNhZmV0eSBvciBzZXJ2aWNlIGNvbnRpbnVpdHkgY29uY2Vybiwgc28gaXQgaXMgbm90IHRoZSBoaWdoZXN0IHByaW9yaXR5LiINCk5vdCBhcHBsaWNhYmxlLFZlcnkgcG9zaXRpdmUsTm8sIkl0IHNlZW1zIHRoZXJlIGlzIG5vIGlzc3VlIGluIHRoaXMgdGlja2V0LiBJbnN0ZWFkLCBpdCBhcHBlYXJzIHRvIGJlIHBvc2l0aXZlIGZlZWRiYWNrIGFib3V0IGEgZ3JlYXQgZXhwZXJpZW5jZSB3aXRoIHRoZSBkcml2ZXIuIEl0J3MgYWx3YXlzIHdvbmRlcmZ1bCB0byByZWNlaXZlIGNvbXBsaW1lbnRzIGFib3V0IGZyaWVuZGx5IGFuZCBlZmZpY2llbnQgc2VydmljZSEiLDAsWydkcml2ZXIgcGVyZm9ybWFuY2UnXSxJIGhhZCBhIGdyZWF0IGV4cGVyaWVuY2Ugd2l0aCBteSBkcml2ZXIgdG9kYXkhIFZlcnkgZnJpZW5kbHkgYW5kIGVmZmljaWVudCBzZXJ2aWNlLixZb3UgYXJlIGFuIGV4cGVydCBjdXN0b21lciBzZXJ2aWNlIGFnZW50LixBZ2VudF81LDE1LFlvdSBhcmUgYW5zd2VyaW5nIHF1ZXN0aW9ucyBhcyBpZiB5b3Ugd2VyZSBhIGh1bWFuLiBEbyBub3QgYnJlYWsgY2hhcmFjdGVyLiwwLDEsMCxncHQtNG8sMC41LEZhbHNlLDEwMDAsMyxXaGF0IGlzIHRoZSBwcmltYXJ5IGlzc3VlIGluIHRoaXMgdGlja2V0PyBUaWNrZXQ6IEkgaGFkIGEgZ3JlYXQgZXhwZXJpZW5jZSB3aXRoIG15IGRyaXZlciB0b2RheSEgVmVyeSBmcmllbmRseSBhbmQgZWZmaWNpZW50IHNlcnZpY2UuLCJZb3UgYXJlIGFuc3dlcmluZyBxdWVzdGlvbnMgYXMgaWYgeW91IHdlcmUgYSBodW1hbi4gRG8gbm90IGJyZWFrIGNoYXJhY3Rlci4gWW91ciB0cmFpdHM6IHsncGVyc29uYSc6ICdZb3UgYXJlIGFuIGV4cGVydCBjdXN0b21lciBzZXJ2aWNlIGFnZW50LicsICd5ZWFyc19leHBlcmllbmNlJzogMTV9IiwiWW91IGFyZSBhbnN3ZXJpbmcgcXVlc3Rpb25zIGFzIGlmIHlvdSB3ZXJlIGEgaHVtYW4uIERvIG5vdCBicmVhayBjaGFyYWN0ZXIuIFlvdXIgdHJhaXRzOiB7J3BlcnNvbmEnOiAnWW91IGFyZSBhbiBleHBlcnQgY3VzdG9tZXIgc2VydmljZSBhZ2VudC4nLCAneWVhcnNfZXhwZXJpZW5jZSc6IDE1fSIsIkNoZWNrIGFsbCBvZiB0aGUgaXNzdWVzIG1lbnRpb25lZCBpbiB0aGlzIHRpY2tldDogSSBoYWQgYSBncmVhdCBleHBlcmllbmNlIHdpdGggbXkgZHJpdmVyIHRvZGF5ISBWZXJ5IGZyaWVuZGx5IGFuZCBlZmZpY2llbnQgc2VydmljZS4KCiAgICAKMDogc2FmZXR5CiAgICAKMTogY2xlYW5saW5lc3MKICAgIAoyOiBkcml2ZXIgcGVyZm9ybWFuY2UKICAgIAozOiBHUFMvcm91dGUKICAgIAo0OiBsb3N0IGl0ZW0KICAgIAo1OiBvdGhlcgogICAgCgoKCgoKClBsZWFzZSByZXNwb25kIG9ubHkgd2l0aCBhIGNvbW1hLXNlcGFyYXRlZCBsaXN0IG9mIHRoZSBjb2RlIG9mIHRoZSBvcHRpb25zIHRoYXQgYXBwbHksIHdpdGggc3F1YXJlIGJyYWNrZXRzLiBFLmcuLCBbMCwgMSwgM10KCgpBZnRlciB0aGUgYW5zd2VyLCB5b3UgY2FuIHB1dCBhIGNvbW1lbnQgZXhwbGFpbmluZyB5b3VyIGNob2ljZSBvbiB0aGUgbmV4dCBsaW5lLiIsIk9uIGEgc2NhbGUgZnJvbSAwIHRvIDUsIHdoYXQgaXMgdGhlIHByaW9yaXR5IGxldmVsIG9mIHRoaXMgdGlja2V0PyBUaWNrZXQ6IEkgaGFkIGEgZ3JlYXQgZXhwZXJpZW5jZSB3aXRoIG15IGRyaXZlciB0b2RheSEgVmVyeSBmcmllbmRseSBhbmQgZWZmaWNpZW50IHNlcnZpY2UuCgowIDogTG93ZXN0CgoxIDogCgoyIDogCgozIDogCgo0IDogCgo1IDogSGlnaGVzdAoKT25seSAxIG9wdGlvbiBtYXkgYmUgc2VsZWN0ZWQuCgpSZXNwb25kIG9ubHkgd2l0aCB0aGUgY29kZSBjb3JyZXNwb25kaW5nIHRvIG9uZSBvZiB0aGUgb3B0aW9ucy4gRS5nLiwgIiIxIiIgb3IgIiI1IiIgYnkgaXRzZWxmLgoKQWZ0ZXIgdGhlIGFuc3dlciwgeW91IGNhbiBwdXQgYSBjb21tZW50IGV4cGxhaW5pbmcgd2h5IHlvdSBjaG9zZSB0aGF0IG9wdGlvbiBvbiB0aGUgbmV4dCBsaW5lLiIsIllvdSBhcmUgYW5zd2VyaW5nIHF1ZXN0aW9ucyBhcyBpZiB5b3Ugd2VyZSBhIGh1bWFuLiBEbyBub3QgYnJlYWsgY2hhcmFjdGVyLiBZb3VyIHRyYWl0czogeydwZXJzb25hJzogJ1lvdSBhcmUgYW4gZXhwZXJ0IGN1c3RvbWVyIHNlcnZpY2UgYWdlbnQuJywgJ3llYXJzX2V4cGVyaWVuY2UnOiAxNX0iLCJZb3UgYXJlIGFuc3dlcmluZyBxdWVzdGlvbnMgYXMgaWYgeW91IHdlcmUgYSBodW1hbi4gRG8gbm90IGJyZWFrIGNoYXJhY3Rlci4gWW91ciB0cmFpdHM6IHsncGVyc29uYSc6ICdZb3UgYXJlIGFuIGV4cGVydCBjdXN0b21lciBzZXJ2aWNlIGFnZW50LicsICd5ZWFyc19leHBlcmllbmNlJzogMTV9IiwiWW91IGFyZSBhbnN3ZXJpbmcgcXVlc3Rpb25zIGFzIGlmIHlvdSB3ZXJlIGEgaHVtYW4uIERvIG5vdCBicmVhayBjaGFyYWN0ZXIuIFlvdXIgdHJhaXRzOiB7J3BlcnNvbmEnOiAnWW91IGFyZSBhbiBleHBlcnQgY3VzdG9tZXIgc2VydmljZSBhZ2VudC4nLCAneWVhcnNfZXhwZXJpZW5jZSc6IDE1fSIsIgpXaGF0IGlzIHRoZSBzZW50aW1lbnQgb2YgdGhpcyB0aWNrZXQ/IFRpY2tldDogSSBoYWQgYSBncmVhdCBleHBlcmllbmNlIHdpdGggbXkgZHJpdmVyIHRvZGF5ISBWZXJ5IGZyaWVuZGx5IGFuZCBlZmZpY2llbnQgc2VydmljZS4KCiAgICAKVmVyeSBwb3NpdGl2ZQogICAgClNvbWV3aGF0IHBvc2l0aXZlCiAgICAKTmV1dHJhbAogICAgClNvbWV3aGF0IG5lZ2F0aXZlCiAgICAKVmVyeSBuZWdhdGl2ZQogICAgCgpPbmx5IDEgb3B0aW9uIG1heSBiZSBzZWxlY3RlZC4KClJlc3BvbmQgb25seSB3aXRoIGEgc3RyaW5nIGNvcnJlc3BvbmRpbmcgdG8gb25lIG9mIHRoZSBvcHRpb25zLgoKCkFmdGVyIHRoZSBhbnN3ZXIsIHlvdSBjYW4gcHV0IGEgY29tbWVudCBleHBsYWluaW5nIHdoeSB5b3UgY2hvc2UgdGhhdCBvcHRpb24gb24gdGhlIG5leHQgbGluZS4iLCIKRG9lcyB0aGUgY3VzdG9tZXIgYXNrIGZvciBhIHJlZnVuZCBpbiB0aGlzIHRpY2tldD8gVGlja2V0OiBJIGhhZCBhIGdyZWF0IGV4cGVyaWVuY2Ugd2l0aCBteSBkcml2ZXIgdG9kYXkhIFZlcnkgZnJpZW5kbHkgYW5kIGVmZmljaWVudCBzZXJ2aWNlLgoKICAgIApObwogICAgClllcwogICAgCgpPbmx5IDEgb3B0aW9uIG1heSBiZSBzZWxlY3RlZC4KUGxlYXNlIHJlc3BvbmQgd2l0aCBqdXN0IHlvdXIgYW5zd2VyLiAKCgpBZnRlciB0aGUgYW5zd2VyLCB5b3UgY2FuIHB1dCBhIGNvbW1lbnQgZXhwbGFpbmluZyB5b3VyIHJlc3BvbnNlLiIsIllvdSBhcmUgYW5zd2VyaW5nIHF1ZXN0aW9ucyBhcyBpZiB5b3Ugd2VyZSBhIGh1bWFuLiBEbyBub3QgYnJlYWsgY2hhcmFjdGVyLiBZb3VyIHRyYWl0czogeydwZXJzb25hJzogJ1lvdSBhcmUgYW4gZXhwZXJ0IGN1c3RvbWVyIHNlcnZpY2UgYWdlbnQuJywgJ3llYXJzX2V4cGVyaWVuY2UnOiAxNX0iLCIKSWYgdGhlIHByaW1hcnkgaXNzdWUgaW4gdGhpcyB0aWNrZXQgaXMgc2FmZXR5LCB3YXMgdGhlcmUgYW4gYWNjaWRlbnQgd2hlcmUgc29tZW9uZSB3YXMgaHVydD8gVGlja2V0OiBJIGhhZCBhIGdyZWF0IGV4cGVyaWVuY2Ugd2l0aCBteSBkcml2ZXIgdG9kYXkhIFZlcnkgZnJpZW5kbHkgYW5kIGVmZmljaWVudCBzZXJ2aWNlLgoKICAgIApZZXMKICAgIApObwogICAgCk5vdCBhcHBsaWNhYmxlCiAgICAKCk9ubHkgMSBvcHRpb24gbWF5IGJlIHNlbGVjdGVkLgoKUmVzcG9uZCBvbmx5IHdpdGggYSBzdHJpbmcgY29ycmVzcG9uZGluZyB0byBvbmUgb2YgdGhlIG9wdGlvbnMuCgoKQWZ0ZXIgdGhlIGFuc3dlciwgeW91IGNhbiBwdXQgYSBjb21tZW50IGV4cGxhaW5pbmcgd2h5IHlvdSBjaG9zZSB0aGF0IG9wdGlvbiBvbiB0aGUgbmV4dCBsaW5lLiIsMC4wMDA1NDUsInsnaWQnOiAnY2hhdGNtcGwtQWVPTEM5ckJkZ2NBVGpXRXR5T05WVERHSURKVjknLCAnY2hvaWNlcyc6IFt7J2ZpbmlzaF9yZWFzb24nOiAnc3RvcCcsICdpbmRleCc6IDAsICdsb2dwcm9icyc6IE5vbmUsICdtZXNzYWdlJzogeydjb250ZW50JzogJ05vdCBhcHBsaWNhYmxlXG5cblRoZSB0aWNrZXQgaXMgZm9jdXNlZCBvbiBhIHBvc2l0aXZlIGV4cGVyaWVuY2Ugd2l0aCB0aGUgZHJpdmVyLCBpbmRpY2F0aW5nIG5vIHNhZmV0eSBpc3N1ZSBvciBhY2NpZGVudCBvY2N1cnJlZC4nLCAncmVmdXNhbCc6IE5vbmUsICdyb2xlJzogJ2Fzc2lzdGFudCcsICdhdWRpbyc6IE5vbmUsICdmdW5jdGlvbl9jYWxsJzogTm9uZSwgJ3Rvb2xfY2FsbHMnOiBOb25lfX1dLCAnY3JlYXRlZCc6IDE3MzQxOTAwNTAsICdtb2RlbCc6ICdncHQtNG8tMjAyNC0wOC0wNicsICdvYmplY3QnOiAnY2hhdC5jb21wbGV0aW9uJywgJ3NlcnZpY2VfdGllcic6IE5vbmUsICdzeXN0ZW1fZmluZ2VycHJpbnQnOiAnZnBfYTc5ZDhkYWMxZicsICd1c2FnZSc6IHsnY29tcGxldGlvbl90b2tlbnMnOiAyMywgJ3Byb21wdF90b2tlbnMnOiAxMzYsICd0b3RhbF90b2tlbnMnOiAxNTksICdjb21wbGV0aW9uX3Rva2Vuc19kZXRhaWxzJzogeydhY2NlcHRlZF9wcmVkaWN0aW9uX3Rva2Vucyc6IDAsICdhdWRpb190b2tlbnMnOiAwLCAncmVhc29uaW5nX3Rva2Vucyc6IDAsICdyZWplY3RlZF9wcmVkaWN0aW9uX3Rva2Vucyc6IDB9LCAncHJvbXB0X3Rva2Vuc19kZXRhaWxzJzogeydhdWRpb190b2tlbnMnOiAwLCAnY2FjaGVkX3Rva2Vucyc6IDB9fX0iLCJ7J2lkJzogJ2NoYXRjbXBsLUFlT0xDS0NZUlZpZ1I0cHZZd21mSEVDUzF6QjlNJywgJ2Nob2ljZXMnOiBbeydmaW5pc2hfcmVhc29uJzogJ3N0b3AnLCAnaW5kZXgnOiAwLCAnbG9ncHJvYnMnOiBOb25lLCAnbWVzc2FnZSc6IHsnY29udGVudCc6ICIiVmVyeSBwb3NpdGl2ZSAgXG5UaGUgdGlja2V0IGV4cHJlc3NlcyBzYXRpc2ZhY3Rpb24gYW5kIGhpZ2hsaWdodHMgdGhlIGRyaXZlcidzIGZyaWVuZGxpbmVzcyBhbmQgZWZmaWNpZW5jeSwgaW5kaWNhdGluZyBhIHZlcnkgcG9zaXRpdmUgc2VudGltZW50LiIiLCAncmVmdXNhbCc6IE5vbmUsICdyb2xlJzogJ2Fzc2lzdGFudCcsICdhdWRpbyc6IE5vbmUsICdmdW5jdGlvbl9jYWxsJzogTm9uZSwgJ3Rvb2xfY2FsbHMnOiBOb25lfX1dLCAnY3JlYXRlZCc6IDE3MzQxOTAwNTAsICdtb2RlbCc6ICdncHQtNG8tMjAyNC0wOC0wNicsICdvYmplY3QnOiAnY2hhdC5jb21wbGV0aW9uJywgJ3NlcnZpY2VfdGllcic6IE5vbmUsICdzeXN0ZW1fZmluZ2VycHJpbnQnOiAnZnBfOWZhYmE5ZjAzOCcsICd1c2FnZSc6IHsnY29tcGxldGlvbl90b2tlbnMnOiAyMSwgJ3Byb21wdF90b2tlbnMnOiAxMzQsICd0b3RhbF90b2tlbnMnOiAxNTUsICdjb21wbGV0aW9uX3Rva2Vuc19kZXRhaWxzJzogeydhY2NlcHRlZF9wcmVkaWN0aW9uX3Rva2Vucyc6IDAsICdhdWRpb190b2tlbnMnOiAwLCAncmVhc29uaW5nX3Rva2Vucyc6IDAsICdyZWplY3RlZF9wcmVkaWN0aW9uX3Rva2Vucyc6IDB9LCAncHJvbXB0X3Rva2Vuc19kZXRhaWxzJzogeydhdWRpb190b2tlbnMnOiAwLCAnY2FjaGVkX3Rva2Vucyc6IDB9fX0iLDE4MzQuODYyMzg1MzIxMTAwOSwyMDIwLjIwMjAyMDIwMjAyMDMsInsnaWQnOiAnY2hhdGNtcGwtQWVPTEM5RlFMZ28yNXR5VVBlNDFMb0J2ZXlaMHknLCAnY2hvaWNlcyc6IFt7J2ZpbmlzaF9yZWFzb24nOiAnc3RvcCcsICdpbmRleCc6IDAsICdsb2dwcm9icyc6IE5vbmUsICdtZXNzYWdlJzogeydjb250ZW50JzogIiJbMl1cblxuVGhlIHRpY2tldCBtZW50aW9ucyB0aGUgZHJpdmVyJ3MgcGVyZm9ybWFuY2UgYXMgYmVpbmcgZnJpZW5kbHkgYW5kIGVmZmljaWVudCwgd2hpY2ggcmVsYXRlcyB0byBkcml2ZXIgcGVyZm9ybWFuY2UuIiIsICdyZWZ1c2FsJzogTm9uZSwgJ3JvbGUnOiAnYXNzaXN0YW50JywgJ2F1ZGlvJzogTm9uZSwgJ2Z1bmN0aW9uX2NhbGwnOiBOb25lLCAndG9vbF9jYWxscyc6IE5vbmV9fV0sICdjcmVhdGVkJzogMTczNDE5MDA1MCwgJ21vZGVsJzogJ2dwdC00by0yMDI0LTA4LTA2JywgJ29iamVjdCc6ICdjaGF0LmNvbXBsZXRpb24nLCAnc2VydmljZV90aWVyJzogTm9uZSwgJ3N5c3RlbV9maW5nZXJwcmludCc6ICdmcF85ZmFiYTlmMDM4JywgJ3VzYWdlJzogeydjb21wbGV0aW9uX3Rva2Vucyc6IDIxLCAncHJvbXB0X3Rva2Vucyc6IDE1NywgJ3RvdGFsX3Rva2Vucyc6IDE3OCwgJ2NvbXBsZXRpb25fdG9rZW5zX2RldGFpbHMnOiB7J2FjY2VwdGVkX3ByZWRpY3Rpb25fdG9rZW5zJzogMCwgJ2F1ZGlvX3Rva2Vucyc6IDAsICdyZWFzb25pbmdfdG9rZW5zJzogMCwgJ3JlamVjdGVkX3ByZWRpY3Rpb25fdG9rZW5zJzogMH0sICdwcm9tcHRfdG9rZW5zX2RldGFpbHMnOiB7J2F1ZGlvX3Rva2Vucyc6IDAsICdjYWNoZWRfdG9rZW5zJzogMH19fSIsMC4wMDA2OCwxNzU0LjM4NTk2NDkxMjI4MDgsMC4wMDA0OTUsMC4wMDA2MDI1LCJ7J2lkJzogJ2NoYXRjbXBsLUFlT0xDcVpIRUZ6RXZ4dUtvWDhrQWJhZHhhQWFmJywgJ2Nob2ljZXMnOiBbeydmaW5pc2hfcmVhc29uJzogJ3N0b3AnLCAnaW5kZXgnOiAwLCAnbG9ncHJvYnMnOiBOb25lLCAnbWVzc2FnZSc6IHsnY29udGVudCc6ICIiSXQgc2VlbXMgdGhlcmUgaXMgbm8gaXNzdWUgaW4gdGhpcyB0aWNrZXQuIEluc3RlYWQsIGl0IGFwcGVhcnMgdG8gYmUgcG9zaXRpdmUgZmVlZGJhY2sgYWJvdXQgYSBncmVhdCBleHBlcmllbmNlIHdpdGggdGhlIGRyaXZlci4gSXQncyBhbHdheXMgd29uZGVyZnVsIHRvIHJlY2VpdmUgY29tcGxpbWVudHMgYWJvdXQgZnJpZW5kbHkgYW5kIGVmZmljaWVudCBzZXJ2aWNlISIiLCAncmVmdXNhbCc6IE5vbmUsICdyb2xlJzogJ2Fzc2lzdGFudCcsICdhdWRpbyc6IE5vbmUsICdmdW5jdGlvbl9jYWxsJzogTm9uZSwgJ3Rvb2xfY2FsbHMnOiBOb25lfX1dLCAnY3JlYXRlZCc6IDE3MzQxOTAwNTAsICdtb2RlbCc6ICdncHQtNG8tMjAyNC0wOC0wNicsICdvYmplY3QnOiAnY2hhdC5jb21wbGV0aW9uJywgJ3NlcnZpY2VfdGllcic6IE5vbmUsICdzeXN0ZW1fZmluZ2VycHJpbnQnOiAnZnBfYTc5ZDhkYWMxZicsICd1c2FnZSc6IHsnY29tcGxldGlvbl90b2tlbnMnOiAzOCwgJ3Byb21wdF90b2tlbnMnOiA3NywgJ3RvdGFsX3Rva2Vucyc6IDExNSwgJ2NvbXBsZXRpb25fdG9rZW5zX2RldGFpbHMnOiB7J2FjY2VwdGVkX3ByZWRpY3Rpb25fdG9rZW5zJzogMCwgJ2F1ZGlvX3Rva2Vucyc6IDAsICdyZWFzb25pbmdfdG9rZW5zJzogMCwgJ3JlamVjdGVkX3ByZWRpY3Rpb25fdG9rZW5zJzogMH0sICdwcm9tcHRfdG9rZW5zX2RldGFpbHMnOiB7J2F1ZGlvX3Rva2Vucyc6IDAsICdjYWNoZWRfdG9rZW5zJzogMH19fSIsMC4wMDA1NzI1LDE3NDYuNzI0ODkwODI5Njk0NSwieydpZCc6ICdjaGF0Y21wbC1BZU9MQ05zdTc3emRJY2dEcHkzT0FrUkY2eEVYVScsICdjaG9pY2VzJzogW3snZmluaXNoX3JlYXNvbic6ICdzdG9wJywgJ2luZGV4JzogMCwgJ2xvZ3Byb2JzJzogTm9uZSwgJ21lc3NhZ2UnOiB7J2NvbnRlbnQnOiAnMCAgXG5UaGlzIHRpY2tldCBpcyBhIHBvc2l0aXZlIGZlZWRiYWNrIGFuZCBkb2VzIG5vdCByZXF1aXJlIGltbWVkaWF0ZSBhY3Rpb24gb3IgcmVzb2x1dGlvbiwgc28gaXQgaXMgdGhlIGxvd2VzdCBwcmlvcml0eSBpbiB0ZXJtcyBvZiB1cmdlbmN5LicsICdyZWZ1c2FsJzogTm9uZSwgJ3JvbGUnOiAnYXNzaXN0YW50JywgJ2F1ZGlvJzogTm9uZSwgJ2Z1bmN0aW9uX2NhbGwnOiBOb25lLCAndG9vbF9jYWxscyc6IE5vbmV9fV0sICdjcmVhdGVkJzogMTczNDE5MDA1MCwgJ21vZGVsJzogJ2dwdC00by0yMDI0LTA4LTA2JywgJ29iamVjdCc6ICdjaGF0LmNvbXBsZXRpb24nLCAnc2VydmljZV90aWVyJzogTm9uZSwgJ3N5c3RlbV9maW5nZXJwcmludCc6ICdmcF85ZmFiYTlmMDM4JywgJ3VzYWdlJzogeydjb21wbGV0aW9uX3Rva2Vucyc6IDI4LCAncHJvbXB0X3Rva2Vucyc6IDE2MCwgJ3RvdGFsX3Rva2Vucyc6IDE4OCwgJ2NvbXBsZXRpb25fdG9rZW5zX2RldGFpbHMnOiB7J2FjY2VwdGVkX3ByZWRpY3Rpb25fdG9rZW5zJzogMCwgJ2F1ZGlvX3Rva2Vucyc6IDAsICdyZWFzb25pbmdfdG9rZW5zJzogMCwgJ3JlamVjdGVkX3ByZWRpY3Rpb25fdG9rZW5zJzogMH0sICdwcm9tcHRfdG9rZW5zX2RldGFpbHMnOiB7J2F1ZGlvX3Rva2Vucyc6IDAsICdjYWNoZWRfdG9rZW5zJzogMH19fSIsMTY1OS43NTEwMzczNDQzOTg0LDE0NzAuNTg4MjM1Mjk0MTE3NiwwLjAwMDU3LCJ7J2lkJzogJ2NoYXRjbXBsLUFlT0xDbVpVaG5FSDRKN0ZmZ21pTk16ZUpOblRZJywgJ2Nob2ljZXMnOiBbeydmaW5pc2hfcmVhc29uJzogJ3N0b3AnLCAnaW5kZXgnOiAwLCAnbG9ncHJvYnMnOiBOb25lLCAnbWVzc2FnZSc6IHsnY29udGVudCc6ICdOb1xuXG5UaGUgdGlja2V0IGV4cHJlc3NlcyBzYXRpc2ZhY3Rpb24gd2l0aCB0aGUgc2VydmljZSBhbmQgZG9lcyBub3QgbWVudGlvbiBhbnkgaXNzdWVzIG9yIHJlcXVlc3RzIGZvciBhIHJlZnVuZC4nLCAncmVmdXNhbCc6IE5vbmUsICdyb2xlJzogJ2Fzc2lzdGFudCcsICdhdWRpbyc6IE5vbmUsICdmdW5jdGlvbl9jYWxsJzogTm9uZSwgJ3Rvb2xfY2FsbHMnOiBOb25lfX1dLCAnY3JlYXRlZCc6IDE3MzQxOTAwNTAsICdtb2RlbCc6ICdncHQtNG8tMjAyNC0wOC0wNicsICdvYmplY3QnOiAnY2hhdC5jb21wbGV0aW9uJywgJ3NlcnZpY2VfdGllcic6IE5vbmUsICdzeXN0ZW1fZmluZ2VycHJpbnQnOiAnZnBfYTc5ZDhkYWMxZicsICd1c2FnZSc6IHsnY29tcGxldGlvbl90b2tlbnMnOiAyMSwgJ3Byb21wdF90b2tlbnMnOiAxMTQsICd0b3RhbF90b2tlbnMnOiAxMzUsICdjb21wbGV0aW9uX3Rva2Vuc19kZXRhaWxzJzogeydhY2NlcHRlZF9wcmVkaWN0aW9uX3Rva2Vucyc6IDAsICdhdWRpb190b2tlbnMnOiAwLCAncmVhc29uaW5nX3Rva2Vucyc6IDAsICdyZWplY3RlZF9wcmVkaWN0aW9uX3Rva2Vucyc6IDB9LCAncHJvbXB0X3Rva2Vuc19kZXRhaWxzJzogeydhdWRpb190b2tlbnMnOiAwLCAnY2FjaGVkX3Rva2Vucyc6IDB9fX0iLDAsRG9lcyB0aGUgY3VzdG9tZXIgYXNrIGZvciBhIHJlZnVuZCBpbiB0aGlzIHRpY2tldD8gVGlja2V0OiB7eyB0aWNrZXQgfX0sIklmIHRoZSBwcmltYXJ5IGlzc3VlIGluIHRoaXMgdGlja2V0IGlzIHNhZmV0eSwgd2FzIHRoZXJlIGFuIGFjY2lkZW50IHdoZXJlIHNvbWVvbmUgd2FzIGh1cnQ/IFRpY2tldDoge3sgdGlja2V0IH19IixXaGF0IGlzIHRoZSBwcmltYXJ5IGlzc3VlIGluIHRoaXMgdGlja2V0PyBUaWNrZXQ6IHt7IHRpY2tldCB9fSxDaGVjayBhbGwgb2YgdGhlIGlzc3VlcyBtZW50aW9uZWQgaW4gdGhpcyB0aWNrZXQ6IHt7IHRpY2tldCB9fSwiT24gYSBzY2FsZSBmcm9tIDAgdG8gNSwgd2hhdCBpcyB0aGUgcHJpb3JpdHkgbGV2ZWwgb2YgdGhpcyB0aWNrZXQ/IFRpY2tldDoge3sgdGlja2V0IH19IixXaGF0IGlzIHRoZSBzZW50aW1lbnQgb2YgdGhpcyB0aWNrZXQ/IFRpY2tldDoge3sgdGlja2V0IH19LCJbJ3NhZmV0eScsICdjbGVhbmxpbmVzcycsICdkcml2ZXIgcGVyZm9ybWFuY2UnLCAnR1BTL3JvdXRlJywgJ2xvc3QgaXRlbScsICdvdGhlciddIiwiWydWZXJ5IHBvc2l0aXZlJywgJ1NvbWV3aGF0IHBvc2l0aXZlJywgJ05ldXRyYWwnLCAnU29tZXdoYXQgbmVnYXRpdmUnLCAnVmVyeSBuZWdhdGl2ZSddIiwsIlsnTm8nLCAnWWVzJ10iLCJbJ1llcycsICdObycsICdOb3QgYXBwbGljYWJsZSddIiwiWzAsIDEsIDIsIDMsIDQsIDVdIixsaW5lYXJfc2NhbGUsbXVsdGlwbGVfY2hvaWNlLG11bHRpcGxlX2Nob2ljZSx5ZXNfbm8sZnJlZV90ZXh0LGNoZWNrYm94LCxUaGUgdGlja2V0IGV4cHJlc3NlcyBzYXRpc2ZhY3Rpb24gd2l0aCB0aGUgc2VydmljZSBhbmQgZG9lcyBub3QgbWVudGlvbiBhbnkgaXNzdWVzIG9yIHJlcXVlc3RzIGZvciBhIHJlZnVuZC4sIlRoaXMgdGlja2V0IGlzIGEgcG9zaXRpdmUgZmVlZGJhY2sgYW5kIGRvZXMgbm90IHJlcXVpcmUgaW1tZWRpYXRlIGFjdGlvbiBvciByZXNvbHV0aW9uLCBzbyBpdCBpcyB0aGUgbG93ZXN0IHByaW9yaXR5IGluIHRlcm1zIG9mIHVyZ2VuY3kuIiwiVGhlIHRpY2tldCBtZW50aW9ucyB0aGUgZHJpdmVyJ3MgcGVyZm9ybWFuY2UgYXMgYmVpbmcgZnJpZW5kbHkgYW5kIGVmZmljaWVudCwgd2hpY2ggcmVsYXRlcyB0byBkcml2ZXIgcGVyZm9ybWFuY2UuIiwiVGhlIHRpY2tldCBleHByZXNzZXMgc2F0aXNmYWN0aW9uIGFuZCBoaWdobGlnaHRzIHRoZSBkcml2ZXIncyBmcmllbmRsaW5lc3MgYW5kIGVmZmljaWVuY3ksIGluZGljYXRpbmcgYSB2ZXJ5IHBvc2l0aXZlIHNlbnRpbWVudC4iLCJUaGUgdGlja2V0IGlzIGZvY3VzZWQgb24gYSBwb3NpdGl2ZSBleHBlcmllbmNlIHdpdGggdGhlIGRyaXZlciwgaW5kaWNhdGluZyBubyBzYWZldHkgaXNzdWUgb3IgYWNjaWRlbnQgb2NjdXJyZWQuIiwiVmVyeSBwb3NpdGl2ZSAgClRoZSB0aWNrZXQgZXhwcmVzc2VzIHNhdGlzZmFjdGlvbiBhbmQgaGlnaGxpZ2h0cyB0aGUgZHJpdmVyJ3MgZnJpZW5kbGluZXNzIGFuZCBlZmZpY2llbmN5LCBpbmRpY2F0aW5nIGEgdmVyeSBwb3NpdGl2ZSBzZW50aW1lbnQuIiwiWzJdCgpUaGUgdGlja2V0IG1lbnRpb25zIHRoZSBkcml2ZXIncyBwZXJmb3JtYW5jZSBhcyBiZWluZyBmcmllbmRseSBhbmQgZWZmaWNpZW50LCB3aGljaCByZWxhdGVzIHRvIGRyaXZlciBwZXJmb3JtYW5jZS4iLCJObwoKVGhlIHRpY2tldCBleHByZXNzZXMgc2F0aXNmYWN0aW9uIHdpdGggdGhlIHNlcnZpY2UgYW5kIGRvZXMgbm90IG1lbnRpb24gYW55IGlzc3VlcyBvciByZXF1ZXN0cyBmb3IgYSByZWZ1bmQuIiwiSXQgc2VlbXMgdGhlcmUgaXMgbm8gaXNzdWUgaW4gdGhpcyB0aWNrZXQuIEluc3RlYWQsIGl0IGFwcGVhcnMgdG8gYmUgcG9zaXRpdmUgZmVlZGJhY2sgYWJvdXQgYSBncmVhdCBleHBlcmllbmNlIHdpdGggdGhlIGRyaXZlci4gSXQncyBhbHdheXMgd29uZGVyZnVsIHRvIHJlY2VpdmUgY29tcGxpbWVudHMgYWJvdXQgZnJpZW5kbHkgYW5kIGVmZmljaWVudCBzZXJ2aWNlISIsIk5vdCBhcHBsaWNhYmxlCgpUaGUgdGlja2V0IGlzIGZvY3VzZWQgb24gYSBwb3NpdGl2ZSBleHBlcmllbmNlIHdpdGggdGhlIGRyaXZlciwgaW5kaWNhdGluZyBubyBzYWZldHkgaXNzdWUgb3IgYWNjaWRlbnQgb2NjdXJyZWQuIiwiMCAgClRoaXMgdGlja2V0IGlzIGEgcG9zaXRpdmUgZmVlZGJhY2sgYW5kIGRvZXMgbm90IHJlcXVpcmUgaW1tZWRpYXRlIGFjdGlvbiBvciByZXNvbHV0aW9uLCBzbyBpdCBpcyB0aGUgbG93ZXN0IHByaW9yaXR5IGluIHRlcm1zIG9mIHVyZ2VuY3kuIg0KTm8sU29tZXdoYXQgbmVnYXRpdmUsTm8sVGhlIHByaW1hcnkgaXNzdWUgaW4gdGhpcyB0aWNrZXQgaXMgdGhlIGN1c3RvbWVyJ3MgY29uY2VybiBhYm91dCB0aGUgY2xlYW5saW5lc3Mgb2YgdGhlIHZlaGljbGUuIFRoZXkgZmVlbCB0aGF0IHRoZSB2ZWhpY2xlIHdhcyBub3QgY2xlYW5lZCB0byB0aGUgc3RhbmRhcmQgdGhleSBleHBlY3QuIEFkZHJlc3NpbmcgdGhpcyBpc3N1ZSB3b3VsZCBpbnZvbHZlIGVuc3VyaW5nIHRoZSB2ZWhpY2xlIGlzIHRob3JvdWdobHkgY2xlYW5lZCBhbmQgcG9zc2libHkgb2ZmZXJpbmcgYW4gYXBvbG9neSBvciBjb21wZW5zYXRpb24gdG8gdGhlIGN1c3RvbWVyIGZvciB0aGVpciBpbmNvbnZlbmllbmNlLiwyLFsnY2xlYW5saW5lc3MnXSxJJ20gY29uY2VybmVkIGFib3V0IHRoZSB2ZWhpY2xlJ3MgY2xlYW5saW5lc3MuIEl0IHdhcyBub3QgdXAgdG8gdGhlIHN0YW5kYXJkIEkgZXhwZWN0LixZb3UgYXJlIGFuIGV4cGVydCBjdXN0b21lciBzZXJ2aWNlIGFnZW50LixBZ2VudF82LDE1LFlvdSBhcmUgYW5zd2VyaW5nIHF1ZXN0aW9ucyBhcyBpZiB5b3Ugd2VyZSBhIGh1bWFuLiBEbyBub3QgYnJlYWsgY2hhcmFjdGVyLiwwLDEsMCxncHQtNG8sMC41LEZhbHNlLDEwMDAsMyxXaGF0IGlzIHRoZSBwcmltYXJ5IGlzc3VlIGluIHRoaXMgdGlja2V0PyBUaWNrZXQ6IEknbSBjb25jZXJuZWQgYWJvdXQgdGhlIHZlaGljbGUncyBjbGVhbmxpbmVzcy4gSXQgd2FzIG5vdCB1cCB0byB0aGUgc3RhbmRhcmQgSSBleHBlY3QuLCJZb3UgYXJlIGFuc3dlcmluZyBxdWVzdGlvbnMgYXMgaWYgeW91IHdlcmUgYSBodW1hbi4gRG8gbm90IGJyZWFrIGNoYXJhY3Rlci4gWW91ciB0cmFpdHM6IHsncGVyc29uYSc6ICdZb3UgYXJlIGFuIGV4cGVydCBjdXN0b21lciBzZXJ2aWNlIGFnZW50LicsICd5ZWFyc19leHBlcmllbmNlJzogMTV9IiwiWW91IGFyZSBhbnN3ZXJpbmcgcXVlc3Rpb25zIGFzIGlmIHlvdSB3ZXJlIGEgaHVtYW4uIERvIG5vdCBicmVhayBjaGFyYWN0ZXIuIFlvdXIgdHJhaXRzOiB7J3BlcnNvbmEnOiAnWW91IGFyZSBhbiBleHBlcnQgY3VzdG9tZXIgc2VydmljZSBhZ2VudC4nLCAneWVhcnNfZXhwZXJpZW5jZSc6IDE1fSIsIkNoZWNrIGFsbCBvZiB0aGUgaXNzdWVzIG1lbnRpb25lZCBpbiB0aGlzIHRpY2tldDogSSdtIGNvbmNlcm5lZCBhYm91dCB0aGUgdmVoaWNsZSdzIGNsZWFubGluZXNzLiBJdCB3YXMgbm90IHVwIHRvIHRoZSBzdGFuZGFyZCBJIGV4cGVjdC4KCiAgICAKMDogc2FmZXR5CiAgICAKMTogY2xlYW5saW5lc3MKICAgIAoyOiBkcml2ZXIgcGVyZm9ybWFuY2UKICAgIAozOiBHUFMvcm91dGUKICAgIAo0OiBsb3N0IGl0ZW0KICAgIAo1OiBvdGhlcgogICAgCgoKCgoKClBsZWFzZSByZXNwb25kIG9ubHkgd2l0aCBhIGNvbW1hLXNlcGFyYXRlZCBsaXN0IG9mIHRoZSBjb2RlIG9mIHRoZSBvcHRpb25zIHRoYXQgYXBwbHksIHdpdGggc3F1YXJlIGJyYWNrZXRzLiBFLmcuLCBbMCwgMSwgM10KCgpBZnRlciB0aGUgYW5zd2VyLCB5b3UgY2FuIHB1dCBhIGNvbW1lbnQgZXhwbGFpbmluZyB5b3VyIGNob2ljZSBvbiB0aGUgbmV4dCBsaW5lLiIsIk9uIGEgc2NhbGUgZnJvbSAwIHRvIDUsIHdoYXQgaXMgdGhlIHByaW9yaXR5IGxldmVsIG9mIHRoaXMgdGlja2V0PyBUaWNrZXQ6IEknbSBjb25jZXJuZWQgYWJvdXQgdGhlIHZlaGljbGUncyBjbGVhbmxpbmVzcy4gSXQgd2FzIG5vdCB1cCB0byB0aGUgc3RhbmRhcmQgSSBleHBlY3QuCgowIDogTG93ZXN0CgoxIDogCgoyIDogCgozIDogCgo0IDogCgo1IDogSGlnaGVzdAoKT25seSAxIG9wdGlvbiBtYXkgYmUgc2VsZWN0ZWQuCgpSZXNwb25kIG9ubHkgd2l0aCB0aGUgY29kZSBjb3JyZXNwb25kaW5nIHRvIG9uZSBvZiB0aGUgb3B0aW9ucy4gRS5nLiwgIiIxIiIgb3IgIiI1IiIgYnkgaXRzZWxmLgoKQWZ0ZXIgdGhlIGFuc3dlciwgeW91IGNhbiBwdXQgYSBjb21tZW50IGV4cGxhaW5pbmcgd2h5IHlvdSBjaG9zZSB0aGF0IG9wdGlvbiBvbiB0aGUgbmV4dCBsaW5lLiIsIllvdSBhcmUgYW5zd2VyaW5nIHF1ZXN0aW9ucyBhcyBpZiB5b3Ugd2VyZSBhIGh1bWFuLiBEbyBub3QgYnJlYWsgY2hhcmFjdGVyLiBZb3VyIHRyYWl0czogeydwZXJzb25hJzogJ1lvdSBhcmUgYW4gZXhwZXJ0IGN1c3RvbWVyIHNlcnZpY2UgYWdlbnQuJywgJ3llYXJzX2V4cGVyaWVuY2UnOiAxNX0iLCJZb3UgYXJlIGFuc3dlcmluZyBxdWVzdGlvbnMgYXMgaWYgeW91IHdlcmUgYSBodW1hbi4gRG8gbm90IGJyZWFrIGNoYXJhY3Rlci4gWW91ciB0cmFpdHM6IHsncGVyc29uYSc6ICdZb3UgYXJlIGFuIGV4cGVydCBjdXN0b21lciBzZXJ2aWNlIGFnZW50LicsICd5ZWFyc19leHBlcmllbmNlJzogMTV9IiwiWW91IGFyZSBhbnN3ZXJpbmcgcXVlc3Rpb25zIGFzIGlmIHlvdSB3ZXJlIGEgaHVtYW4uIERvIG5vdCBicmVhayBjaGFyYWN0ZXIuIFlvdXIgdHJhaXRzOiB7J3BlcnNvbmEnOiAnWW91IGFyZSBhbiBleHBlcnQgY3VzdG9tZXIgc2VydmljZSBhZ2VudC4nLCAneWVhcnNfZXhwZXJpZW5jZSc6IDE1fSIsIgpXaGF0IGlzIHRoZSBzZW50aW1lbnQgb2YgdGhpcyB0aWNrZXQ/IFRpY2tldDogSSdtIGNvbmNlcm5lZCBhYm91dCB0aGUgdmVoaWNsZSdzIGNsZWFubGluZXNzLiBJdCB3YXMgbm90IHVwIHRvIHRoZSBzdGFuZGFyZCBJIGV4cGVjdC4KCiAgICAKVmVyeSBwb3NpdGl2ZQogICAgClNvbWV3aGF0IHBvc2l0aXZlCiAgICAKTmV1dHJhbAogICAgClNvbWV3aGF0IG5lZ2F0aXZlCiAgICAKVmVyeSBuZWdhdGl2ZQogICAgCgpPbmx5IDEgb3B0aW9uIG1heSBiZSBzZWxlY3RlZC4KClJlc3BvbmQgb25seSB3aXRoIGEgc3RyaW5nIGNvcnJlc3BvbmRpbmcgdG8gb25lIG9mIHRoZSBvcHRpb25zLgoKCkFmdGVyIHRoZSBhbnN3ZXIsIHlvdSBjYW4gcHV0IGEgY29tbWVudCBleHBsYWluaW5nIHdoeSB5b3UgY2hvc2UgdGhhdCBvcHRpb24gb24gdGhlIG5leHQgbGluZS4iLCIKRG9lcyB0aGUgY3VzdG9tZXIgYXNrIGZvciBhIHJlZnVuZCBpbiB0aGlzIHRpY2tldD8gVGlja2V0OiBJJ20gY29uY2VybmVkIGFib3V0IHRoZSB2ZWhpY2xlJ3MgY2xlYW5saW5lc3MuIEl0IHdhcyBub3QgdXAgdG8gdGhlIHN0YW5kYXJkIEkgZXhwZWN0LgoKICAgIApObwogICAgClllcwogICAgCgpPbmx5IDEgb3B0aW9uIG1heSBiZSBzZWxlY3RlZC4KUGxlYXNlIHJlc3BvbmQgd2l0aCBqdXN0IHlvdXIgYW5zd2VyLiAKCgpBZnRlciB0aGUgYW5zd2VyLCB5b3UgY2FuIHB1dCBhIGNvbW1lbnQgZXhwbGFpbmluZyB5b3VyIHJlc3BvbnNlLiIsIllvdSBhcmUgYW5zd2VyaW5nIHF1ZXN0aW9ucyBhcyBpZiB5b3Ugd2VyZSBhIGh1bWFuLiBEbyBub3QgYnJlYWsgY2hhcmFjdGVyLiBZb3VyIHRyYWl0czogeydwZXJzb25hJzogJ1lvdSBhcmUgYW4gZXhwZXJ0IGN1c3RvbWVyIHNlcnZpY2UgYWdlbnQuJywgJ3llYXJzX2V4cGVyaWVuY2UnOiAxNX0iLCIKSWYgdGhlIHByaW1hcnkgaXNzdWUgaW4gdGhpcyB0aWNrZXQgaXMgc2FmZXR5LCB3YXMgdGhlcmUgYW4gYWNjaWRlbnQgd2hlcmUgc29tZW9uZSB3YXMgaHVydD8gVGlja2V0OiBJJ20gY29uY2VybmVkIGFib3V0IHRoZSB2ZWhpY2xlJ3MgY2xlYW5saW5lc3MuIEl0IHdhcyBub3QgdXAgdG8gdGhlIHN0YW5kYXJkIEkgZXhwZWN0LgoKICAgIApZZXMKICAgIApObwogICAgCk5vdCBhcHBsaWNhYmxlCiAgICAKCk9ubHkgMSBvcHRpb24gbWF5IGJlIHNlbGVjdGVkLgoKUmVzcG9uZCBvbmx5IHdpdGggYSBzdHJpbmcgY29ycmVzcG9uZGluZyB0byBvbmUgb2YgdGhlIG9wdGlvbnMuCgoKQWZ0ZXIgdGhlIGFuc3dlciwgeW91IGNhbiBwdXQgYSBjb21tZW50IGV4cGxhaW5pbmcgd2h5IHlvdSBjaG9zZSB0aGF0IG9wdGlvbiBvbiB0aGUgbmV4dCBsaW5lLiIsMC4wMDA2NSwieydpZCc6ICdjaGF0Y21wbC1BZU9MRFpsdjJjMmJnRWJ0dUgyU3E4azV4OWltRCcsICdjaG9pY2VzJzogW3snZmluaXNoX3JlYXNvbic6ICdzdG9wJywgJ2luZGV4JzogMCwgJ2xvZ3Byb2JzJzogTm9uZSwgJ21lc3NhZ2UnOiB7J2NvbnRlbnQnOiAnTm8gIFxuVGhlIHRpY2tldCBtZW50aW9ucyBjb25jZXJucyBhYm91dCBjbGVhbmxpbmVzcywgbm90IHNhZmV0eSBvciBhbnkgYWNjaWRlbnRzIGludm9sdmluZyBpbmp1cnkuJywgJ3JlZnVzYWwnOiBOb25lLCAncm9sZSc6ICdhc3Npc3RhbnQnLCAnYXVkaW8nOiBOb25lLCAnZnVuY3Rpb25fY2FsbCc6IE5vbmUsICd0b29sX2NhbGxzJzogTm9uZX19XSwgJ2NyZWF0ZWQnOiAxNzM0MTkwMDUxLCAnbW9kZWwnOiAnZ3B0LTRvLTIwMjQtMDgtMDYnLCAnb2JqZWN0JzogJ2NoYXQuY29tcGxldGlvbicsICdzZXJ2aWNlX3RpZXInOiBOb25lLCAnc3lzdGVtX2ZpbmdlcnByaW50JzogJ2ZwX2E3OWQ4ZGFjMWYnLCAndXNhZ2UnOiB7J2NvbXBsZXRpb25fdG9rZW5zJzogMTcsICdwcm9tcHRfdG9rZW5zJzogMTM4LCAndG90YWxfdG9rZW5zJzogMTU1LCAnY29tcGxldGlvbl90b2tlbnNfZGV0YWlscyc6IHsnYWNjZXB0ZWRfcHJlZGljdGlvbl90b2tlbnMnOiAwLCAnYXVkaW9fdG9rZW5zJzogMCwgJ3JlYXNvbmluZ190b2tlbnMnOiAwLCAncmVqZWN0ZWRfcHJlZGljdGlvbl90b2tlbnMnOiAwfSwgJ3Byb21wdF90b2tlbnNfZGV0YWlscyc6IHsnYXVkaW9fdG9rZW5zJzogMCwgJ2NhY2hlZF90b2tlbnMnOiAwfX19IiwieydpZCc6ICdjaGF0Y21wbC1BZU9MQ0lXWU0wTzdMTlBSRE5jSzBSU1k4VHluSScsICdjaG9pY2VzJzogW3snZmluaXNoX3JlYXNvbic6ICdzdG9wJywgJ2luZGV4JzogMCwgJ2xvZ3Byb2JzJzogTm9uZSwgJ21lc3NhZ2UnOiB7J2NvbnRlbnQnOiAnU29tZXdoYXQgbmVnYXRpdmUgIFxuVGhlIGN1c3RvbWVyIGV4cHJlc3NlcyBkaXNzYXRpc2ZhY3Rpb24gd2l0aCB0aGUgY2xlYW5saW5lc3Mgb2YgdGhlIHZlaGljbGUsIGluZGljYXRpbmcgYSBjb25jZXJuIGFuZCBleHBlY3RhdGlvbiBub3QgYmVpbmcgbWV0LCB3aGljaCBzdWdnZXN0cyBhIHNvbWV3aGF0IG5lZ2F0aXZlIHNlbnRpbWVudC4nLCAncmVmdXNhbCc6IE5vbmUsICdyb2xlJzogJ2Fzc2lzdGFudCcsICdhdWRpbyc6IE5vbmUsICdmdW5jdGlvbl9jYWxsJzogTm9uZSwgJ3Rvb2xfY2FsbHMnOiBOb25lfX1dLCAnY3JlYXRlZCc6IDE3MzQxOTAwNTAsICdtb2RlbCc6ICdncHQtNG8tMjAyNC0wOC0wNicsICdvYmplY3QnOiAnY2hhdC5jb21wbGV0aW9uJywgJ3NlcnZpY2VfdGllcic6IE5vbmUsICdzeXN0ZW1fZmluZ2VycHJpbnQnOiAnZnBfOWZhYmE5ZjAzOCcsICd1c2FnZSc6IHsnY29tcGxldGlvbl90b2tlbnMnOiAzMSwgJ3Byb21wdF90b2tlbnMnOiAxMzYsICd0b3RhbF90b2tlbnMnOiAxNjcsICdjb21wbGV0aW9uX3Rva2Vuc19kZXRhaWxzJzogeydhY2NlcHRlZF9wcmVkaWN0aW9uX3Rva2Vucyc6IDAsICdhdWRpb190b2tlbnMnOiAwLCAncmVhc29uaW5nX3Rva2Vucyc6IDAsICdyZWplY3RlZF9wcmVkaWN0aW9uX3Rva2Vucyc6IDB9LCAncHJvbXB0X3Rva2Vuc19kZXRhaWxzJzogeydhdWRpb190b2tlbnMnOiAwLCAnY2FjaGVkX3Rva2Vucyc6IDB9fX0iLDE1MzguNDYxNTM4NDYxNTM4NiwxODg2Ljc5MjQ1MjgzMDE4ODcsInsnaWQnOiAnY2hhdGNtcGwtQWVPTEM5VE5RVm42cHhRbG13Um5iZ0UzZmxWU2snLCAnY2hvaWNlcyc6IFt7J2ZpbmlzaF9yZWFzb24nOiAnc3RvcCcsICdpbmRleCc6IDAsICdsb2dwcm9icyc6IE5vbmUsICdtZXNzYWdlJzogeydjb250ZW50JzogJ1sxXVxuXG5UaGUgaXNzdWUgbWVudGlvbmVkIGluIHRoZSB0aWNrZXQgaXMgc3BlY2lmaWNhbGx5IGFib3V0IGNsZWFubGluZXNzLCB3aGljaCBjb3JyZXNwb25kcyB0byBvcHRpb24gMS4nLCAncmVmdXNhbCc6IE5vbmUsICdyb2xlJzogJ2Fzc2lzdGFudCcsICdhdWRpbyc6IE5vbmUsICdmdW5jdGlvbl9jYWxsJzogTm9uZSwgJ3Rvb2xfY2FsbHMnOiBOb25lfX1dLCAnY3JlYXRlZCc6IDE3MzQxOTAwNTAsICdtb2RlbCc6ICdncHQtNG8tMjAyNC0wOC0wNicsICdvYmplY3QnOiAnY2hhdC5jb21wbGV0aW9uJywgJ3NlcnZpY2VfdGllcic6IE5vbmUsICdzeXN0ZW1fZmluZ2VycHJpbnQnOiAnZnBfYTc5ZDhkYWMxZicsICd1c2FnZSc6IHsnY29tcGxldGlvbl90b2tlbnMnOiAyMSwgJ3Byb21wdF90b2tlbnMnOiAxNTksICd0b3RhbF90b2tlbnMnOiAxODAsICdjb21wbGV0aW9uX3Rva2Vuc19kZXRhaWxzJzogeydhY2NlcHRlZF9wcmVkaWN0aW9uX3Rva2Vucyc6IDAsICdhdWRpb190b2tlbnMnOiAwLCAncmVhc29uaW5nX3Rva2Vucyc6IDAsICdyZWplY3RlZF9wcmVkaWN0aW9uX3Rva2Vucyc6IDB9LCAncHJvbXB0X3Rva2Vuc19kZXRhaWxzJzogeydhdWRpb190b2tlbnMnOiAwLCAnY2FjaGVkX3Rva2Vucyc6IDB9fX0iLDAuMDAwNjg1LDE5NDEuNzQ3NTcyODE1NTMzOSwwLjAwMDUzLDAuMDAwNjA3NSwieydpZCc6ICdjaGF0Y21wbC1BZU9MQzVJcm9pNzZXcWpHcnFKTXh2dTJuRGNxWScsICdjaG9pY2VzJzogW3snZmluaXNoX3JlYXNvbic6ICdzdG9wJywgJ2luZGV4JzogMCwgJ2xvZ3Byb2JzJzogTm9uZSwgJ21lc3NhZ2UnOiB7J2NvbnRlbnQnOiAiIlRoZSBwcmltYXJ5IGlzc3VlIGluIHRoaXMgdGlja2V0IGlzIHRoZSBjdXN0b21lcidzIGNvbmNlcm4gYWJvdXQgdGhlIGNsZWFubGluZXNzIG9mIHRoZSB2ZWhpY2xlLiBUaGV5IGZlZWwgdGhhdCB0aGUgdmVoaWNsZSB3YXMgbm90IGNsZWFuZWQgdG8gdGhlIHN0YW5kYXJkIHRoZXkgZXhwZWN0LiBBZGRyZXNzaW5nIHRoaXMgaXNzdWUgd291bGQgaW52b2x2ZSBlbnN1cmluZyB0aGUgdmVoaWNsZSBpcyB0aG9yb3VnaGx5IGNsZWFuZWQgYW5kIHBvc3NpYmx5IG9mZmVyaW5nIGFuIGFwb2xvZ3kgb3IgY29tcGVuc2F0aW9uIHRvIHRoZSBjdXN0b21lciBmb3IgdGhlaXIgaW5jb252ZW5pZW5jZS4iIiwgJ3JlZnVzYWwnOiBOb25lLCAncm9sZSc6ICdhc3Npc3RhbnQnLCAnYXVkaW8nOiBOb25lLCAnZnVuY3Rpb25fY2FsbCc6IE5vbmUsICd0b29sX2NhbGxzJzogTm9uZX19XSwgJ2NyZWF0ZWQnOiAxNzM0MTkwMDUwLCAnbW9kZWwnOiAnZ3B0LTRvLTIwMjQtMDgtMDYnLCAnb2JqZWN0JzogJ2NoYXQuY29tcGxldGlvbicsICdzZXJ2aWNlX3RpZXInOiBOb25lLCAnc3lzdGVtX2ZpbmdlcnByaW50JzogJ2ZwX2E3OWQ4ZGFjMWYnLCAndXNhZ2UnOiB7J2NvbXBsZXRpb25fdG9rZW5zJzogNTcsICdwcm9tcHRfdG9rZW5zJzogNzksICd0b3RhbF90b2tlbnMnOiAxMzYsICdjb21wbGV0aW9uX3Rva2Vuc19kZXRhaWxzJzogeydhY2NlcHRlZF9wcmVkaWN0aW9uX3Rva2Vucyc6IDAsICdhdWRpb190b2tlbnMnOiAwLCAncmVhc29uaW5nX3Rva2Vucyc6IDAsICdyZWplY3RlZF9wcmVkaWN0aW9uX3Rva2Vucyc6IDB9LCAncHJvbXB0X3Rva2Vuc19kZXRhaWxzJzogeydhdWRpb190b2tlbnMnOiAwLCAnY2FjaGVkX3Rva2Vucyc6IDB9fX0iLDAuMDAwNzY3NSwxMzAyLjkzMTU5NjA5MTIwNTQsInsnaWQnOiAnY2hhdGNtcGwtQWVPTENJa3RxeEZWWEduRDRUejlLMnBtQmRlcEonLCAnY2hvaWNlcyc6IFt7J2ZpbmlzaF9yZWFzb24nOiAnc3RvcCcsICdpbmRleCc6IDAsICdsb2dwcm9icyc6IE5vbmUsICdtZXNzYWdlJzogeydjb250ZW50JzogIiIyICBcbldoaWxlIGNsZWFubGluZXNzIGlzIGltcG9ydGFudCBmb3IgY3VzdG9tZXIgc2F0aXNmYWN0aW9uLCBpdCB0eXBpY2FsbHkgZG9lc24ndCBwb3NlIGFuIGltbWVkaWF0ZSBvcGVyYXRpb25hbCBvciBzYWZldHkgaXNzdWUsIHRodXMgYXNzaWduaW5nIGEgbW9kZXJhdGUgcHJpb3JpdHkgbGV2ZWwuIiIsICdyZWZ1c2FsJzogTm9uZSwgJ3JvbGUnOiAnYXNzaXN0YW50JywgJ2F1ZGlvJzogTm9uZSwgJ2Z1bmN0aW9uX2NhbGwnOiBOb25lLCAndG9vbF9jYWxscyc6IE5vbmV9fV0sICdjcmVhdGVkJzogMTczNDE5MDA1MCwgJ21vZGVsJzogJ2dwdC00by0yMDI0LTA4LTA2JywgJ29iamVjdCc6ICdjaGF0LmNvbXBsZXRpb24nLCAnc2VydmljZV90aWVyJzogTm9uZSwgJ3N5c3RlbV9maW5nZXJwcmludCc6ICdmcF9hNzlkOGRhYzFmJywgJ3VzYWdlJzogeydjb21wbGV0aW9uX3Rva2Vucyc6IDI4LCAncHJvbXB0X3Rva2Vucyc6IDE2MiwgJ3RvdGFsX3Rva2Vucyc6IDE5MCwgJ2NvbXBsZXRpb25fdG9rZW5zX2RldGFpbHMnOiB7J2FjY2VwdGVkX3ByZWRpY3Rpb25fdG9rZW5zJzogMCwgJ2F1ZGlvX3Rva2Vucyc6IDAsICdyZWFzb25pbmdfdG9rZW5zJzogMCwgJ3JlamVjdGVkX3ByZWRpY3Rpb25fdG9rZW5zJzogMH0sICdwcm9tcHRfdG9rZW5zX2RldGFpbHMnOiB7J2F1ZGlvX3Rva2Vucyc6IDAsICdjYWNoZWRfdG9rZW5zJzogMH19fSIsMTY0Ni4wOTA1MzQ5Nzk0MjM5LDE0NTkuODU0MDE0NTk4NTQwMywwLjAwMDUxNSwieydpZCc6ICdjaGF0Y21wbC1BZU9MRGNDYVdGN25CVE5NOEFlYXRjalgydmNzVCcsICdjaG9pY2VzJzogW3snZmluaXNoX3JlYXNvbic6ICdzdG9wJywgJ2luZGV4JzogMCwgJ2xvZ3Byb2JzJzogTm9uZSwgJ21lc3NhZ2UnOiB7J2NvbnRlbnQnOiAiIk5vXG5cblRoZSBjdXN0b21lciBleHByZXNzZXMgYSBjb25jZXJuIGFib3V0IHRoZSB2ZWhpY2xlJ3MgY2xlYW5saW5lc3MgYnV0IGRvZXMgbm90IGV4cGxpY2l0bHkgYXNrIGZvciBhIHJlZnVuZCBpbiB0aGUgdGlja2V0LiIiLCAncmVmdXNhbCc6IE5vbmUsICdyb2xlJzogJ2Fzc2lzdGFudCcsICdhdWRpbyc6IE5vbmUsICdmdW5jdGlvbl9jYWxsJzogTm9uZSwgJ3Rvb2xfY2FsbHMnOiBOb25lfX1dLCAnY3JlYXRlZCc6IDE3MzQxOTAwNTEsICdtb2RlbCc6ICdncHQtNG8tMjAyNC0wOC0wNicsICdvYmplY3QnOiAnY2hhdC5jb21wbGV0aW9uJywgJ3NlcnZpY2VfdGllcic6IE5vbmUsICdzeXN0ZW1fZmluZ2VycHJpbnQnOiAnZnBfYTc5ZDhkYWMxZicsICd1c2FnZSc6IHsnY29tcGxldGlvbl90b2tlbnMnOiAyNCwgJ3Byb21wdF90b2tlbnMnOiAxMTYsICd0b3RhbF90b2tlbnMnOiAxNDAsICdjb21wbGV0aW9uX3Rva2Vuc19kZXRhaWxzJzogeydhY2NlcHRlZF9wcmVkaWN0aW9uX3Rva2Vucyc6IDAsICdhdWRpb190b2tlbnMnOiAwLCAncmVhc29uaW5nX3Rva2Vucyc6IDAsICdyZWplY3RlZF9wcmVkaWN0aW9uX3Rva2Vucyc6IDB9LCAncHJvbXB0X3Rva2Vuc19kZXRhaWxzJzogeydhdWRpb190b2tlbnMnOiAwLCAnY2FjaGVkX3Rva2Vucyc6IDB9fX0iLDAsRG9lcyB0aGUgY3VzdG9tZXIgYXNrIGZvciBhIHJlZnVuZCBpbiB0aGlzIHRpY2tldD8gVGlja2V0OiB7eyB0aWNrZXQgfX0sIklmIHRoZSBwcmltYXJ5IGlzc3VlIGluIHRoaXMgdGlja2V0IGlzIHNhZmV0eSwgd2FzIHRoZXJlIGFuIGFjY2lkZW50IHdoZXJlIHNvbWVvbmUgd2FzIGh1cnQ/IFRpY2tldDoge3sgdGlja2V0IH19IixXaGF0IGlzIHRoZSBwcmltYXJ5IGlzc3VlIGluIHRoaXMgdGlja2V0PyBUaWNrZXQ6IHt7IHRpY2tldCB9fSxDaGVjayBhbGwgb2YgdGhlIGlzc3VlcyBtZW50aW9uZWQgaW4gdGhpcyB0aWNrZXQ6IHt7IHRpY2tldCB9fSwiT24gYSBzY2FsZSBmcm9tIDAgdG8gNSwgd2hhdCBpcyB0aGUgcHJpb3JpdHkgbGV2ZWwgb2YgdGhpcyB0aWNrZXQ/IFRpY2tldDoge3sgdGlja2V0IH19IixXaGF0IGlzIHRoZSBzZW50aW1lbnQgb2YgdGhpcyB0aWNrZXQ/IFRpY2tldDoge3sgdGlja2V0IH19LCJbJ3NhZmV0eScsICdjbGVhbmxpbmVzcycsICdkcml2ZXIgcGVyZm9ybWFuY2UnLCAnR1BTL3JvdXRlJywgJ2xvc3QgaXRlbScsICdvdGhlciddIiwiWydWZXJ5IHBvc2l0aXZlJywgJ1NvbWV3aGF0IHBvc2l0aXZlJywgJ05ldXRyYWwnLCAnU29tZXdoYXQgbmVnYXRpdmUnLCAnVmVyeSBuZWdhdGl2ZSddIiwsIlsnTm8nLCAnWWVzJ10iLCJbJ1llcycsICdObycsICdOb3QgYXBwbGljYWJsZSddIiwiWzAsIDEsIDIsIDMsIDQsIDVdIixsaW5lYXJfc2NhbGUsbXVsdGlwbGVfY2hvaWNlLG11bHRpcGxlX2Nob2ljZSx5ZXNfbm8sZnJlZV90ZXh0LGNoZWNrYm94LCxUaGUgY3VzdG9tZXIgZXhwcmVzc2VzIGEgY29uY2VybiBhYm91dCB0aGUgdmVoaWNsZSdzIGNsZWFubGluZXNzIGJ1dCBkb2VzIG5vdCBleHBsaWNpdGx5IGFzayBmb3IgYSByZWZ1bmQgaW4gdGhlIHRpY2tldC4sIldoaWxlIGNsZWFubGluZXNzIGlzIGltcG9ydGFudCBmb3IgY3VzdG9tZXIgc2F0aXNmYWN0aW9uLCBpdCB0eXBpY2FsbHkgZG9lc24ndCBwb3NlIGFuIGltbWVkaWF0ZSBvcGVyYXRpb25hbCBvciBzYWZldHkgaXNzdWUsIHRodXMgYXNzaWduaW5nIGEgbW9kZXJhdGUgcHJpb3JpdHkgbGV2ZWwuIiwiVGhlIGlzc3VlIG1lbnRpb25lZCBpbiB0aGUgdGlja2V0IGlzIHNwZWNpZmljYWxseSBhYm91dCBjbGVhbmxpbmVzcywgd2hpY2ggY29ycmVzcG9uZHMgdG8gb3B0aW9uIDEuIiwiVGhlIGN1c3RvbWVyIGV4cHJlc3NlcyBkaXNzYXRpc2ZhY3Rpb24gd2l0aCB0aGUgY2xlYW5saW5lc3Mgb2YgdGhlIHZlaGljbGUsIGluZGljYXRpbmcgYSBjb25jZXJuIGFuZCBleHBlY3RhdGlvbiBub3QgYmVpbmcgbWV0LCB3aGljaCBzdWdnZXN0cyBhIHNvbWV3aGF0IG5lZ2F0aXZlIHNlbnRpbWVudC4iLCJUaGUgdGlja2V0IG1lbnRpb25zIGNvbmNlcm5zIGFib3V0IGNsZWFubGluZXNzLCBub3Qgc2FmZXR5IG9yIGFueSBhY2NpZGVudHMgaW52b2x2aW5nIGluanVyeS4iLCJTb21ld2hhdCBuZWdhdGl2ZSAgClRoZSBjdXN0b21lciBleHByZXNzZXMgZGlzc2F0aXNmYWN0aW9uIHdpdGggdGhlIGNsZWFubGluZXNzIG9mIHRoZSB2ZWhpY2xlLCBpbmRpY2F0aW5nIGEgY29uY2VybiBhbmQgZXhwZWN0YXRpb24gbm90IGJlaW5nIG1ldCwgd2hpY2ggc3VnZ2VzdHMgYSBzb21ld2hhdCBuZWdhdGl2ZSBzZW50aW1lbnQuIiwiWzFdCgpUaGUgaXNzdWUgbWVudGlvbmVkIGluIHRoZSB0aWNrZXQgaXMgc3BlY2lmaWNhbGx5IGFib3V0IGNsZWFubGluZXNzLCB3aGljaCBjb3JyZXNwb25kcyB0byBvcHRpb24gMS4iLCJObwoKVGhlIGN1c3RvbWVyIGV4cHJlc3NlcyBhIGNvbmNlcm4gYWJvdXQgdGhlIHZlaGljbGUncyBjbGVhbmxpbmVzcyBidXQgZG9lcyBub3QgZXhwbGljaXRseSBhc2sgZm9yIGEgcmVmdW5kIGluIHRoZSB0aWNrZXQuIixUaGUgcHJpbWFyeSBpc3N1ZSBpbiB0aGlzIHRpY2tldCBpcyB0aGUgY3VzdG9tZXIncyBjb25jZXJuIGFib3V0IHRoZSBjbGVhbmxpbmVzcyBvZiB0aGUgdmVoaWNsZS4gVGhleSBmZWVsIHRoYXQgdGhlIHZlaGljbGUgd2FzIG5vdCBjbGVhbmVkIHRvIHRoZSBzdGFuZGFyZCB0aGV5IGV4cGVjdC4gQWRkcmVzc2luZyB0aGlzIGlzc3VlIHdvdWxkIGludm9sdmUgZW5zdXJpbmcgdGhlIHZlaGljbGUgaXMgdGhvcm91Z2hseSBjbGVhbmVkIGFuZCBwb3NzaWJseSBvZmZlcmluZyBhbiBhcG9sb2d5IG9yIGNvbXBlbnNhdGlvbiB0byB0aGUgY3VzdG9tZXIgZm9yIHRoZWlyIGluY29udmVuaWVuY2UuLCJObyAgClRoZSB0aWNrZXQgbWVudGlvbnMgY29uY2VybnMgYWJvdXQgY2xlYW5saW5lc3MsIG5vdCBzYWZldHkgb3IgYW55IGFjY2lkZW50cyBpbnZvbHZpbmcgaW5qdXJ5LiIsIjIgIApXaGlsZSBjbGVhbmxpbmVzcyBpcyBpbXBvcnRhbnQgZm9yIGN1c3RvbWVyIHNhdGlzZmFjdGlvbiwgaXQgdHlwaWNhbGx5IGRvZXNuJ3QgcG9zZSBhbiBpbW1lZGlhdGUgb3BlcmF0aW9uYWwgb3Igc2FmZXR5IGlzc3VlLCB0aHVzIGFzc2lnbmluZyBhIG1vZGVyYXRlIHByaW9yaXR5IGxldmVsLiINCk5vdCBhcHBsaWNhYmxlLFNvbWV3aGF0IG5lZ2F0aXZlLE5vLFRoZSBwcmltYXJ5IGlzc3VlIGluIHRoaXMgdGlja2V0IGlzIHRoYXQgdGhlIGFwcCBjcmFzaGVzIHdoZW5ldmVyIHRoZSB1c2VyIGF0dGVtcHRzIHRvIGJvb2sgYSByaWRlLiBUaGUgdXNlciBpcyByZXF1ZXN0aW5nIGEgZml4IGZvciB0aGlzIHByb2JsZW0uLDUsWydvdGhlciddLFRoZSBhcHAga2VlcHMgY3Jhc2hpbmcgZXZlcnkgdGltZSBJIHRyeSB0byBib29rIGEgcmlkZS4gUGxlYXNlIGZpeCB0aGlzIGlzc3VlLixZb3UgYXJlIGFuIGV4cGVydCBjdXN0b21lciBzZXJ2aWNlIGFnZW50LixBZ2VudF83LDE1LFlvdSBhcmUgYW5zd2VyaW5nIHF1ZXN0aW9ucyBhcyBpZiB5b3Ugd2VyZSBhIGh1bWFuLiBEbyBub3QgYnJlYWsgY2hhcmFjdGVyLiwwLDEsMCxncHQtNG8sMC41LEZhbHNlLDEwMDAsMyxXaGF0IGlzIHRoZSBwcmltYXJ5IGlzc3VlIGluIHRoaXMgdGlja2V0PyBUaWNrZXQ6IFRoZSBhcHAga2VlcHMgY3Jhc2hpbmcgZXZlcnkgdGltZSBJIHRyeSB0byBib29rIGEgcmlkZS4gUGxlYXNlIGZpeCB0aGlzIGlzc3VlLiwiWW91IGFyZSBhbnN3ZXJpbmcgcXVlc3Rpb25zIGFzIGlmIHlvdSB3ZXJlIGEgaHVtYW4uIERvIG5vdCBicmVhayBjaGFyYWN0ZXIuIFlvdXIgdHJhaXRzOiB7J3BlcnNvbmEnOiAnWW91IGFyZSBhbiBleHBlcnQgY3VzdG9tZXIgc2VydmljZSBhZ2VudC4nLCAneWVhcnNfZXhwZXJpZW5jZSc6IDE1fSIsIllvdSBhcmUgYW5zd2VyaW5nIHF1ZXN0aW9ucyBhcyBpZiB5b3Ugd2VyZSBhIGh1bWFuLiBEbyBub3QgYnJlYWsgY2hhcmFjdGVyLiBZb3VyIHRyYWl0czogeydwZXJzb25hJzogJ1lvdSBhcmUgYW4gZXhwZXJ0IGN1c3RvbWVyIHNlcnZpY2UgYWdlbnQuJywgJ3llYXJzX2V4cGVyaWVuY2UnOiAxNX0iLCJDaGVjayBhbGwgb2YgdGhlIGlzc3VlcyBtZW50aW9uZWQgaW4gdGhpcyB0aWNrZXQ6IFRoZSBhcHAga2VlcHMgY3Jhc2hpbmcgZXZlcnkgdGltZSBJIHRyeSB0byBib29rIGEgcmlkZS4gUGxlYXNlIGZpeCB0aGlzIGlzc3VlLgoKICAgIAowOiBzYWZldHkKICAgIAoxOiBjbGVhbmxpbmVzcwogICAgCjI6IGRyaXZlciBwZXJmb3JtYW5jZQogICAgCjM6IEdQUy9yb3V0ZQogICAgCjQ6IGxvc3QgaXRlbQogICAgCjU6IG90aGVyCiAgICAKCgoKCgoKUGxlYXNlIHJlc3BvbmQgb25seSB3aXRoIGEgY29tbWEtc2VwYXJhdGVkIGxpc3Qgb2YgdGhlIGNvZGUgb2YgdGhlIG9wdGlvbnMgdGhhdCBhcHBseSwgd2l0aCBzcXVhcmUgYnJhY2tldHMuIEUuZy4sIFswLCAxLCAzXQoKCkFmdGVyIHRoZSBhbnN3ZXIsIHlvdSBjYW4gcHV0IGEgY29tbWVudCBleHBsYWluaW5nIHlvdXIgY2hvaWNlIG9uIHRoZSBuZXh0IGxpbmUuIiwiT24gYSBzY2FsZSBmcm9tIDAgdG8gNSwgd2hhdCBpcyB0aGUgcHJpb3JpdHkgbGV2ZWwgb2YgdGhpcyB0aWNrZXQ/IFRpY2tldDogVGhlIGFwcCBrZWVwcyBjcmFzaGluZyBldmVyeSB0aW1lIEkgdHJ5IHRvIGJvb2sgYSByaWRlLiBQbGVhc2UgZml4IHRoaXMgaXNzdWUuCgowIDogTG93ZXN0CgoxIDogCgoyIDogCgozIDogCgo0IDogCgo1IDogSGlnaGVzdAoKT25seSAxIG9wdGlvbiBtYXkgYmUgc2VsZWN0ZWQuCgpSZXNwb25kIG9ubHkgd2l0aCB0aGUgY29kZSBjb3JyZXNwb25kaW5nIHRvIG9uZSBvZiB0aGUgb3B0aW9ucy4gRS5nLiwgIiIxIiIgb3IgIiI1IiIgYnkgaXRzZWxmLgoKQWZ0ZXIgdGhlIGFuc3dlciwgeW91IGNhbiBwdXQgYSBjb21tZW50IGV4cGxhaW5pbmcgd2h5IHlvdSBjaG9zZSB0aGF0IG9wdGlvbiBvbiB0aGUgbmV4dCBsaW5lLiIsIllvdSBhcmUgYW5zd2VyaW5nIHF1ZXN0aW9ucyBhcyBpZiB5b3Ugd2VyZSBhIGh1bWFuLiBEbyBub3QgYnJlYWsgY2hhcmFjdGVyLiBZb3VyIHRyYWl0czogeydwZXJzb25hJzogJ1lvdSBhcmUgYW4gZXhwZXJ0IGN1c3RvbWVyIHNlcnZpY2UgYWdlbnQuJywgJ3llYXJzX2V4cGVyaWVuY2UnOiAxNX0iLCJZb3UgYXJlIGFuc3dlcmluZyBxdWVzdGlvbnMgYXMgaWYgeW91IHdlcmUgYSBodW1hbi4gRG8gbm90IGJyZWFrIGNoYXJhY3Rlci4gWW91ciB0cmFpdHM6IHsncGVyc29uYSc6ICdZb3UgYXJlIGFuIGV4cGVydCBjdXN0b21lciBzZXJ2aWNlIGFnZW50LicsICd5ZWFyc19leHBlcmllbmNlJzogMTV9IiwiWW91IGFyZSBhbnN3ZXJpbmcgcXVlc3Rpb25zIGFzIGlmIHlvdSB3ZXJlIGEgaHVtYW4uIERvIG5vdCBicmVhayBjaGFyYWN0ZXIuIFlvdXIgdHJhaXRzOiB7J3BlcnNvbmEnOiAnWW91IGFyZSBhbiBleHBlcnQgY3VzdG9tZXIgc2VydmljZSBhZ2VudC4nLCAneWVhcnNfZXhwZXJpZW5jZSc6IDE1fSIsIgpXaGF0IGlzIHRoZSBzZW50aW1lbnQgb2YgdGhpcyB0aWNrZXQ/IFRpY2tldDogVGhlIGFwcCBrZWVwcyBjcmFzaGluZyBldmVyeSB0aW1lIEkgdHJ5IHRvIGJvb2sgYSByaWRlLiBQbGVhc2UgZml4IHRoaXMgaXNzdWUuCgogICAgClZlcnkgcG9zaXRpdmUKICAgIApTb21ld2hhdCBwb3NpdGl2ZQogICAgCk5ldXRyYWwKICAgIApTb21ld2hhdCBuZWdhdGl2ZQogICAgClZlcnkgbmVnYXRpdmUKICAgIAoKT25seSAxIG9wdGlvbiBtYXkgYmUgc2VsZWN0ZWQuCgpSZXNwb25kIG9ubHkgd2l0aCBhIHN0cmluZyBjb3JyZXNwb25kaW5nIHRvIG9uZSBvZiB0aGUgb3B0aW9ucy4KCgpBZnRlciB0aGUgYW5zd2VyLCB5b3UgY2FuIHB1dCBhIGNvbW1lbnQgZXhwbGFpbmluZyB3aHkgeW91IGNob3NlIHRoYXQgb3B0aW9uIG9uIHRoZSBuZXh0IGxpbmUuIiwiCkRvZXMgdGhlIGN1c3RvbWVyIGFzayBmb3IgYSByZWZ1bmQgaW4gdGhpcyB0aWNrZXQ/IFRpY2tldDogVGhlIGFwcCBrZWVwcyBjcmFzaGluZyBldmVyeSB0aW1lIEkgdHJ5IHRvIGJvb2sgYSByaWRlLiBQbGVhc2UgZml4IHRoaXMgaXNzdWUuCgogICAgCk5vCiAgICAKWWVzCiAgICAKCk9ubHkgMSBvcHRpb24gbWF5IGJlIHNlbGVjdGVkLgpQbGVhc2UgcmVzcG9uZCB3aXRoIGp1c3QgeW91ciBhbnN3ZXIuIAoKCkFmdGVyIHRoZSBhbnN3ZXIsIHlvdSBjYW4gcHV0IGEgY29tbWVudCBleHBsYWluaW5nIHlvdXIgcmVzcG9uc2UuIiwiWW91IGFyZSBhbnN3ZXJpbmcgcXVlc3Rpb25zIGFzIGlmIHlvdSB3ZXJlIGEgaHVtYW4uIERvIG5vdCBicmVhayBjaGFyYWN0ZXIuIFlvdXIgdHJhaXRzOiB7J3BlcnNvbmEnOiAnWW91IGFyZSBhbiBleHBlcnQgY3VzdG9tZXIgc2VydmljZSBhZ2VudC4nLCAneWVhcnNfZXhwZXJpZW5jZSc6IDE1fSIsIgpJZiB0aGUgcHJpbWFyeSBpc3N1ZSBpbiB0aGlzIHRpY2tldCBpcyBzYWZldHksIHdhcyB0aGVyZSBhbiBhY2NpZGVudCB3aGVyZSBzb21lb25lIHdhcyBodXJ0PyBUaWNrZXQ6IFRoZSBhcHAga2VlcHMgY3Jhc2hpbmcgZXZlcnkgdGltZSBJIHRyeSB0byBib29rIGEgcmlkZS4gUGxlYXNlIGZpeCB0aGlzIGlzc3VlLgoKICAgIApZZXMKICAgIApObwogICAgCk5vdCBhcHBsaWNhYmxlCiAgICAKCk9ubHkgMSBvcHRpb24gbWF5IGJlIHNlbGVjdGVkLgoKUmVzcG9uZCBvbmx5IHdpdGggYSBzdHJpbmcgY29ycmVzcG9uZGluZyB0byBvbmUgb2YgdGhlIG9wdGlvbnMuCgoKQWZ0ZXIgdGhlIGFuc3dlciwgeW91IGNhbiBwdXQgYSBjb21tZW50IGV4cGxhaW5pbmcgd2h5IHlvdSBjaG9zZSB0aGF0IG9wdGlvbiBvbiB0aGUgbmV4dCBsaW5lLiIsMC4wMDA3MywieydpZCc6ICdjaGF0Y21wbC1BZU9MQ0xUR0NaYnFKVHYyajJZZDdXSW40cXlQdCcsICdjaG9pY2VzJzogW3snZmluaXNoX3JlYXNvbic6ICdzdG9wJywgJ2luZGV4JzogMCwgJ2xvZ3Byb2JzJzogTm9uZSwgJ21lc3NhZ2UnOiB7J2NvbnRlbnQnOiAnTm90IGFwcGxpY2FibGVcblxuVGhlIHRpY2tldCBkb2VzIG5vdCBtZW50aW9uIGFueSBhY2NpZGVudCBvciBpbmp1cnksIG9ubHkgYW4gYXBwIGZ1bmN0aW9uYWxpdHkgaXNzdWUuJywgJ3JlZnVzYWwnOiBOb25lLCAncm9sZSc6ICdhc3Npc3RhbnQnLCAnYXVkaW8nOiBOb25lLCAnZnVuY3Rpb25fY2FsbCc6IE5vbmUsICd0b29sX2NhbGxzJzogTm9uZX19XSwgJ2NyZWF0ZWQnOiAxNzM0MTkwMDUwLCAnbW9kZWwnOiAnZ3B0LTRvLTIwMjQtMDgtMDYnLCAnb2JqZWN0JzogJ2NoYXQuY29tcGxldGlvbicsICdzZXJ2aWNlX3RpZXInOiBOb25lLCAnc3lzdGVtX2ZpbmdlcnByaW50JzogJ2ZwXzlmYWJhOWYwMzgnLCAndXNhZ2UnOiB7J2NvbXBsZXRpb25fdG9rZW5zJzogMTksICdwcm9tcHRfdG9rZW5zJzogMTM4LCAndG90YWxfdG9rZW5zJzogMTU3LCAnY29tcGxldGlvbl90b2tlbnNfZGV0YWlscyc6IHsnYWNjZXB0ZWRfcHJlZGljdGlvbl90b2tlbnMnOiAwLCAnYXVkaW9fdG9rZW5zJzogMCwgJ3JlYXNvbmluZ190b2tlbnMnOiAwLCAncmVqZWN0ZWRfcHJlZGljdGlvbl90b2tlbnMnOiAwfSwgJ3Byb21wdF90b2tlbnNfZGV0YWlscyc6IHsnYXVkaW9fdG9rZW5zJzogMCwgJ2NhY2hlZF90b2tlbnMnOiAwfX19IiwieydpZCc6ICdjaGF0Y21wbC1BZU9MQzhoVk1xaUVDT3lZY0RRdzU2T084V2lGZycsICdjaG9pY2VzJzogW3snZmluaXNoX3JlYXNvbic6ICdzdG9wJywgJ2luZGV4JzogMCwgJ2xvZ3Byb2JzJzogTm9uZSwgJ21lc3NhZ2UnOiB7J2NvbnRlbnQnOiAnU29tZXdoYXQgbmVnYXRpdmVcblxuVGhlIHNlbnRpbWVudCBpcyBzb21ld2hhdCBuZWdhdGl2ZSBiZWNhdXNlIHRoZSBjdXN0b21lciBpcyBleHBlcmllbmNpbmcgZnJ1c3RyYXRpb24gd2l0aCB0aGUgYXBwIGNyYXNoaW5nLCBidXQgdGhleSBhcmUgc3RpbGwgcG9saXRlbHkgYXNraW5nIGZvciB0aGUgaXNzdWUgdG8gYmUgZml4ZWQgcmF0aGVyIHRoYW4gZXhwcmVzc2luZyBhbmdlciBvciBkaXNzYXRpc2ZhY3Rpb24uJywgJ3JlZnVzYWwnOiBOb25lLCAncm9sZSc6ICdhc3Npc3RhbnQnLCAnYXVkaW8nOiBOb25lLCAnZnVuY3Rpb25fY2FsbCc6IE5vbmUsICd0b29sX2NhbGxzJzogTm9uZX19XSwgJ2NyZWF0ZWQnOiAxNzM0MTkwMDUwLCAnbW9kZWwnOiAnZ3B0LTRvLTIwMjQtMDgtMDYnLCAnb2JqZWN0JzogJ2NoYXQuY29tcGxldGlvbicsICdzZXJ2aWNlX3RpZXInOiBOb25lLCAnc3lzdGVtX2ZpbmdlcnByaW50JzogJ2ZwX2E3OWQ4ZGFjMWYnLCAndXNhZ2UnOiB7J2NvbXBsZXRpb25fdG9rZW5zJzogMzksICdwcm9tcHRfdG9rZW5zJzogMTM2LCAndG90YWxfdG9rZW5zJzogMTc1LCAnY29tcGxldGlvbl90b2tlbnNfZGV0YWlscyc6IHsnYWNjZXB0ZWRfcHJlZGljdGlvbl90b2tlbnMnOiAwLCAnYXVkaW9fdG9rZW5zJzogMCwgJ3JlYXNvbmluZ190b2tlbnMnOiAwLCAncmVqZWN0ZWRfcHJlZGljdGlvbl90b2tlbnMnOiAwfSwgJ3Byb21wdF90b2tlbnNfZGV0YWlscyc6IHsnYXVkaW9fdG9rZW5zJzogMCwgJ2NhY2hlZF90b2tlbnMnOiAwfX19IiwxMzY5Ljg2MzAxMzY5ODYzMDMsMjE3My45MTMwNDM0NzgyNjEsInsnaWQnOiAnY2hhdGNtcGwtQWVPTENldmc1Nkk4blBpdlFxd01VbnlzYXR5ekQnLCAnY2hvaWNlcyc6IFt7J2ZpbmlzaF9yZWFzb24nOiAnc3RvcCcsICdpbmRleCc6IDAsICdsb2dwcm9icyc6IE5vbmUsICdtZXNzYWdlJzogeydjb250ZW50JzogJ1s1XSAgXG5UaGUgaXNzdWUgbWVudGlvbmVkIGluIHRoZSB0aWNrZXQgaXMgcmVsYXRlZCB0byB0aGUgYXBwIGNyYXNoaW5nLCB3aGljaCBmaXRzIHVuZGVyICIib3RoZXIiIiBhcyBpdCBkb2VzblwndCByZWxhdGUgdG8gdGhlIHNwZWNpZmljIGNhdGVnb3JpZXMgbGlrZSBzYWZldHksIGNsZWFubGluZXNzLCBkcml2ZXIgcGVyZm9ybWFuY2UsIEdQUy9yb3V0ZSwgb3IgbG9zdCBpdGVtLicsICdyZWZ1c2FsJzogTm9uZSwgJ3JvbGUnOiAnYXNzaXN0YW50JywgJ2F1ZGlvJzogTm9uZSwgJ2Z1bmN0aW9uX2NhbGwnOiBOb25lLCAndG9vbF9jYWxscyc6IE5vbmV9fV0sICdjcmVhdGVkJzogMTczNDE5MDA1MCwgJ21vZGVsJzogJ2dwdC00by0yMDI0LTA4LTA2JywgJ29iamVjdCc6ICdjaGF0LmNvbXBsZXRpb24nLCAnc2VydmljZV90aWVyJzogTm9uZSwgJ3N5c3RlbV9maW5nZXJwcmludCc6ICdmcF85ZmFiYTlmMDM4JywgJ3VzYWdlJzogeydjb21wbGV0aW9uX3Rva2Vucyc6IDQ3LCAncHJvbXB0X3Rva2Vucyc6IDE1OSwgJ3RvdGFsX3Rva2Vucyc6IDIwNiwgJ2NvbXBsZXRpb25fdG9rZW5zX2RldGFpbHMnOiB7J2FjY2VwdGVkX3ByZWRpY3Rpb25fdG9rZW5zJzogMCwgJ2F1ZGlvX3Rva2Vucyc6IDAsICdyZWFzb25pbmdfdG9rZW5zJzogMCwgJ3JlamVjdGVkX3ByZWRpY3Rpb25fdG9rZW5zJzogMH0sICdwcm9tcHRfdG9rZW5zX2RldGFpbHMnOiB7J2F1ZGlvX3Rva2Vucyc6IDAsICdjYWNoZWRfdG9rZW5zJzogMH19fSIsMC4wMDA3MzUsMTg2OS4xNTg4Nzg1MDQ2NzI5LDAuMDAwNDYsMC4wMDA4Njc1LCJ7J2lkJzogJ2NoYXRjbXBsLUFlT0xEZ0VFd0NPWG03VFJVQWt1bE9ESnBISkt6JywgJ2Nob2ljZXMnOiBbeydmaW5pc2hfcmVhc29uJzogJ3N0b3AnLCAnaW5kZXgnOiAwLCAnbG9ncHJvYnMnOiBOb25lLCAnbWVzc2FnZSc6IHsnY29udGVudCc6ICdUaGUgcHJpbWFyeSBpc3N1ZSBpbiB0aGlzIHRpY2tldCBpcyB0aGF0IHRoZSBhcHAgY3Jhc2hlcyB3aGVuZXZlciB0aGUgdXNlciBhdHRlbXB0cyB0byBib29rIGEgcmlkZS4gVGhlIHVzZXIgaXMgcmVxdWVzdGluZyBhIGZpeCBmb3IgdGhpcyBwcm9ibGVtLicsICdyZWZ1c2FsJzogTm9uZSwgJ3JvbGUnOiAnYXNzaXN0YW50JywgJ2F1ZGlvJzogTm9uZSwgJ2Z1bmN0aW9uX2NhbGwnOiBOb25lLCAndG9vbF9jYWxscyc6IE5vbmV9fV0sICdjcmVhdGVkJzogMTczNDE5MDA1MSwgJ21vZGVsJzogJ2dwdC00by0yMDI0LTA4LTA2JywgJ29iamVjdCc6ICdjaGF0LmNvbXBsZXRpb24nLCAnc2VydmljZV90aWVyJzogTm9uZSwgJ3N5c3RlbV9maW5nZXJwcmludCc6ICdmcF9hMzRiMjcyN2Q2JywgJ3VzYWdlJzogeydjb21wbGV0aW9uX3Rva2Vucyc6IDMwLCAncHJvbXB0X3Rva2Vucyc6IDc5LCAndG90YWxfdG9rZW5zJzogMTA5LCAnY29tcGxldGlvbl90b2tlbnNfZGV0YWlscyc6IHsnYWNjZXB0ZWRfcHJlZGljdGlvbl90b2tlbnMnOiAwLCAnYXVkaW9fdG9rZW5zJzogMCwgJ3JlYXNvbmluZ190b2tlbnMnOiAwLCAncmVqZWN0ZWRfcHJlZGljdGlvbl90b2tlbnMnOiAwfSwgJ3Byb21wdF90b2tlbnNfZGV0YWlscyc6IHsnYXVkaW9fdG9rZW5zJzogMCwgJ2NhY2hlZF90b2tlbnMnOiAwfX19IiwwLjAwMDQ5NzUsMjAxMC4wNTAyNTEyNTYyODE0LCJ7J2lkJzogJ2NoYXRjbXBsLUFlT0xDTmVQSjdDWEFXSVdyVUpJVWZ0M3Y0RUg1JywgJ2Nob2ljZXMnOiBbeydmaW5pc2hfcmVhc29uJzogJ3N0b3AnLCAnaW5kZXgnOiAwLCAnbG9ncHJvYnMnOiBOb25lLCAnbWVzc2FnZSc6IHsnY29udGVudCc6ICc1ICBcblRoaXMgaXNzdWUgZGlyZWN0bHkgYWZmZWN0cyB0aGUgY29yZSBmdW5jdGlvbmFsaXR5IG9mIHRoZSBhcHAsIHByZXZlbnRpbmcgdXNlcnMgZnJvbSBib29raW5nIHJpZGVzLCB3aGljaCBpcyBsaWtlbHkgdG8gcmVzdWx0IGluIHNpZ25pZmljYW50IHVzZXIgZGlzc2F0aXNmYWN0aW9uIGFuZCBwb3RlbnRpYWwgcmV2ZW51ZSBsb3NzLicsICdyZWZ1c2FsJzogTm9uZSwgJ3JvbGUnOiAnYXNzaXN0YW50JywgJ2F1ZGlvJzogTm9uZSwgJ2Z1bmN0aW9uX2NhbGwnOiBOb25lLCAndG9vbF9jYWxscyc6IE5vbmV9fV0sICdjcmVhdGVkJzogMTczNDE5MDA1MCwgJ21vZGVsJzogJ2dwdC00by0yMDI0LTA4LTA2JywgJ29iamVjdCc6ICdjaGF0LmNvbXBsZXRpb24nLCAnc2VydmljZV90aWVyJzogTm9uZSwgJ3N5c3RlbV9maW5nZXJwcmludCc6ICdmcF9mNzg1ZWI1ZjQ3JywgJ3VzYWdlJzogeydjb21wbGV0aW9uX3Rva2Vucyc6IDMzLCAncHJvbXB0X3Rva2Vucyc6IDE2MiwgJ3RvdGFsX3Rva2Vucyc6IDE5NSwgJ2NvbXBsZXRpb25fdG9rZW5zX2RldGFpbHMnOiB7J2FjY2VwdGVkX3ByZWRpY3Rpb25fdG9rZW5zJzogMCwgJ2F1ZGlvX3Rva2Vucyc6IDAsICdyZWFzb25pbmdfdG9rZW5zJzogMCwgJ3JlamVjdGVkX3ByZWRpY3Rpb25fdG9rZW5zJzogMH0sICdwcm9tcHRfdG9rZW5zX2RldGFpbHMnOiB7J2F1ZGlvX3Rva2Vucyc6IDAsICdjYWNoZWRfdG9rZW5zJzogMH19fSIsMTE1Mi43Mzc3NTIxNjEzODMyLDEzNjAuNTQ0MjE3Njg3MDc1LDAuMDAwNTM1LCJ7J2lkJzogJ2NoYXRjbXBsLUFlT0xDak5LMWZOOXpFdXNpV3Z1Y3JmRVg0dkVFJywgJ2Nob2ljZXMnOiBbeydmaW5pc2hfcmVhc29uJzogJ3N0b3AnLCAnaW5kZXgnOiAwLCAnbG9ncHJvYnMnOiBOb25lLCAnbWVzc2FnZSc6IHsnY29udGVudCc6ICdOb1xuXG5UaGUgY3VzdG9tZXIgaXMgcmVxdWVzdGluZyBhIGZpeCBmb3IgdGhlIGFwcCBpc3N1ZSwgbm90IGEgcmVmdW5kLicsICdyZWZ1c2FsJzogTm9uZSwgJ3JvbGUnOiAnYXNzaXN0YW50JywgJ2F1ZGlvJzogTm9uZSwgJ2Z1bmN0aW9uX2NhbGwnOiBOb25lLCAndG9vbF9jYWxscyc6IE5vbmV9fV0sICdjcmVhdGVkJzogMTczNDE5MDA1MCwgJ21vZGVsJzogJ2dwdC00by0yMDI0LTA4LTA2JywgJ29iamVjdCc6ICdjaGF0LmNvbXBsZXRpb24nLCAnc2VydmljZV90aWVyJzogTm9uZSwgJ3N5c3RlbV9maW5nZXJwcmludCc6ICdmcF85ZmFiYTlmMDM4JywgJ3VzYWdlJzogeydjb21wbGV0aW9uX3Rva2Vucyc6IDE3LCAncHJvbXB0X3Rva2Vucyc6IDExNiwgJ3RvdGFsX3Rva2Vucyc6IDEzMywgJ2NvbXBsZXRpb25fdG9rZW5zX2RldGFpbHMnOiB7J2FjY2VwdGVkX3ByZWRpY3Rpb25fdG9rZW5zJzogMCwgJ2F1ZGlvX3Rva2Vucyc6IDAsICdyZWFzb25pbmdfdG9rZW5zJzogMCwgJ3JlamVjdGVkX3ByZWRpY3Rpb25fdG9rZW5zJzogMH0sICdwcm9tcHRfdG9rZW5zX2RldGFpbHMnOiB7J2F1ZGlvX3Rva2Vucyc6IDAsICdjYWNoZWRfdG9rZW5zJzogMH19fSIsMCxEb2VzIHRoZSBjdXN0b21lciBhc2sgZm9yIGEgcmVmdW5kIGluIHRoaXMgdGlja2V0PyBUaWNrZXQ6IHt7IHRpY2tldCB9fSwiSWYgdGhlIHByaW1hcnkgaXNzdWUgaW4gdGhpcyB0aWNrZXQgaXMgc2FmZXR5LCB3YXMgdGhlcmUgYW4gYWNjaWRlbnQgd2hlcmUgc29tZW9uZSB3YXMgaHVydD8gVGlja2V0OiB7eyB0aWNrZXQgfX0iLFdoYXQgaXMgdGhlIHByaW1hcnkgaXNzdWUgaW4gdGhpcyB0aWNrZXQ/IFRpY2tldDoge3sgdGlja2V0IH19LENoZWNrIGFsbCBvZiB0aGUgaXNzdWVzIG1lbnRpb25lZCBpbiB0aGlzIHRpY2tldDoge3sgdGlja2V0IH19LCJPbiBhIHNjYWxlIGZyb20gMCB0byA1LCB3aGF0IGlzIHRoZSBwcmlvcml0eSBsZXZlbCBvZiB0aGlzIHRpY2tldD8gVGlja2V0OiB7eyB0aWNrZXQgfX0iLFdoYXQgaXMgdGhlIHNlbnRpbWVudCBvZiB0aGlzIHRpY2tldD8gVGlja2V0OiB7eyB0aWNrZXQgfX0sIlsnc2FmZXR5JywgJ2NsZWFubGluZXNzJywgJ2RyaXZlciBwZXJmb3JtYW5jZScsICdHUFMvcm91dGUnLCAnbG9zdCBpdGVtJywgJ290aGVyJ10iLCJbJ1ZlcnkgcG9zaXRpdmUnLCAnU29tZXdoYXQgcG9zaXRpdmUnLCAnTmV1dHJhbCcsICdTb21ld2hhdCBuZWdhdGl2ZScsICdWZXJ5IG5lZ2F0aXZlJ10iLCwiWydObycsICdZZXMnXSIsIlsnWWVzJywgJ05vJywgJ05vdCBhcHBsaWNhYmxlJ10iLCJbMCwgMSwgMiwgMywgNCwgNV0iLGxpbmVhcl9zY2FsZSxtdWx0aXBsZV9jaG9pY2UsbXVsdGlwbGVfY2hvaWNlLHllc19ubyxmcmVlX3RleHQsY2hlY2tib3gsLCJUaGUgY3VzdG9tZXIgaXMgcmVxdWVzdGluZyBhIGZpeCBmb3IgdGhlIGFwcCBpc3N1ZSwgbm90IGEgcmVmdW5kLiIsIlRoaXMgaXNzdWUgZGlyZWN0bHkgYWZmZWN0cyB0aGUgY29yZSBmdW5jdGlvbmFsaXR5IG9mIHRoZSBhcHAsIHByZXZlbnRpbmcgdXNlcnMgZnJvbSBib29raW5nIHJpZGVzLCB3aGljaCBpcyBsaWtlbHkgdG8gcmVzdWx0IGluIHNpZ25pZmljYW50IHVzZXIgZGlzc2F0aXNmYWN0aW9uIGFuZCBwb3RlbnRpYWwgcmV2ZW51ZSBsb3NzLiIsIlRoZSBpc3N1ZSBtZW50aW9uZWQgaW4gdGhlIHRpY2tldCBpcyByZWxhdGVkIHRvIHRoZSBhcHAgY3Jhc2hpbmcsIHdoaWNoIGZpdHMgdW5kZXIgIiJvdGhlciIiIGFzIGl0IGRvZXNuJ3QgcmVsYXRlIHRvIHRoZSBzcGVjaWZpYyBjYXRlZ29yaWVzIGxpa2Ugc2FmZXR5LCBjbGVhbmxpbmVzcywgZHJpdmVyIHBlcmZvcm1hbmNlLCBHUFMvcm91dGUsIG9yIGxvc3QgaXRlbS4iLCJUaGUgc2VudGltZW50IGlzIHNvbWV3aGF0IG5lZ2F0aXZlIGJlY2F1c2UgdGhlIGN1c3RvbWVyIGlzIGV4cGVyaWVuY2luZyBmcnVzdHJhdGlvbiB3aXRoIHRoZSBhcHAgY3Jhc2hpbmcsIGJ1dCB0aGV5IGFyZSBzdGlsbCBwb2xpdGVseSBhc2tpbmcgZm9yIHRoZSBpc3N1ZSB0byBiZSBmaXhlZCByYXRoZXIgdGhhbiBleHByZXNzaW5nIGFuZ2VyIG9yIGRpc3NhdGlzZmFjdGlvbi4iLCJUaGUgdGlja2V0IGRvZXMgbm90IG1lbnRpb24gYW55IGFjY2lkZW50IG9yIGluanVyeSwgb25seSBhbiBhcHAgZnVuY3Rpb25hbGl0eSBpc3N1ZS4iLCJTb21ld2hhdCBuZWdhdGl2ZQoKVGhlIHNlbnRpbWVudCBpcyBzb21ld2hhdCBuZWdhdGl2ZSBiZWNhdXNlIHRoZSBjdXN0b21lciBpcyBleHBlcmllbmNpbmcgZnJ1c3RyYXRpb24gd2l0aCB0aGUgYXBwIGNyYXNoaW5nLCBidXQgdGhleSBhcmUgc3RpbGwgcG9saXRlbHkgYXNraW5nIGZvciB0aGUgaXNzdWUgdG8gYmUgZml4ZWQgcmF0aGVyIHRoYW4gZXhwcmVzc2luZyBhbmdlciBvciBkaXNzYXRpc2ZhY3Rpb24uIiwiWzVdICAKVGhlIGlzc3VlIG1lbnRpb25lZCBpbiB0aGUgdGlja2V0IGlzIHJlbGF0ZWQgdG8gdGhlIGFwcCBjcmFzaGluZywgd2hpY2ggZml0cyB1bmRlciAiIm90aGVyIiIgYXMgaXQgZG9lc24ndCByZWxhdGUgdG8gdGhlIHNwZWNpZmljIGNhdGVnb3JpZXMgbGlrZSBzYWZldHksIGNsZWFubGluZXNzLCBkcml2ZXIgcGVyZm9ybWFuY2UsIEdQUy9yb3V0ZSwgb3IgbG9zdCBpdGVtLiIsIk5vCgpUaGUgY3VzdG9tZXIgaXMgcmVxdWVzdGluZyBhIGZpeCBmb3IgdGhlIGFwcCBpc3N1ZSwgbm90IGEgcmVmdW5kLiIsVGhlIHByaW1hcnkgaXNzdWUgaW4gdGhpcyB0aWNrZXQgaXMgdGhhdCB0aGUgYXBwIGNyYXNoZXMgd2hlbmV2ZXIgdGhlIHVzZXIgYXR0ZW1wdHMgdG8gYm9vayBhIHJpZGUuIFRoZSB1c2VyIGlzIHJlcXVlc3RpbmcgYSBmaXggZm9yIHRoaXMgcHJvYmxlbS4sIk5vdCBhcHBsaWNhYmxlCgpUaGUgdGlja2V0IGRvZXMgbm90IG1lbnRpb24gYW55IGFjY2lkZW50IG9yIGluanVyeSwgb25seSBhbiBhcHAgZnVuY3Rpb25hbGl0eSBpc3N1ZS4iLCI1ICAKVGhpcyBpc3N1ZSBkaXJlY3RseSBhZmZlY3RzIHRoZSBjb3JlIGZ1bmN0aW9uYWxpdHkgb2YgdGhlIGFwcCwgcHJldmVudGluZyB1c2VycyBmcm9tIGJvb2tpbmcgcmlkZXMsIHdoaWNoIGlzIGxpa2VseSB0byByZXN1bHQgaW4gc2lnbmlmaWNhbnQgdXNlciBkaXNzYXRpc2ZhY3Rpb24gYW5kIHBvdGVudGlhbCByZXZlbnVlIGxvc3MuIg0KTm90IGFwcGxpY2FibGUsVmVyeSBwb3NpdGl2ZSxObywiVGhlIHByaW1hcnkgaXNzdWUgaW4gdGhpcyB0aWNrZXQgaXMgbm90IGEgY29tcGxhaW50IG9yIHByb2JsZW0sIGJ1dCByYXRoZXIgcG9zaXRpdmUgZmVlZGJhY2suIFRoZSBjdXN0b21lciBpcyBleHByZXNzaW5nIHNhdGlzZmFjdGlvbiB3aXRoIHRoZWlyIGRyaXZlciwgaGlnaGxpZ2h0aW5nIHRoZSBkcml2ZXIncyBzYWZlIGRyaXZpbmcsIHBvbGl0ZW5lc3MsIGFuZCB0aGUgY2xlYW5saW5lc3Mgb2YgdGhlIGNhci4gVGhpcyBpcyBhIGNvbW1lbmRhdGlvbiByYXRoZXIgdGhhbiBhbiBpc3N1ZS4iLDAsIlsnc2FmZXR5JywgJ2NsZWFubGluZXNzJywgJ2RyaXZlciBwZXJmb3JtYW5jZSddIiwiTXkgZHJpdmVyIHdhcyBleGNlcHRpb25hbCAtIHNhZmUgZHJpdmluZywgcG9saXRlLCBhbmQgdGhlIGNhciB3YXMgc3BvdGxlc3MuIEt1ZG9zISIsWW91IGFyZSBhbiBleHBlcnQgY3VzdG9tZXIgc2VydmljZSBhZ2VudC4sQWdlbnRfOCwxNSxZb3UgYXJlIGFuc3dlcmluZyBxdWVzdGlvbnMgYXMgaWYgeW91IHdlcmUgYSBodW1hbi4gRG8gbm90IGJyZWFrIGNoYXJhY3Rlci4sMCwxLDAsZ3B0LTRvLDAuNSxGYWxzZSwxMDAwLDMsIldoYXQgaXMgdGhlIHByaW1hcnkgaXNzdWUgaW4gdGhpcyB0aWNrZXQ/IFRpY2tldDogTXkgZHJpdmVyIHdhcyBleGNlcHRpb25hbCAtIHNhZmUgZHJpdmluZywgcG9saXRlLCBhbmQgdGhlIGNhciB3YXMgc3BvdGxlc3MuIEt1ZG9zISIsIllvdSBhcmUgYW5zd2VyaW5nIHF1ZXN0aW9ucyBhcyBpZiB5b3Ugd2VyZSBhIGh1bWFuLiBEbyBub3QgYnJlYWsgY2hhcmFjdGVyLiBZb3VyIHRyYWl0czogeydwZXJzb25hJzogJ1lvdSBhcmUgYW4gZXhwZXJ0IGN1c3RvbWVyIHNlcnZpY2UgYWdlbnQuJywgJ3llYXJzX2V4cGVyaWVuY2UnOiAxNX0iLCJZb3UgYXJlIGFuc3dlcmluZyBxdWVzdGlvbnMgYXMgaWYgeW91IHdlcmUgYSBodW1hbi4gRG8gbm90IGJyZWFrIGNoYXJhY3Rlci4gWW91ciB0cmFpdHM6IHsncGVyc29uYSc6ICdZb3UgYXJlIGFuIGV4cGVydCBjdXN0b21lciBzZXJ2aWNlIGFnZW50LicsICd5ZWFyc19leHBlcmllbmNlJzogMTV9IiwiQ2hlY2sgYWxsIG9mIHRoZSBpc3N1ZXMgbWVudGlvbmVkIGluIHRoaXMgdGlja2V0OiBNeSBkcml2ZXIgd2FzIGV4Y2VwdGlvbmFsIC0gc2FmZSBkcml2aW5nLCBwb2xpdGUsIGFuZCB0aGUgY2FyIHdhcyBzcG90bGVzcy4gS3Vkb3MhCgogICAgCjA6IHNhZmV0eQogICAgCjE6IGNsZWFubGluZXNzCiAgICAKMjogZHJpdmVyIHBlcmZvcm1hbmNlCiAgICAKMzogR1BTL3JvdXRlCiAgICAKNDogbG9zdCBpdGVtCiAgICAKNTogb3RoZXIKICAgIAoKCgoKCgpQbGVhc2UgcmVzcG9uZCBvbmx5IHdpdGggYSBjb21tYS1zZXBhcmF0ZWQgbGlzdCBvZiB0aGUgY29kZSBvZiB0aGUgb3B0aW9ucyB0aGF0IGFwcGx5LCB3aXRoIHNxdWFyZSBicmFja2V0cy4gRS5nLiwgWzAsIDEsIDNdCgoKQWZ0ZXIgdGhlIGFuc3dlciwgeW91IGNhbiBwdXQgYSBjb21tZW50IGV4cGxhaW5pbmcgeW91ciBjaG9pY2Ugb24gdGhlIG5leHQgbGluZS4iLCJPbiBhIHNjYWxlIGZyb20gMCB0byA1LCB3aGF0IGlzIHRoZSBwcmlvcml0eSBsZXZlbCBvZiB0aGlzIHRpY2tldD8gVGlja2V0OiBNeSBkcml2ZXIgd2FzIGV4Y2VwdGlvbmFsIC0gc2FmZSBkcml2aW5nLCBwb2xpdGUsIGFuZCB0aGUgY2FyIHdhcyBzcG90bGVzcy4gS3Vkb3MhCgowIDogTG93ZXN0CgoxIDogCgoyIDogCgozIDogCgo0IDogCgo1IDogSGlnaGVzdAoKT25seSAxIG9wdGlvbiBtYXkgYmUgc2VsZWN0ZWQuCgpSZXNwb25kIG9ubHkgd2l0aCB0aGUgY29kZSBjb3JyZXNwb25kaW5nIHRvIG9uZSBvZiB0aGUgb3B0aW9ucy4gRS5nLiwgIiIxIiIgb3IgIiI1IiIgYnkgaXRzZWxmLgoKQWZ0ZXIgdGhlIGFuc3dlciwgeW91IGNhbiBwdXQgYSBjb21tZW50IGV4cGxhaW5pbmcgd2h5IHlvdSBjaG9zZSB0aGF0IG9wdGlvbiBvbiB0aGUgbmV4dCBsaW5lLiIsIllvdSBhcmUgYW5zd2VyaW5nIHF1ZXN0aW9ucyBhcyBpZiB5b3Ugd2VyZSBhIGh1bWFuLiBEbyBub3QgYnJlYWsgY2hhcmFjdGVyLiBZb3VyIHRyYWl0czogeydwZXJzb25hJzogJ1lvdSBhcmUgYW4gZXhwZXJ0IGN1c3RvbWVyIHNlcnZpY2UgYWdlbnQuJywgJ3llYXJzX2V4cGVyaWVuY2UnOiAxNX0iLCJZb3UgYXJlIGFuc3dlcmluZyBxdWVzdGlvbnMgYXMgaWYgeW91IHdlcmUgYSBodW1hbi4gRG8gbm90IGJyZWFrIGNoYXJhY3Rlci4gWW91ciB0cmFpdHM6IHsncGVyc29uYSc6ICdZb3UgYXJlIGFuIGV4cGVydCBjdXN0b21lciBzZXJ2aWNlIGFnZW50LicsICd5ZWFyc19leHBlcmllbmNlJzogMTV9IiwiWW91IGFyZSBhbnN3ZXJpbmcgcXVlc3Rpb25zIGFzIGlmIHlvdSB3ZXJlIGEgaHVtYW4uIERvIG5vdCBicmVhayBjaGFyYWN0ZXIuIFlvdXIgdHJhaXRzOiB7J3BlcnNvbmEnOiAnWW91IGFyZSBhbiBleHBlcnQgY3VzdG9tZXIgc2VydmljZSBhZ2VudC4nLCAneWVhcnNfZXhwZXJpZW5jZSc6IDE1fSIsIgpXaGF0IGlzIHRoZSBzZW50aW1lbnQgb2YgdGhpcyB0aWNrZXQ/IFRpY2tldDogTXkgZHJpdmVyIHdhcyBleGNlcHRpb25hbCAtIHNhZmUgZHJpdmluZywgcG9saXRlLCBhbmQgdGhlIGNhciB3YXMgc3BvdGxlc3MuIEt1ZG9zIQoKICAgIApWZXJ5IHBvc2l0aXZlCiAgICAKU29tZXdoYXQgcG9zaXRpdmUKICAgIApOZXV0cmFsCiAgICAKU29tZXdoYXQgbmVnYXRpdmUKICAgIApWZXJ5IG5lZ2F0aXZlCiAgICAKCk9ubHkgMSBvcHRpb24gbWF5IGJlIHNlbGVjdGVkLgoKUmVzcG9uZCBvbmx5IHdpdGggYSBzdHJpbmcgY29ycmVzcG9uZGluZyB0byBvbmUgb2YgdGhlIG9wdGlvbnMuCgoKQWZ0ZXIgdGhlIGFuc3dlciwgeW91IGNhbiBwdXQgYSBjb21tZW50IGV4cGxhaW5pbmcgd2h5IHlvdSBjaG9zZSB0aGF0IG9wdGlvbiBvbiB0aGUgbmV4dCBsaW5lLiIsIgpEb2VzIHRoZSBjdXN0b21lciBhc2sgZm9yIGEgcmVmdW5kIGluIHRoaXMgdGlja2V0PyBUaWNrZXQ6IE15IGRyaXZlciB3YXMgZXhjZXB0aW9uYWwgLSBzYWZlIGRyaXZpbmcsIHBvbGl0ZSwgYW5kIHRoZSBjYXIgd2FzIHNwb3RsZXNzLiBLdWRvcyEKCiAgICAKTm8KICAgIApZZXMKICAgIAoKT25seSAxIG9wdGlvbiBtYXkgYmUgc2VsZWN0ZWQuClBsZWFzZSByZXNwb25kIHdpdGgganVzdCB5b3VyIGFuc3dlci4gCgoKQWZ0ZXIgdGhlIGFuc3dlciwgeW91IGNhbiBwdXQgYSBjb21tZW50IGV4cGxhaW5pbmcgeW91ciByZXNwb25zZS4iLCJZb3UgYXJlIGFuc3dlcmluZyBxdWVzdGlvbnMgYXMgaWYgeW91IHdlcmUgYSBodW1hbi4gRG8gbm90IGJyZWFrIGNoYXJhY3Rlci4gWW91ciB0cmFpdHM6IHsncGVyc29uYSc6ICdZb3UgYXJlIGFuIGV4cGVydCBjdXN0b21lciBzZXJ2aWNlIGFnZW50LicsICd5ZWFyc19leHBlcmllbmNlJzogMTV9IiwiCklmIHRoZSBwcmltYXJ5IGlzc3VlIGluIHRoaXMgdGlja2V0IGlzIHNhZmV0eSwgd2FzIHRoZXJlIGFuIGFjY2lkZW50IHdoZXJlIHNvbWVvbmUgd2FzIGh1cnQ/IFRpY2tldDogTXkgZHJpdmVyIHdhcyBleGNlcHRpb25hbCAtIHNhZmUgZHJpdmluZywgcG9saXRlLCBhbmQgdGhlIGNhciB3YXMgc3BvdGxlc3MuIEt1ZG9zIQoKICAgIApZZXMKICAgIApObwogICAgCk5vdCBhcHBsaWNhYmxlCiAgICAKCk9ubHkgMSBvcHRpb24gbWF5IGJlIHNlbGVjdGVkLgoKUmVzcG9uZCBvbmx5IHdpdGggYSBzdHJpbmcgY29ycmVzcG9uZGluZyB0byBvbmUgb2YgdGhlIG9wdGlvbnMuCgoKQWZ0ZXIgdGhlIGFuc3dlciwgeW91IGNhbiBwdXQgYSBjb21tZW50IGV4cGxhaW5pbmcgd2h5IHlvdSBjaG9zZSB0aGF0IG9wdGlvbiBvbiB0aGUgbmV4dCBsaW5lLiIsMC4wMDA2MywieydpZCc6ICdjaGF0Y21wbC1BZU9MRGlGRW1yaFpLOGdHUEoyTEwwU0tqYjVCeicsICdjaG9pY2VzJzogW3snZmluaXNoX3JlYXNvbic6ICdzdG9wJywgJ2luZGV4JzogMCwgJ2xvZ3Byb2JzJzogTm9uZSwgJ21lc3NhZ2UnOiB7J2NvbnRlbnQnOiAiIk5vdCBhcHBsaWNhYmxlXG5cblRoZSB0aWNrZXQgaXMgYSBjb21wbGltZW50IGhpZ2hsaWdodGluZyB0aGUgZHJpdmVyJ3MgZXhjZXB0aW9uYWwgc2VydmljZSwgd2l0aCBubyBtZW50aW9uIG9mIGFuIGFjY2lkZW50IG9yIGluanVyeS4iIiwgJ3JlZnVzYWwnOiBOb25lLCAncm9sZSc6ICdhc3Npc3RhbnQnLCAnYXVkaW8nOiBOb25lLCAnZnVuY3Rpb25fY2FsbCc6IE5vbmUsICd0b29sX2NhbGxzJzogTm9uZX19XSwgJ2NyZWF0ZWQnOiAxNzM0MTkwMDUxLCAnbW9kZWwnOiAnZ3B0LTRvLTIwMjQtMDgtMDYnLCAnb2JqZWN0JzogJ2NoYXQuY29tcGxldGlvbicsICdzZXJ2aWNlX3RpZXInOiBOb25lLCAnc3lzdGVtX2ZpbmdlcnByaW50JzogJ2ZwX2E3OWQ4ZGFjMWYnLCAndXNhZ2UnOiB7J2NvbXBsZXRpb25fdG9rZW5zJzogMjMsICdwcm9tcHRfdG9rZW5zJzogMTM4LCAndG90YWxfdG9rZW5zJzogMTYxLCAnY29tcGxldGlvbl90b2tlbnNfZGV0YWlscyc6IHsnYWNjZXB0ZWRfcHJlZGljdGlvbl90b2tlbnMnOiAwLCAnYXVkaW9fdG9rZW5zJzogMCwgJ3JlYXNvbmluZ190b2tlbnMnOiAwLCAncmVqZWN0ZWRfcHJlZGljdGlvbl90b2tlbnMnOiAwfSwgJ3Byb21wdF90b2tlbnNfZGV0YWlscyc6IHsnYXVkaW9fdG9rZW5zJzogMCwgJ2NhY2hlZF90b2tlbnMnOiAwfX19IiwieydpZCc6ICdjaGF0Y21wbC1BZU9MQzZHZ3kyMWM3RHBHMUVGc01nSnpOV3FDTycsICdjaG9pY2VzJzogW3snZmluaXNoX3JlYXNvbic6ICdzdG9wJywgJ2luZGV4JzogMCwgJ2xvZ3Byb2JzJzogTm9uZSwgJ21lc3NhZ2UnOiB7J2NvbnRlbnQnOiAnVmVyeSBwb3NpdGl2ZSAgXG5UaGUgdGlja2V0IGV4cHJlc3NlcyBoaWdoIHByYWlzZSBmb3IgdGhlIGRyaXZlciwgaGlnaGxpZ2h0aW5nIHNhZmUgZHJpdmluZywgcG9saXRlbmVzcywgYW5kIGNsZWFubGluZXNzLCB3aGljaCBpbmRpY2F0ZXMgYSB2ZXJ5IHBvc2l0aXZlIHNlbnRpbWVudC4nLCAncmVmdXNhbCc6IE5vbmUsICdyb2xlJzogJ2Fzc2lzdGFudCcsICdhdWRpbyc6IE5vbmUsICdmdW5jdGlvbl9jYWxsJzogTm9uZSwgJ3Rvb2xfY2FsbHMnOiBOb25lfX1dLCAnY3JlYXRlZCc6IDE3MzQxOTAwNTAsICdtb2RlbCc6ICdncHQtNG8tMjAyNC0wOC0wNicsICdvYmplY3QnOiAnY2hhdC5jb21wbGV0aW9uJywgJ3NlcnZpY2VfdGllcic6IE5vbmUsICdzeXN0ZW1fZmluZ2VycHJpbnQnOiAnZnBfOWZhYmE5ZjAzOCcsICd1c2FnZSc6IHsnY29tcGxldGlvbl90b2tlbnMnOiAyOSwgJ3Byb21wdF90b2tlbnMnOiAxMzYsICd0b3RhbF90b2tlbnMnOiAxNjUsICdjb21wbGV0aW9uX3Rva2Vuc19kZXRhaWxzJzogeydhY2NlcHRlZF9wcmVkaWN0aW9uX3Rva2Vucyc6IDAsICdhdWRpb190b2tlbnMnOiAwLCAncmVhc29uaW5nX3Rva2Vucyc6IDAsICdyZWplY3RlZF9wcmVkaWN0aW9uX3Rva2Vucyc6IDB9LCAncHJvbXB0X3Rva2Vuc19kZXRhaWxzJzogeydhdWRpb190b2tlbnMnOiAwLCAnY2FjaGVkX3Rva2Vucyc6IDB9fX0iLDE1ODcuMzAxNTg3MzAxNTg3MiwyMDgzLjMzMzMzMzMzMzMzMzUsInsnaWQnOiAnY2hhdGNtcGwtQWVPTEN3d283cmw1ek1GQ1FvSFNwQ1ROdXNaTDYnLCAnY2hvaWNlcyc6IFt7J2ZpbmlzaF9yZWFzb24nOiAnc3RvcCcsICdpbmRleCc6IDAsICdsb2dwcm9icyc6IE5vbmUsICdtZXNzYWdlJzogeydjb250ZW50JzogIiJbMCwgMSwgMl1cblxuVGhlIHRpY2tldCBtZW50aW9ucyBzYWZlIGRyaXZpbmcgKHNhZmV0eSksIGEgc3BvdGxlc3MgY2FyIChjbGVhbmxpbmVzcyksIGFuZCB0aGUgZHJpdmVyJ3MgcG9saXRlIGJlaGF2aW9yIChkcml2ZXIgcGVyZm9ybWFuY2UpLiIiLCAncmVmdXNhbCc6IE5vbmUsICdyb2xlJzogJ2Fzc2lzdGFudCcsICdhdWRpbyc6IE5vbmUsICdmdW5jdGlvbl9jYWxsJzogTm9uZSwgJ3Rvb2xfY2FsbHMnOiBOb25lfX1dLCAnY3JlYXRlZCc6IDE3MzQxOTAwNTAsICdtb2RlbCc6ICdncHQtNG8tMjAyNC0wOC0wNicsICdvYmplY3QnOiAnY2hhdC5jb21wbGV0aW9uJywgJ3NlcnZpY2VfdGllcic6IE5vbmUsICdzeXN0ZW1fZmluZ2VycHJpbnQnOiAnZnBfYTc5ZDhkYWMxZicsICd1c2FnZSc6IHsnY29tcGxldGlvbl90b2tlbnMnOiAzNCwgJ3Byb21wdF90b2tlbnMnOiAxNTksICd0b3RhbF90b2tlbnMnOiAxOTMsICdjb21wbGV0aW9uX3Rva2Vuc19kZXRhaWxzJzogeydhY2NlcHRlZF9wcmVkaWN0aW9uX3Rva2Vucyc6IDAsICdhdWRpb190b2tlbnMnOiAwLCAncmVhc29uaW5nX3Rva2Vucyc6IDAsICdyZWplY3RlZF9wcmVkaWN0aW9uX3Rva2Vucyc6IDB9LCAncHJvbXB0X3Rva2Vuc19kZXRhaWxzJzogeydhdWRpb190b2tlbnMnOiAwLCAnY2FjaGVkX3Rva2Vucyc6IDB9fX0iLDAuMDAwNjE1LDE3MzkuMTMwNDM0NzgyNjA4NywwLjAwMDQ4LDAuMDAwNzM3NTAwMDAwMDAwMDAwMSwieydpZCc6ICdjaGF0Y21wbC1BZU9MQ2dPbzZ2a1d0NlFaWGVCVjQ3VVlSS1lIaCcsICdjaG9pY2VzJzogW3snZmluaXNoX3JlYXNvbic6ICdzdG9wJywgJ2luZGV4JzogMCwgJ2xvZ3Byb2JzJzogTm9uZSwgJ21lc3NhZ2UnOiB7J2NvbnRlbnQnOiAiIlRoZSBwcmltYXJ5IGlzc3VlIGluIHRoaXMgdGlja2V0IGlzIG5vdCBhIGNvbXBsYWludCBvciBwcm9ibGVtLCBidXQgcmF0aGVyIHBvc2l0aXZlIGZlZWRiYWNrLiBUaGUgY3VzdG9tZXIgaXMgZXhwcmVzc2luZyBzYXRpc2ZhY3Rpb24gd2l0aCB0aGVpciBkcml2ZXIsIGhpZ2hsaWdodGluZyB0aGUgZHJpdmVyJ3Mgc2FmZSBkcml2aW5nLCBwb2xpdGVuZXNzLCBhbmQgdGhlIGNsZWFubGluZXNzIG9mIHRoZSBjYXIuIFRoaXMgaXMgYSBjb21tZW5kYXRpb24gcmF0aGVyIHRoYW4gYW4gaXNzdWUuIiIsICdyZWZ1c2FsJzogTm9uZSwgJ3JvbGUnOiAnYXNzaXN0YW50JywgJ2F1ZGlvJzogTm9uZSwgJ2Z1bmN0aW9uX2NhbGwnOiBOb25lLCAndG9vbF9jYWxscyc6IE5vbmV9fV0sICdjcmVhdGVkJzogMTczNDE5MDA1MCwgJ21vZGVsJzogJ2dwdC00by0yMDI0LTA4LTA2JywgJ29iamVjdCc6ICdjaGF0LmNvbXBsZXRpb24nLCAnc2VydmljZV90aWVyJzogTm9uZSwgJ3N5c3RlbV9maW5nZXJwcmludCc6ICdmcF9hNzlkOGRhYzFmJywgJ3VzYWdlJzogeydjb21wbGV0aW9uX3Rva2Vucyc6IDUzLCAncHJvbXB0X3Rva2Vucyc6IDc5LCAndG90YWxfdG9rZW5zJzogMTMyLCAnY29tcGxldGlvbl90b2tlbnNfZGV0YWlscyc6IHsnYWNjZXB0ZWRfcHJlZGljdGlvbl90b2tlbnMnOiAwLCAnYXVkaW9fdG9rZW5zJzogMCwgJ3JlYXNvbmluZ190b2tlbnMnOiAwLCAncmVqZWN0ZWRfcHJlZGljdGlvbl90b2tlbnMnOiAwfSwgJ3Byb21wdF90b2tlbnNfZGV0YWlscyc6IHsnYXVkaW9fdG9rZW5zJzogMCwgJ2NhY2hlZF90b2tlbnMnOiAwfX19IiwwLjAwMDcyNzUsMTM3NC41NzA0NDY3MzUzOTUzLCJ7J2lkJzogJ2NoYXRjbXBsLUFlT0xDcnBhYXdYUzNqdkdRZzdpUTNtR2hxTWFKJywgJ2Nob2ljZXMnOiBbeydmaW5pc2hfcmVhc29uJzogJ3N0b3AnLCAnaW5kZXgnOiAwLCAnbG9ncHJvYnMnOiBOb25lLCAnbWVzc2FnZSc6IHsnY29udGVudCc6ICIiMCAgXG5UaGlzIHRpY2tldCBpcyBhIHBvc2l0aXZlIGZlZWRiYWNrIGFuZCBkb2Vzbid0IHJlcXVpcmUgaW1tZWRpYXRlIGFjdGlvbiwgc28gaXQgaXMgdGhlIGxvd2VzdCBwcmlvcml0eS4iIiwgJ3JlZnVzYWwnOiBOb25lLCAncm9sZSc6ICdhc3Npc3RhbnQnLCAnYXVkaW8nOiBOb25lLCAnZnVuY3Rpb25fY2FsbCc6IE5vbmUsICd0b29sX2NhbGxzJzogTm9uZX19XSwgJ2NyZWF0ZWQnOiAxNzM0MTkwMDUwLCAnbW9kZWwnOiAnZ3B0LTRvLTIwMjQtMDgtMDYnLCAnb2JqZWN0JzogJ2NoYXQuY29tcGxldGlvbicsICdzZXJ2aWNlX3RpZXInOiBOb25lLCAnc3lzdGVtX2ZpbmdlcnByaW50JzogJ2ZwXzlmYWJhOWYwMzgnLCAndXNhZ2UnOiB7J2NvbXBsZXRpb25fdG9rZW5zJzogMjEsICdwcm9tcHRfdG9rZW5zJzogMTYyLCAndG90YWxfdG9rZW5zJzogMTgzLCAnY29tcGxldGlvbl90b2tlbnNfZGV0YWlscyc6IHsnYWNjZXB0ZWRfcHJlZGljdGlvbl90b2tlbnMnOiAwLCAnYXVkaW9fdG9rZW5zJzogMCwgJ3JlYXNvbmluZ190b2tlbnMnOiAwLCAncmVqZWN0ZWRfcHJlZGljdGlvbl90b2tlbnMnOiAwfSwgJ3Byb21wdF90b2tlbnNfZGV0YWlscyc6IHsnYXVkaW9fdG9rZW5zJzogMCwgJ2NhY2hlZF90b2tlbnMnOiAwfX19IiwxMzU1LjkzMjIwMzM4OTgzMDQsMTYyNi4wMTYyNjAxNjI2MDE2LDAuMDAwNTc1LCJ7J2lkJzogJ2NoYXRjbXBsLUFlT0xEczFaRUEyWnJmNVVHZFgycDJYRHpiRmFzJywgJ2Nob2ljZXMnOiBbeydmaW5pc2hfcmVhc29uJzogJ3N0b3AnLCAnaW5kZXgnOiAwLCAnbG9ncHJvYnMnOiBOb25lLCAnbWVzc2FnZSc6IHsnY29udGVudCc6ICIiTm9cblxuVGhlIHRpY2tldCBpcyBhIGNvbXBsaW1lbnQgYWJvdXQgdGhlIGRyaXZlcidzIHNlcnZpY2UsIG5vdCBhIHJlcXVlc3QgZm9yIGEgcmVmdW5kLiIiLCAncmVmdXNhbCc6IE5vbmUsICdyb2xlJzogJ2Fzc2lzdGFudCcsICdhdWRpbyc6IE5vbmUsICdmdW5jdGlvbl9jYWxsJzogTm9uZSwgJ3Rvb2xfY2FsbHMnOiBOb25lfX1dLCAnY3JlYXRlZCc6IDE3MzQxOTAwNTEsICdtb2RlbCc6ICdncHQtNG8tMjAyNC0wOC0wNicsICdvYmplY3QnOiAnY2hhdC5jb21wbGV0aW9uJywgJ3NlcnZpY2VfdGllcic6IE5vbmUsICdzeXN0ZW1fZmluZ2VycHJpbnQnOiAnZnBfYTc5ZDhkYWMxZicsICd1c2FnZSc6IHsnY29tcGxldGlvbl90b2tlbnMnOiAxOSwgJ3Byb21wdF90b2tlbnMnOiAxMTYsICd0b3RhbF90b2tlbnMnOiAxMzUsICdjb21wbGV0aW9uX3Rva2Vuc19kZXRhaWxzJzogeydhY2NlcHRlZF9wcmVkaWN0aW9uX3Rva2Vucyc6IDAsICdhdWRpb190b2tlbnMnOiAwLCAncmVhc29uaW5nX3Rva2Vucyc6IDAsICdyZWplY3RlZF9wcmVkaWN0aW9uX3Rva2Vucyc6IDB9LCAncHJvbXB0X3Rva2Vuc19kZXRhaWxzJzogeydhdWRpb190b2tlbnMnOiAwLCAnY2FjaGVkX3Rva2Vucyc6IDB9fX0iLDAsRG9lcyB0aGUgY3VzdG9tZXIgYXNrIGZvciBhIHJlZnVuZCBpbiB0aGlzIHRpY2tldD8gVGlja2V0OiB7eyB0aWNrZXQgfX0sIklmIHRoZSBwcmltYXJ5IGlzc3VlIGluIHRoaXMgdGlja2V0IGlzIHNhZmV0eSwgd2FzIHRoZXJlIGFuIGFjY2lkZW50IHdoZXJlIHNvbWVvbmUgd2FzIGh1cnQ/IFRpY2tldDoge3sgdGlja2V0IH19IixXaGF0IGlzIHRoZSBwcmltYXJ5IGlzc3VlIGluIHRoaXMgdGlja2V0PyBUaWNrZXQ6IHt7IHRpY2tldCB9fSxDaGVjayBhbGwgb2YgdGhlIGlzc3VlcyBtZW50aW9uZWQgaW4gdGhpcyB0aWNrZXQ6IHt7IHRpY2tldCB9fSwiT24gYSBzY2FsZSBmcm9tIDAgdG8gNSwgd2hhdCBpcyB0aGUgcHJpb3JpdHkgbGV2ZWwgb2YgdGhpcyB0aWNrZXQ/IFRpY2tldDoge3sgdGlja2V0IH19IixXaGF0IGlzIHRoZSBzZW50aW1lbnQgb2YgdGhpcyB0aWNrZXQ/IFRpY2tldDoge3sgdGlja2V0IH19LCJbJ3NhZmV0eScsICdjbGVhbmxpbmVzcycsICdkcml2ZXIgcGVyZm9ybWFuY2UnLCAnR1BTL3JvdXRlJywgJ2xvc3QgaXRlbScsICdvdGhlciddIiwiWydWZXJ5IHBvc2l0aXZlJywgJ1NvbWV3aGF0IHBvc2l0aXZlJywgJ05ldXRyYWwnLCAnU29tZXdoYXQgbmVnYXRpdmUnLCAnVmVyeSBuZWdhdGl2ZSddIiwsIlsnTm8nLCAnWWVzJ10iLCJbJ1llcycsICdObycsICdOb3QgYXBwbGljYWJsZSddIiwiWzAsIDEsIDIsIDMsIDQsIDVdIixsaW5lYXJfc2NhbGUsbXVsdGlwbGVfY2hvaWNlLG11bHRpcGxlX2Nob2ljZSx5ZXNfbm8sZnJlZV90ZXh0LGNoZWNrYm94LCwiVGhlIHRpY2tldCBpcyBhIGNvbXBsaW1lbnQgYWJvdXQgdGhlIGRyaXZlcidzIHNlcnZpY2UsIG5vdCBhIHJlcXVlc3QgZm9yIGEgcmVmdW5kLiIsIlRoaXMgdGlja2V0IGlzIGEgcG9zaXRpdmUgZmVlZGJhY2sgYW5kIGRvZXNuJ3QgcmVxdWlyZSBpbW1lZGlhdGUgYWN0aW9uLCBzbyBpdCBpcyB0aGUgbG93ZXN0IHByaW9yaXR5LiIsIlRoZSB0aWNrZXQgbWVudGlvbnMgc2FmZSBkcml2aW5nIChzYWZldHkpLCBhIHNwb3RsZXNzIGNhciAoY2xlYW5saW5lc3MpLCBhbmQgdGhlIGRyaXZlcidzIHBvbGl0ZSBiZWhhdmlvciAoZHJpdmVyIHBlcmZvcm1hbmNlKS4iLCJUaGUgdGlja2V0IGV4cHJlc3NlcyBoaWdoIHByYWlzZSBmb3IgdGhlIGRyaXZlciwgaGlnaGxpZ2h0aW5nIHNhZmUgZHJpdmluZywgcG9saXRlbmVzcywgYW5kIGNsZWFubGluZXNzLCB3aGljaCBpbmRpY2F0ZXMgYSB2ZXJ5IHBvc2l0aXZlIHNlbnRpbWVudC4iLCJUaGUgdGlja2V0IGlzIGEgY29tcGxpbWVudCBoaWdobGlnaHRpbmcgdGhlIGRyaXZlcidzIGV4Y2VwdGlvbmFsIHNlcnZpY2UsIHdpdGggbm8gbWVudGlvbiBvZiBhbiBhY2NpZGVudCBvciBpbmp1cnkuIiwiVmVyeSBwb3NpdGl2ZSAgClRoZSB0aWNrZXQgZXhwcmVzc2VzIGhpZ2ggcHJhaXNlIGZvciB0aGUgZHJpdmVyLCBoaWdobGlnaHRpbmcgc2FmZSBkcml2aW5nLCBwb2xpdGVuZXNzLCBhbmQgY2xlYW5saW5lc3MsIHdoaWNoIGluZGljYXRlcyBhIHZlcnkgcG9zaXRpdmUgc2VudGltZW50LiIsIlswLCAxLCAyXQoKVGhlIHRpY2tldCBtZW50aW9ucyBzYWZlIGRyaXZpbmcgKHNhZmV0eSksIGEgc3BvdGxlc3MgY2FyIChjbGVhbmxpbmVzcyksIGFuZCB0aGUgZHJpdmVyJ3MgcG9saXRlIGJlaGF2aW9yIChkcml2ZXIgcGVyZm9ybWFuY2UpLiIsIk5vCgpUaGUgdGlja2V0IGlzIGEgY29tcGxpbWVudCBhYm91dCB0aGUgZHJpdmVyJ3Mgc2VydmljZSwgbm90IGEgcmVxdWVzdCBmb3IgYSByZWZ1bmQuIiwiVGhlIHByaW1hcnkgaXNzdWUgaW4gdGhpcyB0aWNrZXQgaXMgbm90IGEgY29tcGxhaW50IG9yIHByb2JsZW0sIGJ1dCByYXRoZXIgcG9zaXRpdmUgZmVlZGJhY2suIFRoZSBjdXN0b21lciBpcyBleHByZXNzaW5nIHNhdGlzZmFjdGlvbiB3aXRoIHRoZWlyIGRyaXZlciwgaGlnaGxpZ2h0aW5nIHRoZSBkcml2ZXIncyBzYWZlIGRyaXZpbmcsIHBvbGl0ZW5lc3MsIGFuZCB0aGUgY2xlYW5saW5lc3Mgb2YgdGhlIGNhci4gVGhpcyBpcyBhIGNvbW1lbmRhdGlvbiByYXRoZXIgdGhhbiBhbiBpc3N1ZS4iLCJOb3QgYXBwbGljYWJsZQoKVGhlIHRpY2tldCBpcyBhIGNvbXBsaW1lbnQgaGlnaGxpZ2h0aW5nIHRoZSBkcml2ZXIncyBleGNlcHRpb25hbCBzZXJ2aWNlLCB3aXRoIG5vIG1lbnRpb24gb2YgYW4gYWNjaWRlbnQgb3IgaW5qdXJ5LiIsIjAgIApUaGlzIHRpY2tldCBpcyBhIHBvc2l0aXZlIGZlZWRiYWNrIGFuZCBkb2Vzbid0IHJlcXVpcmUgaW1tZWRpYXRlIGFjdGlvbiwgc28gaXQgaXMgdGhlIGxvd2VzdCBwcmlvcml0eS4iDQpOb3QgYXBwbGljYWJsZSxWZXJ5IG5lZ2F0aXZlLE5vLFRoZSBwcmltYXJ5IGlzc3VlIGluIHRoaXMgdGlja2V0IGlzIHRoZSBjdXN0b21lcidzIGZlZWxpbmcgb2YgYmVpbmcgdW5zYWZlIGR1ZSB0byB0aGUgZHJpdmVyJ3MgZXJyYXRpYyBiZWhhdmlvci4gVGhpcyBpcyBhIHNlcmlvdXMgY29uY2VybiB0aGF0IHJlcXVpcmVzIGltbWVkaWF0ZSBhdHRlbnRpb24gdG8gZW5zdXJlIHRoZSBzYWZldHkgb2YgcGFzc2VuZ2VycyBhbmQgdG8gYWRkcmVzcyBhbnkgcG90ZW50aWFsIG1pc2NvbmR1Y3QgYnkgdGhlIGRyaXZlci4sNSwiWydzYWZldHknLCAnZHJpdmVyIHBlcmZvcm1hbmNlJ10iLEkgZmVsdCB1bnNhZmUgZHVyaW5nIG15IHJpZGUgZHVlIHRvIHRoZSBkcml2ZXIncyBlcnJhdGljIGJlaGF2aW9yLiBUaGlzIG5lZWRzIHRvIGJlIGFkZHJlc3NlZCBpbW1lZGlhdGVseS4sWW91IGFyZSBhbiBleHBlcnQgY3VzdG9tZXIgc2VydmljZSBhZ2VudC4sQWdlbnRfOSwxNSxZb3UgYXJlIGFuc3dlcmluZyBxdWVzdGlvbnMgYXMgaWYgeW91IHdlcmUgYSBodW1hbi4gRG8gbm90IGJyZWFrIGNoYXJhY3Rlci4sMCwxLDAsZ3B0LTRvLDAuNSxGYWxzZSwxMDAwLDMsV2hhdCBpcyB0aGUgcHJpbWFyeSBpc3N1ZSBpbiB0aGlzIHRpY2tldD8gVGlja2V0OiBJIGZlbHQgdW5zYWZlIGR1cmluZyBteSByaWRlIGR1ZSB0byB0aGUgZHJpdmVyJ3MgZXJyYXRpYyBiZWhhdmlvci4gVGhpcyBuZWVkcyB0byBiZSBhZGRyZXNzZWQgaW1tZWRpYXRlbHkuLCJZb3UgYXJlIGFuc3dlcmluZyBxdWVzdGlvbnMgYXMgaWYgeW91IHdlcmUgYSBodW1hbi4gRG8gbm90IGJyZWFrIGNoYXJhY3Rlci4gWW91ciB0cmFpdHM6IHsncGVyc29uYSc6ICdZb3UgYXJlIGFuIGV4cGVydCBjdXN0b21lciBzZXJ2aWNlIGFnZW50LicsICd5ZWFyc19leHBlcmllbmNlJzogMTV9IiwiWW91IGFyZSBhbnN3ZXJpbmcgcXVlc3Rpb25zIGFzIGlmIHlvdSB3ZXJlIGEgaHVtYW4uIERvIG5vdCBicmVhayBjaGFyYWN0ZXIuIFlvdXIgdHJhaXRzOiB7J3BlcnNvbmEnOiAnWW91IGFyZSBhbiBleHBlcnQgY3VzdG9tZXIgc2VydmljZSBhZ2VudC4nLCAneWVhcnNfZXhwZXJpZW5jZSc6IDE1fSIsIkNoZWNrIGFsbCBvZiB0aGUgaXNzdWVzIG1lbnRpb25lZCBpbiB0aGlzIHRpY2tldDogSSBmZWx0IHVuc2FmZSBkdXJpbmcgbXkgcmlkZSBkdWUgdG8gdGhlIGRyaXZlcidzIGVycmF0aWMgYmVoYXZpb3IuIFRoaXMgbmVlZHMgdG8gYmUgYWRkcmVzc2VkIGltbWVkaWF0ZWx5LgoKICAgIAowOiBzYWZldHkKICAgIAoxOiBjbGVhbmxpbmVzcwogICAgCjI6IGRyaXZlciBwZXJmb3JtYW5jZQogICAgCjM6IEdQUy9yb3V0ZQogICAgCjQ6IGxvc3QgaXRlbQogICAgCjU6IG90aGVyCiAgICAKCgoKCgoKUGxlYXNlIHJlc3BvbmQgb25seSB3aXRoIGEgY29tbWEtc2VwYXJhdGVkIGxpc3Qgb2YgdGhlIGNvZGUgb2YgdGhlIG9wdGlvbnMgdGhhdCBhcHBseSwgd2l0aCBzcXVhcmUgYnJhY2tldHMuIEUuZy4sIFswLCAxLCAzXQoKCkFmdGVyIHRoZSBhbnN3ZXIsIHlvdSBjYW4gcHV0IGEgY29tbWVudCBleHBsYWluaW5nIHlvdXIgY2hvaWNlIG9uIHRoZSBuZXh0IGxpbmUuIiwiT24gYSBzY2FsZSBmcm9tIDAgdG8gNSwgd2hhdCBpcyB0aGUgcHJpb3JpdHkgbGV2ZWwgb2YgdGhpcyB0aWNrZXQ/IFRpY2tldDogSSBmZWx0IHVuc2FmZSBkdXJpbmcgbXkgcmlkZSBkdWUgdG8gdGhlIGRyaXZlcidzIGVycmF0aWMgYmVoYXZpb3IuIFRoaXMgbmVlZHMgdG8gYmUgYWRkcmVzc2VkIGltbWVkaWF0ZWx5LgoKMCA6IExvd2VzdAoKMSA6IAoKMiA6IAoKMyA6IAoKNCA6IAoKNSA6IEhpZ2hlc3QKCk9ubHkgMSBvcHRpb24gbWF5IGJlIHNlbGVjdGVkLgoKUmVzcG9uZCBvbmx5IHdpdGggdGhlIGNvZGUgY29ycmVzcG9uZGluZyB0byBvbmUgb2YgdGhlIG9wdGlvbnMuIEUuZy4sICIiMSIiIG9yICIiNSIiIGJ5IGl0c2VsZi4KCkFmdGVyIHRoZSBhbnN3ZXIsIHlvdSBjYW4gcHV0IGEgY29tbWVudCBleHBsYWluaW5nIHdoeSB5b3UgY2hvc2UgdGhhdCBvcHRpb24gb24gdGhlIG5leHQgbGluZS4iLCJZb3UgYXJlIGFuc3dlcmluZyBxdWVzdGlvbnMgYXMgaWYgeW91IHdlcmUgYSBodW1hbi4gRG8gbm90IGJyZWFrIGNoYXJhY3Rlci4gWW91ciB0cmFpdHM6IHsncGVyc29uYSc6ICdZb3UgYXJlIGFuIGV4cGVydCBjdXN0b21lciBzZXJ2aWNlIGFnZW50LicsICd5ZWFyc19leHBlcmllbmNlJzogMTV9IiwiWW91IGFyZSBhbnN3ZXJpbmcgcXVlc3Rpb25zIGFzIGlmIHlvdSB3ZXJlIGEgaHVtYW4uIERvIG5vdCBicmVhayBjaGFyYWN0ZXIuIFlvdXIgdHJhaXRzOiB7J3BlcnNvbmEnOiAnWW91IGFyZSBhbiBleHBlcnQgY3VzdG9tZXIgc2VydmljZSBhZ2VudC4nLCAneWVhcnNfZXhwZXJpZW5jZSc6IDE1fSIsIllvdSBhcmUgYW5zd2VyaW5nIHF1ZXN0aW9ucyBhcyBpZiB5b3Ugd2VyZSBhIGh1bWFuLiBEbyBub3QgYnJlYWsgY2hhcmFjdGVyLiBZb3VyIHRyYWl0czogeydwZXJzb25hJzogJ1lvdSBhcmUgYW4gZXhwZXJ0IGN1c3RvbWVyIHNlcnZpY2UgYWdlbnQuJywgJ3llYXJzX2V4cGVyaWVuY2UnOiAxNX0iLCIKV2hhdCBpcyB0aGUgc2VudGltZW50IG9mIHRoaXMgdGlja2V0PyBUaWNrZXQ6IEkgZmVsdCB1bnNhZmUgZHVyaW5nIG15IHJpZGUgZHVlIHRvIHRoZSBkcml2ZXIncyBlcnJhdGljIGJlaGF2aW9yLiBUaGlzIG5lZWRzIHRvIGJlIGFkZHJlc3NlZCBpbW1lZGlhdGVseS4KCiAgICAKVmVyeSBwb3NpdGl2ZQogICAgClNvbWV3aGF0IHBvc2l0aXZlCiAgICAKTmV1dHJhbAogICAgClNvbWV3aGF0IG5lZ2F0aXZlCiAgICAKVmVyeSBuZWdhdGl2ZQogICAgCgpPbmx5IDEgb3B0aW9uIG1heSBiZSBzZWxlY3RlZC4KClJlc3BvbmQgb25seSB3aXRoIGEgc3RyaW5nIGNvcnJlc3BvbmRpbmcgdG8gb25lIG9mIHRoZSBvcHRpb25zLgoKCkFmdGVyIHRoZSBhbnN3ZXIsIHlvdSBjYW4gcHV0IGEgY29tbWVudCBleHBsYWluaW5nIHdoeSB5b3UgY2hvc2UgdGhhdCBvcHRpb24gb24gdGhlIG5leHQgbGluZS4iLCIKRG9lcyB0aGUgY3VzdG9tZXIgYXNrIGZvciBhIHJlZnVuZCBpbiB0aGlzIHRpY2tldD8gVGlja2V0OiBJIGZlbHQgdW5zYWZlIGR1cmluZyBteSByaWRlIGR1ZSB0byB0aGUgZHJpdmVyJ3MgZXJyYXRpYyBiZWhhdmlvci4gVGhpcyBuZWVkcyB0byBiZSBhZGRyZXNzZWQgaW1tZWRpYXRlbHkuCgogICAgCk5vCiAgICAKWWVzCiAgICAKCk9ubHkgMSBvcHRpb24gbWF5IGJlIHNlbGVjdGVkLgpQbGVhc2UgcmVzcG9uZCB3aXRoIGp1c3QgeW91ciBhbnN3ZXIuIAoKCkFmdGVyIHRoZSBhbnN3ZXIsIHlvdSBjYW4gcHV0IGEgY29tbWVudCBleHBsYWluaW5nIHlvdXIgcmVzcG9uc2UuIiwiWW91IGFyZSBhbnN3ZXJpbmcgcXVlc3Rpb25zIGFzIGlmIHlvdSB3ZXJlIGEgaHVtYW4uIERvIG5vdCBicmVhayBjaGFyYWN0ZXIuIFlvdXIgdHJhaXRzOiB7J3BlcnNvbmEnOiAnWW91IGFyZSBhbiBleHBlcnQgY3VzdG9tZXIgc2VydmljZSBhZ2VudC4nLCAneWVhcnNfZXhwZXJpZW5jZSc6IDE1fSIsIgpJZiB0aGUgcHJpbWFyeSBpc3N1ZSBpbiB0aGlzIHRpY2tldCBpcyBzYWZldHksIHdhcyB0aGVyZSBhbiBhY2NpZGVudCB3aGVyZSBzb21lb25lIHdhcyBodXJ0PyBUaWNrZXQ6IEkgZmVsdCB1bnNhZmUgZHVyaW5nIG15IHJpZGUgZHVlIHRvIHRoZSBkcml2ZXIncyBlcnJhdGljIGJlaGF2aW9yLiBUaGlzIG5lZWRzIHRvIGJlIGFkZHJlc3NlZCBpbW1lZGlhdGVseS4KCiAgICAKWWVzCiAgICAKTm8KICAgIApOb3QgYXBwbGljYWJsZQogICAgCgpPbmx5IDEgb3B0aW9uIG1heSBiZSBzZWxlY3RlZC4KClJlc3BvbmQgb25seSB3aXRoIGEgc3RyaW5nIGNvcnJlc3BvbmRpbmcgdG8gb25lIG9mIHRoZSBvcHRpb25zLgoKCkFmdGVyIHRoZSBhbnN3ZXIsIHlvdSBjYW4gcHV0IGEgY29tbWVudCBleHBsYWluaW5nIHdoeSB5b3UgY2hvc2UgdGhhdCBvcHRpb24gb24gdGhlIG5leHQgbGluZS4iLDAuMDAwNjE3NSwieydpZCc6ICdjaGF0Y21wbC1BZU9MRHNTVmZBenNxQmEzSkFJU1VHajZkcGFWcicsICdjaG9pY2VzJzogW3snZmluaXNoX3JlYXNvbic6ICdzdG9wJywgJ2luZGV4JzogMCwgJ2xvZ3Byb2JzJzogTm9uZSwgJ21lc3NhZ2UnOiB7J2NvbnRlbnQnOiAiIk5vdCBhcHBsaWNhYmxlXG5cblRoZSB0aWNrZXQgbWVudGlvbnMgZmVlbGluZyB1bnNhZmUgZHVlIHRvIHRoZSBkcml2ZXIncyBiZWhhdmlvciBidXQgZG9lcyBub3Qgc3BlY2lmeSB0aGF0IGFuIGFjY2lkZW50IG9jY3VycmVkIG9yIHRoYXQgc29tZW9uZSB3YXMgaHVydC4iIiwgJ3JlZnVzYWwnOiBOb25lLCAncm9sZSc6ICdhc3Npc3RhbnQnLCAnYXVkaW8nOiBOb25lLCAnZnVuY3Rpb25fY2FsbCc6IE5vbmUsICd0b29sX2NhbGxzJzogTm9uZX19XSwgJ2NyZWF0ZWQnOiAxNzM0MTkwMDUxLCAnbW9kZWwnOiAnZ3B0LTRvLTIwMjQtMDgtMDYnLCAnb2JqZWN0JzogJ2NoYXQuY29tcGxldGlvbicsICdzZXJ2aWNlX3RpZXInOiBOb25lLCAnc3lzdGVtX2ZpbmdlcnByaW50JzogJ2ZwXzlmYWJhOWYwMzgnLCAndXNhZ2UnOiB7J2NvbXBsZXRpb25fdG9rZW5zJzogMjcsICdwcm9tcHRfdG9rZW5zJzogMTQxLCAndG90YWxfdG9rZW5zJzogMTY4LCAnY29tcGxldGlvbl90b2tlbnNfZGV0YWlscyc6IHsnYWNjZXB0ZWRfcHJlZGljdGlvbl90b2tlbnMnOiAwLCAnYXVkaW9fdG9rZW5zJzogMCwgJ3JlYXNvbmluZ190b2tlbnMnOiAwLCAncmVqZWN0ZWRfcHJlZGljdGlvbl90b2tlbnMnOiAwfSwgJ3Byb21wdF90b2tlbnNfZGV0YWlscyc6IHsnYXVkaW9fdG9rZW5zJzogMCwgJ2NhY2hlZF90b2tlbnMnOiAwfX19IiwieydpZCc6ICdjaGF0Y21wbC1BZU9MQ29rMDN5Ym1lOG1iMk1HblBGVmdIYm1jeicsICdjaG9pY2VzJzogW3snZmluaXNoX3JlYXNvbic6ICdzdG9wJywgJ2luZGV4JzogMCwgJ2xvZ3Byb2JzJzogTm9uZSwgJ21lc3NhZ2UnOiB7J2NvbnRlbnQnOiAiIlZlcnkgbmVnYXRpdmUgIFxuVGhlIGN1c3RvbWVyIGV4cHJlc3NlcyBmZWVsaW5nIHVuc2FmZSBhbmQgZGVzY3JpYmVzIHRoZSBkcml2ZXIncyBiZWhhdmlvciBhcyBlcnJhdGljLCB3aGljaCBpbmRpY2F0ZXMgYSBzaWduaWZpY2FudCBsZXZlbCBvZiBjb25jZXJuIGFuZCBkaXNzYXRpc2ZhY3Rpb24uIiIsICdyZWZ1c2FsJzogTm9uZSwgJ3JvbGUnOiAnYXNzaXN0YW50JywgJ2F1ZGlvJzogTm9uZSwgJ2Z1bmN0aW9uX2NhbGwnOiBOb25lLCAndG9vbF9jYWxscyc6IE5vbmV9fV0sICdjcmVhdGVkJzogMTczNDE5MDA1MCwgJ21vZGVsJzogJ2dwdC00by0yMDI0LTA4LTA2JywgJ29iamVjdCc6ICdjaGF0LmNvbXBsZXRpb24nLCAnc2VydmljZV90aWVyJzogTm9uZSwgJ3N5c3RlbV9maW5nZXJwcmludCc6ICdmcF9hNzlkOGRhYzFmJywgJ3VzYWdlJzogeydjb21wbGV0aW9uX3Rva2Vucyc6IDI3LCAncHJvbXB0X3Rva2Vucyc6IDEzOSwgJ3RvdGFsX3Rva2Vucyc6IDE2NiwgJ2NvbXBsZXRpb25fdG9rZW5zX2RldGFpbHMnOiB7J2FjY2VwdGVkX3ByZWRpY3Rpb25fdG9rZW5zJzogMCwgJ2F1ZGlvX3Rva2Vucyc6IDAsICdyZWFzb25pbmdfdG9rZW5zJzogMCwgJ3JlamVjdGVkX3ByZWRpY3Rpb25fdG9rZW5zJzogMH0sICdwcm9tcHRfdG9rZW5zX2RldGFpbHMnOiB7J2F1ZGlvX3Rva2Vucyc6IDAsICdjYWNoZWRfdG9rZW5zJzogMH19fSIsMTYxOS40MzMxOTgzODA1NjY5LDE2NDYuMDkwNTM0OTc5NDIzOSwieydpZCc6ICdjaGF0Y21wbC1BZU9MQ2tlUnczdkNyM3htbzhIUnFZT3lSbzJrZScsICdjaG9pY2VzJzogW3snZmluaXNoX3JlYXNvbic6ICdzdG9wJywgJ2luZGV4JzogMCwgJ2xvZ3Byb2JzJzogTm9uZSwgJ21lc3NhZ2UnOiB7J2NvbnRlbnQnOiAiIlswLCAyXVxuXG5TYWZldHkgYW5kIGRyaXZlciBwZXJmb3JtYW5jZSBhcmUgdGhlIGlzc3VlcyBtZW50aW9uZWQsIGFzIHRoZSBjdXN0b21lciBmZWx0IHVuc2FmZSBkdWUgdG8gdGhlIGRyaXZlcidzIGVycmF0aWMgYmVoYXZpb3IuIiIsICdyZWZ1c2FsJzogTm9uZSwgJ3JvbGUnOiAnYXNzaXN0YW50JywgJ2F1ZGlvJzogTm9uZSwgJ2Z1bmN0aW9uX2NhbGwnOiBOb25lLCAndG9vbF9jYWxscyc6IE5vbmV9fV0sICdjcmVhdGVkJzogMTczNDE5MDA1MCwgJ21vZGVsJzogJ2dwdC00by0yMDI0LTA4LTA2JywgJ29iamVjdCc6ICdjaGF0LmNvbXBsZXRpb24nLCAnc2VydmljZV90aWVyJzogTm9uZSwgJ3N5c3RlbV9maW5nZXJwcmludCc6ICdmcF85ZmFiYTlmMDM4JywgJ3VzYWdlJzogeydjb21wbGV0aW9uX3Rva2Vucyc6IDI4LCAncHJvbXB0X3Rva2Vucyc6IDE2MiwgJ3RvdGFsX3Rva2Vucyc6IDE5MCwgJ2NvbXBsZXRpb25fdG9rZW5zX2RldGFpbHMnOiB7J2FjY2VwdGVkX3ByZWRpY3Rpb25fdG9rZW5zJzogMCwgJ2F1ZGlvX3Rva2Vucyc6IDAsICdyZWFzb25pbmdfdG9rZW5zJzogMCwgJ3JlamVjdGVkX3ByZWRpY3Rpb25fdG9rZW5zJzogMH0sICdwcm9tcHRfdG9rZW5zX2RldGFpbHMnOiB7J2F1ZGlvX3Rva2Vucyc6IDAsICdjYWNoZWRfdG9rZW5zJzogMH19fSIsMC4wMDA4MDI1LDE2MDYuNDI1NzAyODExMjQ1LDAuMDAwNjA3NSwwLjAwMDY4NSwieydpZCc6ICdjaGF0Y21wbC1BZU9MRHRlR0JJTTM1cFh2ZEVCZlZpQXVQUFAxeicsICdjaG9pY2VzJzogW3snZmluaXNoX3JlYXNvbic6ICdzdG9wJywgJ2luZGV4JzogMCwgJ2xvZ3Byb2JzJzogTm9uZSwgJ21lc3NhZ2UnOiB7J2NvbnRlbnQnOiAiIlRoZSBwcmltYXJ5IGlzc3VlIGluIHRoaXMgdGlja2V0IGlzIHRoZSBjdXN0b21lcidzIGZlZWxpbmcgb2YgYmVpbmcgdW5zYWZlIGR1ZSB0byB0aGUgZHJpdmVyJ3MgZXJyYXRpYyBiZWhhdmlvci4gVGhpcyBpcyBhIHNlcmlvdXMgY29uY2VybiB0aGF0IHJlcXVpcmVzIGltbWVkaWF0ZSBhdHRlbnRpb24gdG8gZW5zdXJlIHRoZSBzYWZldHkgb2YgcGFzc2VuZ2VycyBhbmQgdG8gYWRkcmVzcyBhbnkgcG90ZW50aWFsIG1pc2NvbmR1Y3QgYnkgdGhlIGRyaXZlci4iIiwgJ3JlZnVzYWwnOiBOb25lLCAncm9sZSc6ICdhc3Npc3RhbnQnLCAnYXVkaW8nOiBOb25lLCAnZnVuY3Rpb25fY2FsbCc6IE5vbmUsICd0b29sX2NhbGxzJzogTm9uZX19XSwgJ2NyZWF0ZWQnOiAxNzM0MTkwMDUxLCAnbW9kZWwnOiAnZ3B0LTRvLTIwMjQtMDgtMDYnLCAnb2JqZWN0JzogJ2NoYXQuY29tcGxldGlvbicsICdzZXJ2aWNlX3RpZXInOiBOb25lLCAnc3lzdGVtX2ZpbmdlcnByaW50JzogJ2ZwXzlmYWJhOWYwMzgnLCAndXNhZ2UnOiB7J2NvbXBsZXRpb25fdG9rZW5zJzogNDYsICdwcm9tcHRfdG9rZW5zJzogODIsICd0b3RhbF90b2tlbnMnOiAxMjgsICdjb21wbGV0aW9uX3Rva2Vuc19kZXRhaWxzJzogeydhY2NlcHRlZF9wcmVkaWN0aW9uX3Rva2Vucyc6IDAsICdhdWRpb190b2tlbnMnOiAwLCAncmVhc29uaW5nX3Rva2Vucyc6IDAsICdyZWplY3RlZF9wcmVkaWN0aW9uX3Rva2Vucyc6IDB9LCAncHJvbXB0X3Rva2Vuc19kZXRhaWxzJzogeydhdWRpb190b2tlbnMnOiAwLCAnY2FjaGVkX3Rva2Vucyc6IDB9fX0iLDAuMDAwNjY1LDE1MDMuNzU5Mzk4NDk2MjQwNywieydpZCc6ICdjaGF0Y21wbC1BZU9MQ0I0ZklUN3Bqb3JPNnJRYXIzRmp3eEIxWScsICdjaG9pY2VzJzogW3snZmluaXNoX3JlYXNvbic6ICdzdG9wJywgJ2luZGV4JzogMCwgJ2xvZ3Byb2JzJzogTm9uZSwgJ21lc3NhZ2UnOiB7J2NvbnRlbnQnOiAiIjUgIFxuVGhpcyB0aWNrZXQgc2hvdWxkIGJlIHByaW9yaXRpemVkIGF0IHRoZSBoaWdoZXN0IGxldmVsIGJlY2F1c2UgaXQgaW52b2x2ZXMgYSBzYWZldHkgY29uY2Vybiwgd2hpY2ggcmVxdWlyZXMgaW1tZWRpYXRlIGF0dGVudGlvbiB0byBlbnN1cmUgdGhlIHNhZmV0eSBvZiBwYXNzZW5nZXJzIGFuZCBhZGRyZXNzIGFueSBwb3RlbnRpYWwgcmlza3MgYXNzb2NpYXRlZCB3aXRoIHRoZSBkcml2ZXIncyBiZWhhdmlvci4iIiwgJ3JlZnVzYWwnOiBOb25lLCAncm9sZSc6ICdhc3Npc3RhbnQnLCAnYXVkaW8nOiBOb25lLCAnZnVuY3Rpb25fY2FsbCc6IE5vbmUsICd0b29sX2NhbGxzJzogTm9uZX19XSwgJ2NyZWF0ZWQnOiAxNzM0MTkwMDUwLCAnbW9kZWwnOiAnZ3B0LTRvLTIwMjQtMDgtMDYnLCAnb2JqZWN0JzogJ2NoYXQuY29tcGxldGlvbicsICdzZXJ2aWNlX3RpZXInOiBOb25lLCAnc3lzdGVtX2ZpbmdlcnByaW50JzogJ2ZwXzlmYWJhOWYwMzgnLCAndXNhZ2UnOiB7J2NvbXBsZXRpb25fdG9rZW5zJzogMzksICdwcm9tcHRfdG9rZW5zJzogMTY1LCAndG90YWxfdG9rZW5zJzogMjA0LCAnY29tcGxldGlvbl90b2tlbnNfZGV0YWlscyc6IHsnYWNjZXB0ZWRfcHJlZGljdGlvbl90b2tlbnMnOiAwLCAnYXVkaW9fdG9rZW5zJzogMCwgJ3JlYXNvbmluZ190b2tlbnMnOiAwLCAncmVqZWN0ZWRfcHJlZGljdGlvbl90b2tlbnMnOiAwfSwgJ3Byb21wdF90b2tlbnNfZGV0YWlscyc6IHsnYXVkaW9fdG9rZW5zJzogMCwgJ2NhY2hlZF90b2tlbnMnOiAwfX19IiwxNDU5Ljg1NDAxNDU5ODU0MDMsMTI0Ni4xMDU5MTkwMDMxMTUsMC4wMDA2MjI1LCJ7J2lkJzogJ2NoYXRjbXBsLUFlT0xDam42OWNkZ252UXJJS3JPdFpVZlVaVFdEJywgJ2Nob2ljZXMnOiBbeydmaW5pc2hfcmVhc29uJzogJ3N0b3AnLCAnaW5kZXgnOiAwLCAnbG9ncHJvYnMnOiBOb25lLCAnbWVzc2FnZSc6IHsnY29udGVudCc6ICIiTm9cblxuVGhlIGN1c3RvbWVyIGV4cHJlc3NlcyBjb25jZXJuIGFib3V0IHRoZSBkcml2ZXIncyBiZWhhdmlvciBhbmQgcmVxdWVzdHMgdGhhdCB0aGUgaXNzdWUgYmUgYWRkcmVzc2VkLCBidXQgdGhleSBkbyBub3QgZXhwbGljaXRseSBhc2sgZm9yIGEgcmVmdW5kIGluIHRoZWlyIG1lc3NhZ2UuIiIsICdyZWZ1c2FsJzogTm9uZSwgJ3JvbGUnOiAnYXNzaXN0YW50JywgJ2F1ZGlvJzogTm9uZSwgJ2Z1bmN0aW9uX2NhbGwnOiBOb25lLCAndG9vbF9jYWxscyc6IE5vbmV9fV0sICdjcmVhdGVkJzogMTczNDE5MDA1MCwgJ21vZGVsJzogJ2dwdC00by0yMDI0LTA4LTA2JywgJ29iamVjdCc6ICdjaGF0LmNvbXBsZXRpb24nLCAnc2VydmljZV90aWVyJzogTm9uZSwgJ3N5c3RlbV9maW5nZXJwcmludCc6ICdmcF85ZmFiYTlmMDM4JywgJ3VzYWdlJzogeydjb21wbGV0aW9uX3Rva2Vucyc6IDMxLCAncHJvbXB0X3Rva2Vucyc6IDExOSwgJ3RvdGFsX3Rva2Vucyc6IDE1MCwgJ2NvbXBsZXRpb25fdG9rZW5zX2RldGFpbHMnOiB7J2FjY2VwdGVkX3ByZWRpY3Rpb25fdG9rZW5zJzogMCwgJ2F1ZGlvX3Rva2Vucyc6IDAsICdyZWFzb25pbmdfdG9rZW5zJzogMCwgJ3JlamVjdGVkX3ByZWRpY3Rpb25fdG9rZW5zJzogMH0sICdwcm9tcHRfdG9rZW5zX2RldGFpbHMnOiB7J2F1ZGlvX3Rva2Vucyc6IDAsICdjYWNoZWRfdG9rZW5zJzogMH19fSIsMCxEb2VzIHRoZSBjdXN0b21lciBhc2sgZm9yIGEgcmVmdW5kIGluIHRoaXMgdGlja2V0PyBUaWNrZXQ6IHt7IHRpY2tldCB9fSwiSWYgdGhlIHByaW1hcnkgaXNzdWUgaW4gdGhpcyB0aWNrZXQgaXMgc2FmZXR5LCB3YXMgdGhlcmUgYW4gYWNjaWRlbnQgd2hlcmUgc29tZW9uZSB3YXMgaHVydD8gVGlja2V0OiB7eyB0aWNrZXQgfX0iLFdoYXQgaXMgdGhlIHByaW1hcnkgaXNzdWUgaW4gdGhpcyB0aWNrZXQ/IFRpY2tldDoge3sgdGlja2V0IH19LENoZWNrIGFsbCBvZiB0aGUgaXNzdWVzIG1lbnRpb25lZCBpbiB0aGlzIHRpY2tldDoge3sgdGlja2V0IH19LCJPbiBhIHNjYWxlIGZyb20gMCB0byA1LCB3aGF0IGlzIHRoZSBwcmlvcml0eSBsZXZlbCBvZiB0aGlzIHRpY2tldD8gVGlja2V0OiB7eyB0aWNrZXQgfX0iLFdoYXQgaXMgdGhlIHNlbnRpbWVudCBvZiB0aGlzIHRpY2tldD8gVGlja2V0OiB7eyB0aWNrZXQgfX0sIlsnc2FmZXR5JywgJ2NsZWFubGluZXNzJywgJ2RyaXZlciBwZXJmb3JtYW5jZScsICdHUFMvcm91dGUnLCAnbG9zdCBpdGVtJywgJ290aGVyJ10iLCJbJ1ZlcnkgcG9zaXRpdmUnLCAnU29tZXdoYXQgcG9zaXRpdmUnLCAnTmV1dHJhbCcsICdTb21ld2hhdCBuZWdhdGl2ZScsICdWZXJ5IG5lZ2F0aXZlJ10iLCwiWydObycsICdZZXMnXSIsIlsnWWVzJywgJ05vJywgJ05vdCBhcHBsaWNhYmxlJ10iLCJbMCwgMSwgMiwgMywgNCwgNV0iLGxpbmVhcl9zY2FsZSxtdWx0aXBsZV9jaG9pY2UsbXVsdGlwbGVfY2hvaWNlLHllc19ubyxmcmVlX3RleHQsY2hlY2tib3gsLCJUaGUgY3VzdG9tZXIgZXhwcmVzc2VzIGNvbmNlcm4gYWJvdXQgdGhlIGRyaXZlcidzIGJlaGF2aW9yIGFuZCByZXF1ZXN0cyB0aGF0IHRoZSBpc3N1ZSBiZSBhZGRyZXNzZWQsIGJ1dCB0aGV5IGRvIG5vdCBleHBsaWNpdGx5IGFzayBmb3IgYSByZWZ1bmQgaW4gdGhlaXIgbWVzc2FnZS4iLCJUaGlzIHRpY2tldCBzaG91bGQgYmUgcHJpb3JpdGl6ZWQgYXQgdGhlIGhpZ2hlc3QgbGV2ZWwgYmVjYXVzZSBpdCBpbnZvbHZlcyBhIHNhZmV0eSBjb25jZXJuLCB3aGljaCByZXF1aXJlcyBpbW1lZGlhdGUgYXR0ZW50aW9uIHRvIGVuc3VyZSB0aGUgc2FmZXR5IG9mIHBhc3NlbmdlcnMgYW5kIGFkZHJlc3MgYW55IHBvdGVudGlhbCByaXNrcyBhc3NvY2lhdGVkIHdpdGggdGhlIGRyaXZlcidzIGJlaGF2aW9yLiIsIlNhZmV0eSBhbmQgZHJpdmVyIHBlcmZvcm1hbmNlIGFyZSB0aGUgaXNzdWVzIG1lbnRpb25lZCwgYXMgdGhlIGN1c3RvbWVyIGZlbHQgdW5zYWZlIGR1ZSB0byB0aGUgZHJpdmVyJ3MgZXJyYXRpYyBiZWhhdmlvci4iLCJUaGUgY3VzdG9tZXIgZXhwcmVzc2VzIGZlZWxpbmcgdW5zYWZlIGFuZCBkZXNjcmliZXMgdGhlIGRyaXZlcidzIGJlaGF2aW9yIGFzIGVycmF0aWMsIHdoaWNoIGluZGljYXRlcyBhIHNpZ25pZmljYW50IGxldmVsIG9mIGNvbmNlcm4gYW5kIGRpc3NhdGlzZmFjdGlvbi4iLFRoZSB0aWNrZXQgbWVudGlvbnMgZmVlbGluZyB1bnNhZmUgZHVlIHRvIHRoZSBkcml2ZXIncyBiZWhhdmlvciBidXQgZG9lcyBub3Qgc3BlY2lmeSB0aGF0IGFuIGFjY2lkZW50IG9jY3VycmVkIG9yIHRoYXQgc29tZW9uZSB3YXMgaHVydC4sIlZlcnkgbmVnYXRpdmUgIApUaGUgY3VzdG9tZXIgZXhwcmVzc2VzIGZlZWxpbmcgdW5zYWZlIGFuZCBkZXNjcmliZXMgdGhlIGRyaXZlcidzIGJlaGF2aW9yIGFzIGVycmF0aWMsIHdoaWNoIGluZGljYXRlcyBhIHNpZ25pZmljYW50IGxldmVsIG9mIGNvbmNlcm4gYW5kIGRpc3NhdGlzZmFjdGlvbi4iLCJbMCwgMl0KClNhZmV0eSBhbmQgZHJpdmVyIHBlcmZvcm1hbmNlIGFyZSB0aGUgaXNzdWVzIG1lbnRpb25lZCwgYXMgdGhlIGN1c3RvbWVyIGZlbHQgdW5zYWZlIGR1ZSB0byB0aGUgZHJpdmVyJ3MgZXJyYXRpYyBiZWhhdmlvci4iLCJObwoKVGhlIGN1c3RvbWVyIGV4cHJlc3NlcyBjb25jZXJuIGFib3V0IHRoZSBkcml2ZXIncyBiZWhhdmlvciBhbmQgcmVxdWVzdHMgdGhhdCB0aGUgaXNzdWUgYmUgYWRkcmVzc2VkLCBidXQgdGhleSBkbyBub3QgZXhwbGljaXRseSBhc2sgZm9yIGEgcmVmdW5kIGluIHRoZWlyIG1lc3NhZ2UuIixUaGUgcHJpbWFyeSBpc3N1ZSBpbiB0aGlzIHRpY2tldCBpcyB0aGUgY3VzdG9tZXIncyBmZWVsaW5nIG9mIGJlaW5nIHVuc2FmZSBkdWUgdG8gdGhlIGRyaXZlcidzIGVycmF0aWMgYmVoYXZpb3IuIFRoaXMgaXMgYSBzZXJpb3VzIGNvbmNlcm4gdGhhdCByZXF1aXJlcyBpbW1lZGlhdGUgYXR0ZW50aW9uIHRvIGVuc3VyZSB0aGUgc2FmZXR5IG9mIHBhc3NlbmdlcnMgYW5kIHRvIGFkZHJlc3MgYW55IHBvdGVudGlhbCBtaXNjb25kdWN0IGJ5IHRoZSBkcml2ZXIuLCJOb3QgYXBwbGljYWJsZQoKVGhlIHRpY2tldCBtZW50aW9ucyBmZWVsaW5nIHVuc2FmZSBkdWUgdG8gdGhlIGRyaXZlcidzIGJlaGF2aW9yIGJ1dCBkb2VzIG5vdCBzcGVjaWZ5IHRoYXQgYW4gYWNjaWRlbnQgb2NjdXJyZWQgb3IgdGhhdCBzb21lb25lIHdhcyBodXJ0LiIsIjUgIApUaGlzIHRpY2tldCBzaG91bGQgYmUgcHJpb3JpdGl6ZWQgYXQgdGhlIGhpZ2hlc3QgbGV2ZWwgYmVjYXVzZSBpdCBpbnZvbHZlcyBhIHNhZmV0eSBjb25jZXJuLCB3aGljaCByZXF1aXJlcyBpbW1lZGlhdGUgYXR0ZW50aW9uIHRvIGVuc3VyZSB0aGUgc2FmZXR5IG9mIHBhc3NlbmdlcnMgYW5kIGFkZHJlc3MgYW55IHBvdGVudGlhbCByaXNrcyBhc3NvY2lhdGVkIHdpdGggdGhlIGRyaXZlcidzIGJlaGF2aW9yLiINCk5vLFZlcnkgbmVnYXRpdmUsTm8sIlRoZSBwcmltYXJ5IGlzc3VlIGluIHRoaXMgdGlja2V0IGlzIHRoYXQgdGhlIGRyaXZlciBkaWQgbm90IGZvbGxvdyB0aGUgY3VzdG9tZXIncyBwcmVmZXJyZWQgcm91dGUsIHdoaWNoIHRoZSBjdXN0b21lciBiZWxpZXZlcyBpcyBzaG9ydGVyLCBsZWFkaW5nIHRvIGRpc3NhdGlzZmFjdGlvbiB3aXRoIHRoZSBzZXJ2aWNlLiBBcyBhbiBleHBlcnQgY3VzdG9tZXIgc2VydmljZSBhZ2VudCwgSSB3b3VsZCBhZGRyZXNzIHRoZSBjdXN0b21lcidzIGNvbmNlcm4gYnkgYWNrbm93bGVkZ2luZyB0aGVpciBmcnVzdHJhdGlvbiwgZXhwbGFpbmluZyBhbnkgcG9zc2libGUgcmVhc29ucyBmb3IgdGhlIGRyaXZlcidzIGRlY2lzaW9uIChzdWNoIGFzIHRyYWZmaWMgY29uZGl0aW9ucyBvciBjb21wYW55IHBvbGljeSksIGFuZCBvZmZlcmluZyBhIHJlc29sdXRpb24gb3IgY29tcGVuc2F0aW9uIGlmIGFwcHJvcHJpYXRlLiIsMiwiWydkcml2ZXIgcGVyZm9ybWFuY2UnLCAnR1BTL3JvdXRlJ10iLCJUaGUgZHJpdmVyIHJlZnVzZWQgdG8gZm9sbG93IG15IHByZWZlcnJlZCByb3V0ZSwgd2hpY2ggaXMgc2hvcnRlci4gSSdtIG5vdCBzYXRpc2ZpZWQgd2l0aCB0aGUgc2VydmljZS4iLFlvdSBhcmUgYW4gZXhwZXJ0IGN1c3RvbWVyIHNlcnZpY2UgYWdlbnQuLEFnZW50XzEwLDE1LFlvdSBhcmUgYW5zd2VyaW5nIHF1ZXN0aW9ucyBhcyBpZiB5b3Ugd2VyZSBhIGh1bWFuLiBEbyBub3QgYnJlYWsgY2hhcmFjdGVyLiwwLDEsMCxncHQtNG8sMC41LEZhbHNlLDEwMDAsMywiV2hhdCBpcyB0aGUgcHJpbWFyeSBpc3N1ZSBpbiB0aGlzIHRpY2tldD8gVGlja2V0OiBUaGUgZHJpdmVyIHJlZnVzZWQgdG8gZm9sbG93IG15IHByZWZlcnJlZCByb3V0ZSwgd2hpY2ggaXMgc2hvcnRlci4gSSdtIG5vdCBzYXRpc2ZpZWQgd2l0aCB0aGUgc2VydmljZS4iLCJZb3UgYXJlIGFuc3dlcmluZyBxdWVzdGlvbnMgYXMgaWYgeW91IHdlcmUgYSBodW1hbi4gRG8gbm90IGJyZWFrIGNoYXJhY3Rlci4gWW91ciB0cmFpdHM6IHsncGVyc29uYSc6ICdZb3UgYXJlIGFuIGV4cGVydCBjdXN0b21lciBzZXJ2aWNlIGFnZW50LicsICd5ZWFyc19leHBlcmllbmNlJzogMTV9IiwiWW91IGFyZSBhbnN3ZXJpbmcgcXVlc3Rpb25zIGFzIGlmIHlvdSB3ZXJlIGEgaHVtYW4uIERvIG5vdCBicmVhayBjaGFyYWN0ZXIuIFlvdXIgdHJhaXRzOiB7J3BlcnNvbmEnOiAnWW91IGFyZSBhbiBleHBlcnQgY3VzdG9tZXIgc2VydmljZSBhZ2VudC4nLCAneWVhcnNfZXhwZXJpZW5jZSc6IDE1fSIsIkNoZWNrIGFsbCBvZiB0aGUgaXNzdWVzIG1lbnRpb25lZCBpbiB0aGlzIHRpY2tldDogVGhlIGRyaXZlciByZWZ1c2VkIHRvIGZvbGxvdyBteSBwcmVmZXJyZWQgcm91dGUsIHdoaWNoIGlzIHNob3J0ZXIuIEknbSBub3Qgc2F0aXNmaWVkIHdpdGggdGhlIHNlcnZpY2UuCgogICAgCjA6IHNhZmV0eQogICAgCjE6IGNsZWFubGluZXNzCiAgICAKMjogZHJpdmVyIHBlcmZvcm1hbmNlCiAgICAKMzogR1BTL3JvdXRlCiAgICAKNDogbG9zdCBpdGVtCiAgICAKNTogb3RoZXIKICAgIAoKCgoKCgpQbGVhc2UgcmVzcG9uZCBvbmx5IHdpdGggYSBjb21tYS1zZXBhcmF0ZWQgbGlzdCBvZiB0aGUgY29kZSBvZiB0aGUgb3B0aW9ucyB0aGF0IGFwcGx5LCB3aXRoIHNxdWFyZSBicmFja2V0cy4gRS5nLiwgWzAsIDEsIDNdCgoKQWZ0ZXIgdGhlIGFuc3dlciwgeW91IGNhbiBwdXQgYSBjb21tZW50IGV4cGxhaW5pbmcgeW91ciBjaG9pY2Ugb24gdGhlIG5leHQgbGluZS4iLCJPbiBhIHNjYWxlIGZyb20gMCB0byA1LCB3aGF0IGlzIHRoZSBwcmlvcml0eSBsZXZlbCBvZiB0aGlzIHRpY2tldD8gVGlja2V0OiBUaGUgZHJpdmVyIHJlZnVzZWQgdG8gZm9sbG93IG15IHByZWZlcnJlZCByb3V0ZSwgd2hpY2ggaXMgc2hvcnRlci4gSSdtIG5vdCBzYXRpc2ZpZWQgd2l0aCB0aGUgc2VydmljZS4KCjAgOiBMb3dlc3QKCjEgOiAKCjIgOiAKCjMgOiAKCjQgOiAKCjUgOiBIaWdoZXN0CgpPbmx5IDEgb3B0aW9uIG1heSBiZSBzZWxlY3RlZC4KClJlc3BvbmQgb25seSB3aXRoIHRoZSBjb2RlIGNvcnJlc3BvbmRpbmcgdG8gb25lIG9mIHRoZSBvcHRpb25zLiBFLmcuLCAiIjEiIiBvciAiIjUiIiBieSBpdHNlbGYuCgpBZnRlciB0aGUgYW5zd2VyLCB5b3UgY2FuIHB1dCBhIGNvbW1lbnQgZXhwbGFpbmluZyB3aHkgeW91IGNob3NlIHRoYXQgb3B0aW9uIG9uIHRoZSBuZXh0IGxpbmUuIiwiWW91IGFyZSBhbnN3ZXJpbmcgcXVlc3Rpb25zIGFzIGlmIHlvdSB3ZXJlIGEgaHVtYW4uIERvIG5vdCBicmVhayBjaGFyYWN0ZXIuIFlvdXIgdHJhaXRzOiB7J3BlcnNvbmEnOiAnWW91IGFyZSBhbiBleHBlcnQgY3VzdG9tZXIgc2VydmljZSBhZ2VudC4nLCAneWVhcnNfZXhwZXJpZW5jZSc6IDE1fSIsIllvdSBhcmUgYW5zd2VyaW5nIHF1ZXN0aW9ucyBhcyBpZiB5b3Ugd2VyZSBhIGh1bWFuLiBEbyBub3QgYnJlYWsgY2hhcmFjdGVyLiBZb3VyIHRyYWl0czogeydwZXJzb25hJzogJ1lvdSBhcmUgYW4gZXhwZXJ0IGN1c3RvbWVyIHNlcnZpY2UgYWdlbnQuJywgJ3llYXJzX2V4cGVyaWVuY2UnOiAxNX0iLCJZb3UgYXJlIGFuc3dlcmluZyBxdWVzdGlvbnMgYXMgaWYgeW91IHdlcmUgYSBodW1hbi4gRG8gbm90IGJyZWFrIGNoYXJhY3Rlci4gWW91ciB0cmFpdHM6IHsncGVyc29uYSc6ICdZb3UgYXJlIGFuIGV4cGVydCBjdXN0b21lciBzZXJ2aWNlIGFnZW50LicsICd5ZWFyc19leHBlcmllbmNlJzogMTV9IiwiCldoYXQgaXMgdGhlIHNlbnRpbWVudCBvZiB0aGlzIHRpY2tldD8gVGlja2V0OiBUaGUgZHJpdmVyIHJlZnVzZWQgdG8gZm9sbG93IG15IHByZWZlcnJlZCByb3V0ZSwgd2hpY2ggaXMgc2hvcnRlci4gSSdtIG5vdCBzYXRpc2ZpZWQgd2l0aCB0aGUgc2VydmljZS4KCiAgICAKVmVyeSBwb3NpdGl2ZQogICAgClNvbWV3aGF0IHBvc2l0aXZlCiAgICAKTmV1dHJhbAogICAgClNvbWV3aGF0IG5lZ2F0aXZlCiAgICAKVmVyeSBuZWdhdGl2ZQogICAgCgpPbmx5IDEgb3B0aW9uIG1heSBiZSBzZWxlY3RlZC4KClJlc3BvbmQgb25seSB3aXRoIGEgc3RyaW5nIGNvcnJlc3BvbmRpbmcgdG8gb25lIG9mIHRoZSBvcHRpb25zLgoKCkFmdGVyIHRoZSBhbnN3ZXIsIHlvdSBjYW4gcHV0IGEgY29tbWVudCBleHBsYWluaW5nIHdoeSB5b3UgY2hvc2UgdGhhdCBvcHRpb24gb24gdGhlIG5leHQgbGluZS4iLCIKRG9lcyB0aGUgY3VzdG9tZXIgYXNrIGZvciBhIHJlZnVuZCBpbiB0aGlzIHRpY2tldD8gVGlja2V0OiBUaGUgZHJpdmVyIHJlZnVzZWQgdG8gZm9sbG93IG15IHByZWZlcnJlZCByb3V0ZSwgd2hpY2ggaXMgc2hvcnRlci4gSSdtIG5vdCBzYXRpc2ZpZWQgd2l0aCB0aGUgc2VydmljZS4KCiAgICAKTm8KICAgIApZZXMKICAgIAoKT25seSAxIG9wdGlvbiBtYXkgYmUgc2VsZWN0ZWQuClBsZWFzZSByZXNwb25kIHdpdGgganVzdCB5b3VyIGFuc3dlci4gCgoKQWZ0ZXIgdGhlIGFuc3dlciwgeW91IGNhbiBwdXQgYSBjb21tZW50IGV4cGxhaW5pbmcgeW91ciByZXNwb25zZS4iLCJZb3UgYXJlIGFuc3dlcmluZyBxdWVzdGlvbnMgYXMgaWYgeW91IHdlcmUgYSBodW1hbi4gRG8gbm90IGJyZWFrIGNoYXJhY3Rlci4gWW91ciB0cmFpdHM6IHsncGVyc29uYSc6ICdZb3UgYXJlIGFuIGV4cGVydCBjdXN0b21lciBzZXJ2aWNlIGFnZW50LicsICd5ZWFyc19leHBlcmllbmNlJzogMTV9IiwiCklmIHRoZSBwcmltYXJ5IGlzc3VlIGluIHRoaXMgdGlja2V0IGlzIHNhZmV0eSwgd2FzIHRoZXJlIGFuIGFjY2lkZW50IHdoZXJlIHNvbWVvbmUgd2FzIGh1cnQ/IFRpY2tldDogVGhlIGRyaXZlciByZWZ1c2VkIHRvIGZvbGxvdyBteSBwcmVmZXJyZWQgcm91dGUsIHdoaWNoIGlzIHNob3J0ZXIuIEknbSBub3Qgc2F0aXNmaWVkIHdpdGggdGhlIHNlcnZpY2UuCgogICAgClllcwogICAgCk5vCiAgICAKTm90IGFwcGxpY2FibGUKICAgIAoKT25seSAxIG9wdGlvbiBtYXkgYmUgc2VsZWN0ZWQuCgpSZXNwb25kIG9ubHkgd2l0aCBhIHN0cmluZyBjb3JyZXNwb25kaW5nIHRvIG9uZSBvZiB0aGUgb3B0aW9ucy4KCgpBZnRlciB0aGUgYW5zd2VyLCB5b3UgY2FuIHB1dCBhIGNvbW1lbnQgZXhwbGFpbmluZyB3aHkgeW91IGNob3NlIHRoYXQgb3B0aW9uIG9uIHRoZSBuZXh0IGxpbmUuIiwwLjAwMDYxNSwieydpZCc6ICdjaGF0Y21wbC1BZU9MQ1pQZmQwc2JuSjJvNW96Tmg1S292aVNpaicsICdjaG9pY2VzJzogW3snZmluaXNoX3JlYXNvbic6ICdzdG9wJywgJ2luZGV4JzogMCwgJ2xvZ3Byb2JzJzogTm9uZSwgJ21lc3NhZ2UnOiB7J2NvbnRlbnQnOiAiIk5vICBcblRoZSB0aWNrZXQgZG9lcyBub3QgbWVudGlvbiBhbnkgYWNjaWRlbnQgb3IgaW5qdXJ5LCBvbmx5IGRpc3NhdGlzZmFjdGlvbiB3aXRoIHRoZSBkcml2ZXIncyByb3V0ZSBjaG9pY2UuIiIsICdyZWZ1c2FsJzogTm9uZSwgJ3JvbGUnOiAnYXNzaXN0YW50JywgJ2F1ZGlvJzogTm9uZSwgJ2Z1bmN0aW9uX2NhbGwnOiBOb25lLCAndG9vbF9jYWxscyc6IE5vbmV9fV0sICdjcmVhdGVkJzogMTczNDE5MDA1MCwgJ21vZGVsJzogJ2dwdC00by0yMDI0LTA4LTA2JywgJ29iamVjdCc6ICdjaGF0LmNvbXBsZXRpb24nLCAnc2VydmljZV90aWVyJzogTm9uZSwgJ3N5c3RlbV9maW5nZXJwcmludCc6ICdmcF9hNzlkOGRhYzFmJywgJ3VzYWdlJzogeydjb21wbGV0aW9uX3Rva2Vucyc6IDIwLCAncHJvbXB0X3Rva2Vucyc6IDE0MCwgJ3RvdGFsX3Rva2Vucyc6IDE2MCwgJ2NvbXBsZXRpb25fdG9rZW5zX2RldGFpbHMnOiB7J2FjY2VwdGVkX3ByZWRpY3Rpb25fdG9rZW5zJzogMCwgJ2F1ZGlvX3Rva2Vucyc6IDAsICdyZWFzb25pbmdfdG9rZW5zJzogMCwgJ3JlamVjdGVkX3ByZWRpY3Rpb25fdG9rZW5zJzogMH0sICdwcm9tcHRfdG9rZW5zX2RldGFpbHMnOiB7J2F1ZGlvX3Rva2Vucyc6IDAsICdjYWNoZWRfdG9rZW5zJzogMH19fSIsInsnaWQnOiAnY2hhdGNtcGwtQWVPTENKR0dXZDJUNEV4QzJocWFXWGtUNHVPV08nLCAnY2hvaWNlcyc6IFt7J2ZpbmlzaF9yZWFzb24nOiAnc3RvcCcsICdpbmRleCc6IDAsICdsb2dwcm9icyc6IE5vbmUsICdtZXNzYWdlJzogeydjb250ZW50JzogJ1ZlcnkgbmVnYXRpdmUgIFxuVGhlIGN1c3RvbWVyIGV4cHJlc3NlcyBkaXNzYXRpc2ZhY3Rpb24gd2l0aCB0aGUgc2VydmljZSBhbmQgbWVudGlvbnMgdGhhdCB0aGUgZHJpdmVyIHJlZnVzZWQgdG8gYWNjb21tb2RhdGUgdGhlaXIgcmVxdWVzdCwgaW5kaWNhdGluZyBhIHN0cm9uZyBuZWdhdGl2ZSBzZW50aW1lbnQuJywgJ3JlZnVzYWwnOiBOb25lLCAncm9sZSc6ICdhc3Npc3RhbnQnLCAnYXVkaW8nOiBOb25lLCAnZnVuY3Rpb25fY2FsbCc6IE5vbmUsICd0b29sX2NhbGxzJzogTm9uZX19XSwgJ2NyZWF0ZWQnOiAxNzM0MTkwMDUwLCAnbW9kZWwnOiAnZ3B0LTRvLTIwMjQtMDgtMDYnLCAnb2JqZWN0JzogJ2NoYXQuY29tcGxldGlvbicsICdzZXJ2aWNlX3RpZXInOiBOb25lLCAnc3lzdGVtX2ZpbmdlcnByaW50JzogJ2ZwX2E3OWQ4ZGFjMWYnLCAndXNhZ2UnOiB7J2NvbXBsZXRpb25fdG9rZW5zJzogMjcsICdwcm9tcHRfdG9rZW5zJzogMTM4LCAndG90YWxfdG9rZW5zJzogMTY1LCAnY29tcGxldGlvbl90b2tlbnNfZGV0YWlscyc6IHsnYWNjZXB0ZWRfcHJlZGljdGlvbl90b2tlbnMnOiAwLCAnYXVkaW9fdG9rZW5zJzogMCwgJ3JlYXNvbmluZ190b2tlbnMnOiAwLCAncmVqZWN0ZWRfcHJlZGljdGlvbl90b2tlbnMnOiAwfSwgJ3Byb21wdF90b2tlbnNfZGV0YWlscyc6IHsnYXVkaW9fdG9rZW5zJzogMCwgJ2NhY2hlZF90b2tlbnMnOiAwfX19IiwxNjI2LjAxNjI2MDE2MjYwMTYsMTYwMC4wLCJ7J2lkJzogJ2NoYXRjbXBsLUFlT0xEV0pNekpMVkVnWXlMMWhoMTZueEJaM2dkJywgJ2Nob2ljZXMnOiBbeydmaW5pc2hfcmVhc29uJzogJ3N0b3AnLCAnaW5kZXgnOiAwLCAnbG9ncHJvYnMnOiBOb25lLCAnbWVzc2FnZSc6IHsnY29udGVudCc6ICdbMiwgM11cblxuVGhlIGlzc3VlcyBtZW50aW9uZWQgaW4gdGhlIHRpY2tldCByZWxhdGUgdG8gZHJpdmVyIHBlcmZvcm1hbmNlICh0aGUgZHJpdmVyIHJlZnVzZWQgdG8gZm9sbG93IHRoZSBwcmVmZXJyZWQgcm91dGUpIGFuZCBHUFMvcm91dGUgKHRoZSBtZW50aW9uIG9mIGEgcHJlZmVycmVkIHJvdXRlIGJlaW5nIHNob3J0ZXIpLicsICdyZWZ1c2FsJzogTm9uZSwgJ3JvbGUnOiAnYXNzaXN0YW50JywgJ2F1ZGlvJzogTm9uZSwgJ2Z1bmN0aW9uX2NhbGwnOiBOb25lLCAndG9vbF9jYWxscyc6IE5vbmV9fV0sICdjcmVhdGVkJzogMTczNDE5MDA1MSwgJ21vZGVsJzogJ2dwdC00by0yMDI0LTA4LTA2JywgJ29iamVjdCc6ICdjaGF0LmNvbXBsZXRpb24nLCAnc2VydmljZV90aWVyJzogTm9uZSwgJ3N5c3RlbV9maW5nZXJwcmludCc6ICdmcF9hNzlkOGRhYzFmJywgJ3VzYWdlJzogeydjb21wbGV0aW9uX3Rva2Vucyc6IDQwLCAncHJvbXB0X3Rva2Vucyc6IDE2MSwgJ3RvdGFsX3Rva2Vucyc6IDIwMSwgJ2NvbXBsZXRpb25fdG9rZW5zX2RldGFpbHMnOiB7J2FjY2VwdGVkX3ByZWRpY3Rpb25fdG9rZW5zJzogMCwgJ2F1ZGlvX3Rva2Vucyc6IDAsICdyZWFzb25pbmdfdG9rZW5zJzogMCwgJ3JlamVjdGVkX3ByZWRpY3Rpb25fdG9rZW5zJzogMH0sICdwcm9tcHRfdG9rZW5zX2RldGFpbHMnOiB7J2F1ZGlvX3Rva2Vucyc6IDAsICdjYWNoZWRfdG9rZW5zJzogMH19fSIsMC4wMDA3NzAwMDAwMDAwMDAwMDAxLDE4MTguMTgxODE4MTgxODE4LDAuMDAwNjI1LDAuMDAwODAyNSwieydpZCc6ICdjaGF0Y21wbC1BZU9MQ0Jla2VUZjdIR1lHWkI2eGdGVlpycnlXVCcsICdjaG9pY2VzJzogW3snZmluaXNoX3JlYXNvbic6ICdzdG9wJywgJ2luZGV4JzogMCwgJ2xvZ3Byb2JzJzogTm9uZSwgJ21lc3NhZ2UnOiB7J2NvbnRlbnQnOiAiIlRoZSBwcmltYXJ5IGlzc3VlIGluIHRoaXMgdGlja2V0IGlzIHRoYXQgdGhlIGRyaXZlciBkaWQgbm90IGZvbGxvdyB0aGUgY3VzdG9tZXIncyBwcmVmZXJyZWQgcm91dGUsIHdoaWNoIHRoZSBjdXN0b21lciBiZWxpZXZlcyBpcyBzaG9ydGVyLCBsZWFkaW5nIHRvIGRpc3NhdGlzZmFjdGlvbiB3aXRoIHRoZSBzZXJ2aWNlLiBBcyBhbiBleHBlcnQgY3VzdG9tZXIgc2VydmljZSBhZ2VudCwgSSB3b3VsZCBhZGRyZXNzIHRoZSBjdXN0b21lcidzIGNvbmNlcm4gYnkgYWNrbm93bGVkZ2luZyB0aGVpciBmcnVzdHJhdGlvbiwgZXhwbGFpbmluZyBhbnkgcG9zc2libGUgcmVhc29ucyBmb3IgdGhlIGRyaXZlcidzIGRlY2lzaW9uIChzdWNoIGFzIHRyYWZmaWMgY29uZGl0aW9ucyBvciBjb21wYW55IHBvbGljeSksIGFuZCBvZmZlcmluZyBhIHJlc29sdXRpb24gb3IgY29tcGVuc2F0aW9uIGlmIGFwcHJvcHJpYXRlLiIiLCAncmVmdXNhbCc6IE5vbmUsICdyb2xlJzogJ2Fzc2lzdGFudCcsICdhdWRpbyc6IE5vbmUsICdmdW5jdGlvbl9jYWxsJzogTm9uZSwgJ3Rvb2xfY2FsbHMnOiBOb25lfX1dLCAnY3JlYXRlZCc6IDE3MzQxOTAwNTAsICdtb2RlbCc6ICdncHQtNG8tMjAyNC0wOC0wNicsICdvYmplY3QnOiAnY2hhdC5jb21wbGV0aW9uJywgJ3NlcnZpY2VfdGllcic6IE5vbmUsICdzeXN0ZW1fZmluZ2VycHJpbnQnOiAnZnBfOWZhYmE5ZjAzOCcsICd1c2FnZSc6IHsnY29tcGxldGlvbl90b2tlbnMnOiA3NiwgJ3Byb21wdF90b2tlbnMnOiA4MSwgJ3RvdGFsX3Rva2Vucyc6IDE1NywgJ2NvbXBsZXRpb25fdG9rZW5zX2RldGFpbHMnOiB7J2FjY2VwdGVkX3ByZWRpY3Rpb25fdG9rZW5zJzogMCwgJ2F1ZGlvX3Rva2Vucyc6IDAsICdyZWFzb25pbmdfdG9rZW5zJzogMCwgJ3JlamVjdGVkX3ByZWRpY3Rpb25fdG9rZW5zJzogMH0sICdwcm9tcHRfdG9rZW5zX2RldGFpbHMnOiB7J2F1ZGlvX3Rva2Vucyc6IDAsICdjYWNoZWRfdG9rZW5zJzogMH19fSIsMC4wMDA5NjI1LDEwMzguOTYxMDM4OTYxMDM4OSwieydpZCc6ICdjaGF0Y21wbC1BZU9MQ0NjcW5wT3Q1a1VMZHhtUnRzRElEbWJUUCcsICdjaG9pY2VzJzogW3snZmluaXNoX3JlYXNvbic6ICdzdG9wJywgJ2luZGV4JzogMCwgJ2xvZ3Byb2JzJzogTm9uZSwgJ21lc3NhZ2UnOiB7J2NvbnRlbnQnOiAnMiAgXG5UaGlzIGlzc3VlIGlzIGltcG9ydGFudCBhcyBpdCBwZXJ0YWlucyB0byBjdXN0b21lciBzYXRpc2ZhY3Rpb24gYW5kIHNlcnZpY2UgcXVhbGl0eSwgYnV0IGl0IGlzIG5vdCBhbiB1cmdlbnQgc2FmZXR5IG9yIG9wZXJhdGlvbmFsIGlzc3VlLiBBZGRyZXNzaW5nIGl0IHdpbGwgaGVscCBpbXByb3ZlIGN1c3RvbWVyIGV4cGVyaWVuY2UuJywgJ3JlZnVzYWwnOiBOb25lLCAncm9sZSc6ICdhc3Npc3RhbnQnLCAnYXVkaW8nOiBOb25lLCAnZnVuY3Rpb25fY2FsbCc6IE5vbmUsICd0b29sX2NhbGxzJzogTm9uZX19XSwgJ2NyZWF0ZWQnOiAxNzM0MTkwMDUwLCAnbW9kZWwnOiAnZ3B0LTRvLTIwMjQtMDgtMDYnLCAnb2JqZWN0JzogJ2NoYXQuY29tcGxldGlvbicsICdzZXJ2aWNlX3RpZXInOiBOb25lLCAnc3lzdGVtX2ZpbmdlcnByaW50JzogJ2ZwX2E3OWQ4ZGFjMWYnLCAndXNhZ2UnOiB7J2NvbXBsZXRpb25fdG9rZW5zJzogMzYsICdwcm9tcHRfdG9rZW5zJzogMTY0LCAndG90YWxfdG9rZW5zJzogMjAwLCAnY29tcGxldGlvbl90b2tlbnNfZGV0YWlscyc6IHsnYWNjZXB0ZWRfcHJlZGljdGlvbl90b2tlbnMnOiAwLCAnYXVkaW9fdG9rZW5zJzogMCwgJ3JlYXNvbmluZ190b2tlbnMnOiAwLCAncmVqZWN0ZWRfcHJlZGljdGlvbl90b2tlbnMnOiAwfSwgJ3Byb21wdF90b2tlbnNfZGV0YWlscyc6IHsnYXVkaW9fdG9rZW5zJzogMCwgJ2NhY2hlZF90b2tlbnMnOiAwfX19IiwxMjQ2LjEwNTkxOTAwMzExNSwxMjk4LjcwMTI5ODcwMTI5ODYsMC4wMDA1NSwieydpZCc6ICdjaGF0Y21wbC1BZU9MQ2N3dmE5M0tBeDZtcmJSMXQ0ZVBveHVnUycsICdjaG9pY2VzJzogW3snZmluaXNoX3JlYXNvbic6ICdzdG9wJywgJ2luZGV4JzogMCwgJ2xvZ3Byb2JzJzogTm9uZSwgJ21lc3NhZ2UnOiB7J2NvbnRlbnQnOiAnTm9cblxuVGhlIHRpY2tldCBkb2VzIG5vdCBleHBsaWNpdGx5IG1lbnRpb24gYSByZXF1ZXN0IGZvciBhIHJlZnVuZC4gVGhlIGN1c3RvbWVyIGlzIGV4cHJlc3NpbmcgZGlzc2F0aXNmYWN0aW9uIHdpdGggdGhlIHNlcnZpY2UsIGJ1dCB0aGV5IGhhdmUgbm90IGRpcmVjdGx5IGFza2VkIGZvciBhIHJlZnVuZC4nLCAncmVmdXNhbCc6IE5vbmUsICdyb2xlJzogJ2Fzc2lzdGFudCcsICdhdWRpbyc6IE5vbmUsICdmdW5jdGlvbl9jYWxsJzogTm9uZSwgJ3Rvb2xfY2FsbHMnOiBOb25lfX1dLCAnY3JlYXRlZCc6IDE3MzQxOTAwNTAsICdtb2RlbCc6ICdncHQtNG8tMjAyNC0wOC0wNicsICdvYmplY3QnOiAnY2hhdC5jb21wbGV0aW9uJywgJ3NlcnZpY2VfdGllcic6IE5vbmUsICdzeXN0ZW1fZmluZ2VycHJpbnQnOiAnZnBfYTc5ZDhkYWMxZicsICd1c2FnZSc6IHsnY29tcGxldGlvbl90b2tlbnMnOiAzMywgJ3Byb21wdF90b2tlbnMnOiAxMTgsICd0b3RhbF90b2tlbnMnOiAxNTEsICdjb21wbGV0aW9uX3Rva2Vuc19kZXRhaWxzJzogeydhY2NlcHRlZF9wcmVkaWN0aW9uX3Rva2Vucyc6IDAsICdhdWRpb190b2tlbnMnOiAwLCAncmVhc29uaW5nX3Rva2Vucyc6IDAsICdyZWplY3RlZF9wcmVkaWN0aW9uX3Rva2Vucyc6IDB9LCAncHJvbXB0X3Rva2Vuc19kZXRhaWxzJzogeydhdWRpb190b2tlbnMnOiAwLCAnY2FjaGVkX3Rva2Vucyc6IDB9fX0iLDAsRG9lcyB0aGUgY3VzdG9tZXIgYXNrIGZvciBhIHJlZnVuZCBpbiB0aGlzIHRpY2tldD8gVGlja2V0OiB7eyB0aWNrZXQgfX0sIklmIHRoZSBwcmltYXJ5IGlzc3VlIGluIHRoaXMgdGlja2V0IGlzIHNhZmV0eSwgd2FzIHRoZXJlIGFuIGFjY2lkZW50IHdoZXJlIHNvbWVvbmUgd2FzIGh1cnQ/IFRpY2tldDoge3sgdGlja2V0IH19IixXaGF0IGlzIHRoZSBwcmltYXJ5IGlzc3VlIGluIHRoaXMgdGlja2V0PyBUaWNrZXQ6IHt7IHRpY2tldCB9fSxDaGVjayBhbGwgb2YgdGhlIGlzc3VlcyBtZW50aW9uZWQgaW4gdGhpcyB0aWNrZXQ6IHt7IHRpY2tldCB9fSwiT24gYSBzY2FsZSBmcm9tIDAgdG8gNSwgd2hhdCBpcyB0aGUgcHJpb3JpdHkgbGV2ZWwgb2YgdGhpcyB0aWNrZXQ/IFRpY2tldDoge3sgdGlja2V0IH19IixXaGF0IGlzIHRoZSBzZW50aW1lbnQgb2YgdGhpcyB0aWNrZXQ/IFRpY2tldDoge3sgdGlja2V0IH19LCJbJ3NhZmV0eScsICdjbGVhbmxpbmVzcycsICdkcml2ZXIgcGVyZm9ybWFuY2UnLCAnR1BTL3JvdXRlJywgJ2xvc3QgaXRlbScsICdvdGhlciddIiwiWydWZXJ5IHBvc2l0aXZlJywgJ1NvbWV3aGF0IHBvc2l0aXZlJywgJ05ldXRyYWwnLCAnU29tZXdoYXQgbmVnYXRpdmUnLCAnVmVyeSBuZWdhdGl2ZSddIiwsIlsnTm8nLCAnWWVzJ10iLCJbJ1llcycsICdObycsICdOb3QgYXBwbGljYWJsZSddIiwiWzAsIDEsIDIsIDMsIDQsIDVdIixsaW5lYXJfc2NhbGUsbXVsdGlwbGVfY2hvaWNlLG11bHRpcGxlX2Nob2ljZSx5ZXNfbm8sZnJlZV90ZXh0LGNoZWNrYm94LCwiVGhlIHRpY2tldCBkb2VzIG5vdCBleHBsaWNpdGx5IG1lbnRpb24gYSByZXF1ZXN0IGZvciBhIHJlZnVuZC4gVGhlIGN1c3RvbWVyIGlzIGV4cHJlc3NpbmcgZGlzc2F0aXNmYWN0aW9uIHdpdGggdGhlIHNlcnZpY2UsIGJ1dCB0aGV5IGhhdmUgbm90IGRpcmVjdGx5IGFza2VkIGZvciBhIHJlZnVuZC4iLCJUaGlzIGlzc3VlIGlzIGltcG9ydGFudCBhcyBpdCBwZXJ0YWlucyB0byBjdXN0b21lciBzYXRpc2ZhY3Rpb24gYW5kIHNlcnZpY2UgcXVhbGl0eSwgYnV0IGl0IGlzIG5vdCBhbiB1cmdlbnQgc2FmZXR5IG9yIG9wZXJhdGlvbmFsIGlzc3VlLiBBZGRyZXNzaW5nIGl0IHdpbGwgaGVscCBpbXByb3ZlIGN1c3RvbWVyIGV4cGVyaWVuY2UuIixUaGUgaXNzdWVzIG1lbnRpb25lZCBpbiB0aGUgdGlja2V0IHJlbGF0ZSB0byBkcml2ZXIgcGVyZm9ybWFuY2UgKHRoZSBkcml2ZXIgcmVmdXNlZCB0byBmb2xsb3cgdGhlIHByZWZlcnJlZCByb3V0ZSkgYW5kIEdQUy9yb3V0ZSAodGhlIG1lbnRpb24gb2YgYSBwcmVmZXJyZWQgcm91dGUgYmVpbmcgc2hvcnRlcikuLCJUaGUgY3VzdG9tZXIgZXhwcmVzc2VzIGRpc3NhdGlzZmFjdGlvbiB3aXRoIHRoZSBzZXJ2aWNlIGFuZCBtZW50aW9ucyB0aGF0IHRoZSBkcml2ZXIgcmVmdXNlZCB0byBhY2NvbW1vZGF0ZSB0aGVpciByZXF1ZXN0LCBpbmRpY2F0aW5nIGEgc3Ryb25nIG5lZ2F0aXZlIHNlbnRpbWVudC4iLCJUaGUgdGlja2V0IGRvZXMgbm90IG1lbnRpb24gYW55IGFjY2lkZW50IG9yIGluanVyeSwgb25seSBkaXNzYXRpc2ZhY3Rpb24gd2l0aCB0aGUgZHJpdmVyJ3Mgcm91dGUgY2hvaWNlLiIsIlZlcnkgbmVnYXRpdmUgIApUaGUgY3VzdG9tZXIgZXhwcmVzc2VzIGRpc3NhdGlzZmFjdGlvbiB3aXRoIHRoZSBzZXJ2aWNlIGFuZCBtZW50aW9ucyB0aGF0IHRoZSBkcml2ZXIgcmVmdXNlZCB0byBhY2NvbW1vZGF0ZSB0aGVpciByZXF1ZXN0LCBpbmRpY2F0aW5nIGEgc3Ryb25nIG5lZ2F0aXZlIHNlbnRpbWVudC4iLCJbMiwgM10KClRoZSBpc3N1ZXMgbWVudGlvbmVkIGluIHRoZSB0aWNrZXQgcmVsYXRlIHRvIGRyaXZlciBwZXJmb3JtYW5jZSAodGhlIGRyaXZlciByZWZ1c2VkIHRvIGZvbGxvdyB0aGUgcHJlZmVycmVkIHJvdXRlKSBhbmQgR1BTL3JvdXRlICh0aGUgbWVudGlvbiBvZiBhIHByZWZlcnJlZCByb3V0ZSBiZWluZyBzaG9ydGVyKS4iLCJObwoKVGhlIHRpY2tldCBkb2VzIG5vdCBleHBsaWNpdGx5IG1lbnRpb24gYSByZXF1ZXN0IGZvciBhIHJlZnVuZC4gVGhlIGN1c3RvbWVyIGlzIGV4cHJlc3NpbmcgZGlzc2F0aXNmYWN0aW9uIHdpdGggdGhlIHNlcnZpY2UsIGJ1dCB0aGV5IGhhdmUgbm90IGRpcmVjdGx5IGFza2VkIGZvciBhIHJlZnVuZC4iLCJUaGUgcHJpbWFyeSBpc3N1ZSBpbiB0aGlzIHRpY2tldCBpcyB0aGF0IHRoZSBkcml2ZXIgZGlkIG5vdCBmb2xsb3cgdGhlIGN1c3RvbWVyJ3MgcHJlZmVycmVkIHJvdXRlLCB3aGljaCB0aGUgY3VzdG9tZXIgYmVsaWV2ZXMgaXMgc2hvcnRlciwgbGVhZGluZyB0byBkaXNzYXRpc2ZhY3Rpb24gd2l0aCB0aGUgc2VydmljZS4gQXMgYW4gZXhwZXJ0IGN1c3RvbWVyIHNlcnZpY2UgYWdlbnQsIEkgd291bGQgYWRkcmVzcyB0aGUgY3VzdG9tZXIncyBjb25jZXJuIGJ5IGFja25vd2xlZGdpbmcgdGhlaXIgZnJ1c3RyYXRpb24sIGV4cGxhaW5pbmcgYW55IHBvc3NpYmxlIHJlYXNvbnMgZm9yIHRoZSBkcml2ZXIncyBkZWNpc2lvbiAoc3VjaCBhcyB0cmFmZmljIGNvbmRpdGlvbnMgb3IgY29tcGFueSBwb2xpY3kpLCBhbmQgb2ZmZXJpbmcgYSByZXNvbHV0aW9uIG9yIGNvbXBlbnNhdGlvbiBpZiBhcHByb3ByaWF0ZS4iLCJObyAgClRoZSB0aWNrZXQgZG9lcyBub3QgbWVudGlvbiBhbnkgYWNjaWRlbnQgb3IgaW5qdXJ5LCBvbmx5IGRpc3NhdGlzZmFjdGlvbiB3aXRoIHRoZSBkcml2ZXIncyByb3V0ZSBjaG9pY2UuIiwiMiAgClRoaXMgaXNzdWUgaXMgaW1wb3J0YW50IGFzIGl0IHBlcnRhaW5zIHRvIGN1c3RvbWVyIHNhdGlzZmFjdGlvbiBhbmQgc2VydmljZSBxdWFsaXR5LCBidXQgaXQgaXMgbm90IGFuIHVyZ2VudCBzYWZldHkgb3Igb3BlcmF0aW9uYWwgaXNzdWUuIEFkZHJlc3NpbmcgaXQgd2lsbCBoZWxwIGltcHJvdmUgY3VzdG9tZXIgZXhwZXJpZW5jZS4iDQpOb3QgYXBwbGljYWJsZSxWZXJ5IHBvc2l0aXZlLE5vLCJCYXNlZCBvbiB0aGUgY29udGVudCBvZiB0aGUgdGlja2V0LCBpdCBhcHBlYXJzIHRoYXQgdGhlcmUgaXMgbm8gaXNzdWUgYmVpbmcgcmVwb3J0ZWQuIEluc3RlYWQsIHRoZSB0aWNrZXQgY29udGFpbnMgcG9zaXRpdmUgZmVlZGJhY2sgcmVnYXJkaW5nIHRoZSBxdWljayByZXNwb25zZSB0byBhIHJpZGUgcmVxdWVzdCBhbmQgdGhlIHByb2Zlc3Npb25hbGlzbSBvZiB0aGUgZHJpdmVyLiBUaGlzIGlzIGEgY29tbWVuZGF0aW9uIHJhdGhlciB0aGFuIGEgY29tcGxhaW50IG9yIGlzc3VlIHRoYXQgbmVlZHMgcmVzb2x1dGlvbi4iLDAsIlsnZHJpdmVyIHBlcmZvcm1hbmNlJywgJ290aGVyJ10iLEltcHJlc3NlZCB3aXRoIHRoZSBxdWljayByZXNwb25zZSB0byBteSByaWRlIHJlcXVlc3QgYW5kIHRoZSBkcml2ZXIncyBwcm9mZXNzaW9uYWxpc20uLFlvdSBhcmUgYW4gZXhwZXJ0IGN1c3RvbWVyIHNlcnZpY2UgYWdlbnQuLEFnZW50XzExLDE1LFlvdSBhcmUgYW5zd2VyaW5nIHF1ZXN0aW9ucyBhcyBpZiB5b3Ugd2VyZSBhIGh1bWFuLiBEbyBub3QgYnJlYWsgY2hhcmFjdGVyLiwwLDEsMCxncHQtNG8sMC41LEZhbHNlLDEwMDAsMyxXaGF0IGlzIHRoZSBwcmltYXJ5IGlzc3VlIGluIHRoaXMgdGlja2V0PyBUaWNrZXQ6IEltcHJlc3NlZCB3aXRoIHRoZSBxdWljayByZXNwb25zZSB0byBteSByaWRlIHJlcXVlc3QgYW5kIHRoZSBkcml2ZXIncyBwcm9mZXNzaW9uYWxpc20uLCJZb3UgYXJlIGFuc3dlcmluZyBxdWVzdGlvbnMgYXMgaWYgeW91IHdlcmUgYSBodW1hbi4gRG8gbm90IGJyZWFrIGNoYXJhY3Rlci4gWW91ciB0cmFpdHM6IHsncGVyc29uYSc6ICdZb3UgYXJlIGFuIGV4cGVydCBjdXN0b21lciBzZXJ2aWNlIGFnZW50LicsICd5ZWFyc19leHBlcmllbmNlJzogMTV9IiwiWW91IGFyZSBhbnN3ZXJpbmcgcXVlc3Rpb25zIGFzIGlmIHlvdSB3ZXJlIGEgaHVtYW4uIERvIG5vdCBicmVhayBjaGFyYWN0ZXIuIFlvdXIgdHJhaXRzOiB7J3BlcnNvbmEnOiAnWW91IGFyZSBhbiBleHBlcnQgY3VzdG9tZXIgc2VydmljZSBhZ2VudC4nLCAneWVhcnNfZXhwZXJpZW5jZSc6IDE1fSIsIkNoZWNrIGFsbCBvZiB0aGUgaXNzdWVzIG1lbnRpb25lZCBpbiB0aGlzIHRpY2tldDogSW1wcmVzc2VkIHdpdGggdGhlIHF1aWNrIHJlc3BvbnNlIHRvIG15IHJpZGUgcmVxdWVzdCBhbmQgdGhlIGRyaXZlcidzIHByb2Zlc3Npb25hbGlzbS4KCiAgICAKMDogc2FmZXR5CiAgICAKMTogY2xlYW5saW5lc3MKICAgIAoyOiBkcml2ZXIgcGVyZm9ybWFuY2UKICAgIAozOiBHUFMvcm91dGUKICAgIAo0OiBsb3N0IGl0ZW0KICAgIAo1OiBvdGhlcgogICAgCgoKCgoKClBsZWFzZSByZXNwb25kIG9ubHkgd2l0aCBhIGNvbW1hLXNlcGFyYXRlZCBsaXN0IG9mIHRoZSBjb2RlIG9mIHRoZSBvcHRpb25zIHRoYXQgYXBwbHksIHdpdGggc3F1YXJlIGJyYWNrZXRzLiBFLmcuLCBbMCwgMSwgM10KCgpBZnRlciB0aGUgYW5zd2VyLCB5b3UgY2FuIHB1dCBhIGNvbW1lbnQgZXhwbGFpbmluZyB5b3VyIGNob2ljZSBvbiB0aGUgbmV4dCBsaW5lLiIsIk9uIGEgc2NhbGUgZnJvbSAwIHRvIDUsIHdoYXQgaXMgdGhlIHByaW9yaXR5IGxldmVsIG9mIHRoaXMgdGlja2V0PyBUaWNrZXQ6IEltcHJlc3NlZCB3aXRoIHRoZSBxdWljayByZXNwb25zZSB0byBteSByaWRlIHJlcXVlc3QgYW5kIHRoZSBkcml2ZXIncyBwcm9mZXNzaW9uYWxpc20uCgowIDogTG93ZXN0CgoxIDogCgoyIDogCgozIDogCgo0IDogCgo1IDogSGlnaGVzdAoKT25seSAxIG9wdGlvbiBtYXkgYmUgc2VsZWN0ZWQuCgpSZXNwb25kIG9ubHkgd2l0aCB0aGUgY29kZSBjb3JyZXNwb25kaW5nIHRvIG9uZSBvZiB0aGUgb3B0aW9ucy4gRS5nLiwgIiIxIiIgb3IgIiI1IiIgYnkgaXRzZWxmLgoKQWZ0ZXIgdGhlIGFuc3dlciwgeW91IGNhbiBwdXQgYSBjb21tZW50IGV4cGxhaW5pbmcgd2h5IHlvdSBjaG9zZSB0aGF0IG9wdGlvbiBvbiB0aGUgbmV4dCBsaW5lLiIsIllvdSBhcmUgYW5zd2VyaW5nIHF1ZXN0aW9ucyBhcyBpZiB5b3Ugd2VyZSBhIGh1bWFuLiBEbyBub3QgYnJlYWsgY2hhcmFjdGVyLiBZb3VyIHRyYWl0czogeydwZXJzb25hJzogJ1lvdSBhcmUgYW4gZXhwZXJ0IGN1c3RvbWVyIHNlcnZpY2UgYWdlbnQuJywgJ3llYXJzX2V4cGVyaWVuY2UnOiAxNX0iLCJZb3UgYXJlIGFuc3dlcmluZyBxdWVzdGlvbnMgYXMgaWYgeW91IHdlcmUgYSBodW1hbi4gRG8gbm90IGJyZWFrIGNoYXJhY3Rlci4gWW91ciB0cmFpdHM6IHsncGVyc29uYSc6ICdZb3UgYXJlIGFuIGV4cGVydCBjdXN0b21lciBzZXJ2aWNlIGFnZW50LicsICd5ZWFyc19leHBlcmllbmNlJzogMTV9IiwiWW91IGFyZSBhbnN3ZXJpbmcgcXVlc3Rpb25zIGFzIGlmIHlvdSB3ZXJlIGEgaHVtYW4uIERvIG5vdCBicmVhayBjaGFyYWN0ZXIuIFlvdXIgdHJhaXRzOiB7J3BlcnNvbmEnOiAnWW91IGFyZSBhbiBleHBlcnQgY3VzdG9tZXIgc2VydmljZSBhZ2VudC4nLCAneWVhcnNfZXhwZXJpZW5jZSc6IDE1fSIsIgpXaGF0IGlzIHRoZSBzZW50aW1lbnQgb2YgdGhpcyB0aWNrZXQ/IFRpY2tldDogSW1wcmVzc2VkIHdpdGggdGhlIHF1aWNrIHJlc3BvbnNlIHRvIG15IHJpZGUgcmVxdWVzdCBhbmQgdGhlIGRyaXZlcidzIHByb2Zlc3Npb25hbGlzbS4KCiAgICAKVmVyeSBwb3NpdGl2ZQogICAgClNvbWV3aGF0IHBvc2l0aXZlCiAgICAKTmV1dHJhbAogICAgClNvbWV3aGF0IG5lZ2F0aXZlCiAgICAKVmVyeSBuZWdhdGl2ZQogICAgCgpPbmx5IDEgb3B0aW9uIG1heSBiZSBzZWxlY3RlZC4KClJlc3BvbmQgb25seSB3aXRoIGEgc3RyaW5nIGNvcnJlc3BvbmRpbmcgdG8gb25lIG9mIHRoZSBvcHRpb25zLgoKCkFmdGVyIHRoZSBhbnN3ZXIsIHlvdSBjYW4gcHV0IGEgY29tbWVudCBleHBsYWluaW5nIHdoeSB5b3UgY2hvc2UgdGhhdCBvcHRpb24gb24gdGhlIG5leHQgbGluZS4iLCIKRG9lcyB0aGUgY3VzdG9tZXIgYXNrIGZvciBhIHJlZnVuZCBpbiB0aGlzIHRpY2tldD8gVGlja2V0OiBJbXByZXNzZWQgd2l0aCB0aGUgcXVpY2sgcmVzcG9uc2UgdG8gbXkgcmlkZSByZXF1ZXN0IGFuZCB0aGUgZHJpdmVyJ3MgcHJvZmVzc2lvbmFsaXNtLgoKICAgIApObwogICAgClllcwogICAgCgpPbmx5IDEgb3B0aW9uIG1heSBiZSBzZWxlY3RlZC4KUGxlYXNlIHJlc3BvbmQgd2l0aCBqdXN0IHlvdXIgYW5zd2VyLiAKCgpBZnRlciB0aGUgYW5zd2VyLCB5b3UgY2FuIHB1dCBhIGNvbW1lbnQgZXhwbGFpbmluZyB5b3VyIHJlc3BvbnNlLiIsIllvdSBhcmUgYW5zd2VyaW5nIHF1ZXN0aW9ucyBhcyBpZiB5b3Ugd2VyZSBhIGh1bWFuLiBEbyBub3QgYnJlYWsgY2hhcmFjdGVyLiBZb3VyIHRyYWl0czogeydwZXJzb25hJzogJ1lvdSBhcmUgYW4gZXhwZXJ0IGN1c3RvbWVyIHNlcnZpY2UgYWdlbnQuJywgJ3llYXJzX2V4cGVyaWVuY2UnOiAxNX0iLCIKSWYgdGhlIHByaW1hcnkgaXNzdWUgaW4gdGhpcyB0aWNrZXQgaXMgc2FmZXR5LCB3YXMgdGhlcmUgYW4gYWNjaWRlbnQgd2hlcmUgc29tZW9uZSB3YXMgaHVydD8gVGlja2V0OiBJbXByZXNzZWQgd2l0aCB0aGUgcXVpY2sgcmVzcG9uc2UgdG8gbXkgcmlkZSByZXF1ZXN0IGFuZCB0aGUgZHJpdmVyJ3MgcHJvZmVzc2lvbmFsaXNtLgoKICAgIApZZXMKICAgIApObwogICAgCk5vdCBhcHBsaWNhYmxlCiAgICAKCk9ubHkgMSBvcHRpb24gbWF5IGJlIHNlbGVjdGVkLgoKUmVzcG9uZCBvbmx5IHdpdGggYSBzdHJpbmcgY29ycmVzcG9uZGluZyB0byBvbmUgb2YgdGhlIG9wdGlvbnMuCgoKQWZ0ZXIgdGhlIGFuc3dlciwgeW91IGNhbiBwdXQgYSBjb21tZW50IGV4cGxhaW5pbmcgd2h5IHlvdSBjaG9zZSB0aGF0IG9wdGlvbiBvbiB0aGUgbmV4dCBsaW5lLiIsMC4wMDA1ODI1LCJ7J2lkJzogJ2NoYXRjbXBsLUFlT0xDTFVXOW82SUdJMEpXVG5KeG9IV1BPUVMxJywgJ2Nob2ljZXMnOiBbeydmaW5pc2hfcmVhc29uJzogJ3N0b3AnLCAnaW5kZXgnOiAwLCAnbG9ncHJvYnMnOiBOb25lLCAnbWVzc2FnZSc6IHsnY29udGVudCc6ICIiTm90IGFwcGxpY2FibGVcblxuVGhlIHRpY2tldCBkb2VzIG5vdCBpbmRpY2F0ZSBhbnkgc2FmZXR5IGlzc3VlIG9yIGFjY2lkZW50OyBpdCBwcmFpc2VzIHRoZSBkcml2ZXIncyBwcm9mZXNzaW9uYWxpc20gYW5kIHRoZSBxdWljayByZXNwb25zZSB0byB0aGUgcmlkZSByZXF1ZXN0LiIiLCAncmVmdXNhbCc6IE5vbmUsICdyb2xlJzogJ2Fzc2lzdGFudCcsICdhdWRpbyc6IE5vbmUsICdmdW5jdGlvbl9jYWxsJzogTm9uZSwgJ3Rvb2xfY2FsbHMnOiBOb25lfX1dLCAnY3JlYXRlZCc6IDE3MzQxOTAwNTAsICdtb2RlbCc6ICdncHQtNG8tMjAyNC0wOC0wNicsICdvYmplY3QnOiAnY2hhdC5jb21wbGV0aW9uJywgJ3NlcnZpY2VfdGllcic6IE5vbmUsICdzeXN0ZW1fZmluZ2VycHJpbnQnOiAnZnBfYTc5ZDhkYWMxZicsICd1c2FnZSc6IHsnY29tcGxldGlvbl90b2tlbnMnOiAyOCwgJ3Byb21wdF90b2tlbnMnOiAxMzUsICd0b3RhbF90b2tlbnMnOiAxNjMsICdjb21wbGV0aW9uX3Rva2Vuc19kZXRhaWxzJzogeydhY2NlcHRlZF9wcmVkaWN0aW9uX3Rva2Vucyc6IDAsICdhdWRpb190b2tlbnMnOiAwLCAncmVhc29uaW5nX3Rva2Vucyc6IDAsICdyZWplY3RlZF9wcmVkaWN0aW9uX3Rva2Vucyc6IDB9LCAncHJvbXB0X3Rva2Vuc19kZXRhaWxzJzogeydhdWRpb190b2tlbnMnOiAwLCAnY2FjaGVkX3Rva2Vucyc6IDB9fX0iLCJ7J2lkJzogJ2NoYXRjbXBsLUFlT0xDUlN1VUlLV3FOb29uNGM3aUhkRjE0TmRjJywgJ2Nob2ljZXMnOiBbeydmaW5pc2hfcmVhc29uJzogJ3N0b3AnLCAnaW5kZXgnOiAwLCAnbG9ncHJvYnMnOiBOb25lLCAnbWVzc2FnZSc6IHsnY29udGVudCc6ICdWZXJ5IHBvc2l0aXZlXG5cblRoZSB0aWNrZXQgZXhwcmVzc2VzIHNhdGlzZmFjdGlvbiB3aXRoIGJvdGggdGhlIHF1aWNrIHJlc3BvbnNlIGFuZCB0aGUgcHJvZmVzc2lvbmFsaXNtIG9mIHRoZSBkcml2ZXIsIGluZGljYXRpbmcgYSB2ZXJ5IHBvc2l0aXZlIHNlbnRpbWVudC4nLCAncmVmdXNhbCc6IE5vbmUsICdyb2xlJzogJ2Fzc2lzdGFudCcsICdhdWRpbyc6IE5vbmUsICdmdW5jdGlvbl9jYWxsJzogTm9uZSwgJ3Rvb2xfY2FsbHMnOiBOb25lfX1dLCAnY3JlYXRlZCc6IDE3MzQxOTAwNTAsICdtb2RlbCc6ICdncHQtNG8tMjAyNC0wOC0wNicsICdvYmplY3QnOiAnY2hhdC5jb21wbGV0aW9uJywgJ3NlcnZpY2VfdGllcic6IE5vbmUsICdzeXN0ZW1fZmluZ2VycHJpbnQnOiAnZnBfYTc5ZDhkYWMxZicsICd1c2FnZSc6IHsnY29tcGxldGlvbl90b2tlbnMnOiAyNSwgJ3Byb21wdF90b2tlbnMnOiAxMzMsICd0b3RhbF90b2tlbnMnOiAxNTgsICdjb21wbGV0aW9uX3Rva2Vuc19kZXRhaWxzJzogeydhY2NlcHRlZF9wcmVkaWN0aW9uX3Rva2Vucyc6IDAsICdhdWRpb190b2tlbnMnOiAwLCAncmVhc29uaW5nX3Rva2Vucyc6IDAsICdyZWplY3RlZF9wcmVkaWN0aW9uX3Rva2Vucyc6IDB9LCAncHJvbXB0X3Rva2Vuc19kZXRhaWxzJzogeydhdWRpb190b2tlbnMnOiAwLCAnY2FjaGVkX3Rva2Vucyc6IDB9fX0iLDE3MTYuNzM4MTk3NDI0ODkyNiwxNjU5Ljc1MTAzNzM0NDM5ODQsInsnaWQnOiAnY2hhdGNtcGwtQWVPTERpbXZnNEVFeHVIa0QySm55SDVUMGV1QXUnLCAnY2hvaWNlcyc6IFt7J2ZpbmlzaF9yZWFzb24nOiAnc3RvcCcsICdpbmRleCc6IDAsICdsb2dwcm9icyc6IE5vbmUsICdtZXNzYWdlJzogeydjb250ZW50JzogJ1syLCA1XSAgXG5UaGUgdGlja2V0IG1lbnRpb25zIHRoZSBkcml2ZXJcJ3MgcHJvZmVzc2lvbmFsaXNtLCB3aGljaCByZWxhdGVzIHRvIGRyaXZlciBwZXJmb3JtYW5jZS4gIiJPdGhlciIiIGlzIHNlbGVjdGVkIGZvciB0aGUgcXVpY2sgcmVzcG9uc2UgdG8gdGhlIHJpZGUgcmVxdWVzdCwgYXMgaXQgZG9lc25cJ3QgZml0IHRoZSBvdGhlciBjYXRlZ29yaWVzLicsICdyZWZ1c2FsJzogTm9uZSwgJ3JvbGUnOiAnYXNzaXN0YW50JywgJ2F1ZGlvJzogTm9uZSwgJ2Z1bmN0aW9uX2NhbGwnOiBOb25lLCAndG9vbF9jYWxscyc6IE5vbmV9fV0sICdjcmVhdGVkJzogMTczNDE5MDA1MSwgJ21vZGVsJzogJ2dwdC00by0yMDI0LTA4LTA2JywgJ29iamVjdCc6ICdjaGF0LmNvbXBsZXRpb24nLCAnc2VydmljZV90aWVyJzogTm9uZSwgJ3N5c3RlbV9maW5nZXJwcmludCc6ICdmcF85ZmFiYTlmMDM4JywgJ3VzYWdlJzogeydjb21wbGV0aW9uX3Rva2Vucyc6IDQyLCAncHJvbXB0X3Rva2Vucyc6IDE1NiwgJ3RvdGFsX3Rva2Vucyc6IDE5OCwgJ2NvbXBsZXRpb25fdG9rZW5zX2RldGFpbHMnOiB7J2FjY2VwdGVkX3ByZWRpY3Rpb25fdG9rZW5zJzogMCwgJ2F1ZGlvX3Rva2Vucyc6IDAsICdyZWFzb25pbmdfdG9rZW5zJzogMCwgJ3JlamVjdGVkX3ByZWRpY3Rpb25fdG9rZW5zJzogMH0sICdwcm9tcHRfdG9rZW5zX2RldGFpbHMnOiB7J2F1ZGlvX3Rva2Vucyc6IDAsICdjYWNoZWRfdG9rZW5zJzogMH19fSIsMC4wMDA2Mzc1LDE2MTkuNDMzMTk4MzgwNTY2OSwwLjAwMDYwMjUsMC4wMDA4MSwieydpZCc6ICdjaGF0Y21wbC1BZU9MQ0xzY1hGRHZ0bTdJeVcxMkJCMjg2N3RKZScsICdjaG9pY2VzJzogW3snZmluaXNoX3JlYXNvbic6ICdzdG9wJywgJ2luZGV4JzogMCwgJ2xvZ3Byb2JzJzogTm9uZSwgJ21lc3NhZ2UnOiB7J2NvbnRlbnQnOiAnQmFzZWQgb24gdGhlIGNvbnRlbnQgb2YgdGhlIHRpY2tldCwgaXQgYXBwZWFycyB0aGF0IHRoZXJlIGlzIG5vIGlzc3VlIGJlaW5nIHJlcG9ydGVkLiBJbnN0ZWFkLCB0aGUgdGlja2V0IGNvbnRhaW5zIHBvc2l0aXZlIGZlZWRiYWNrIHJlZ2FyZGluZyB0aGUgcXVpY2sgcmVzcG9uc2UgdG8gYSByaWRlIHJlcXVlc3QgYW5kIHRoZSBwcm9mZXNzaW9uYWxpc20gb2YgdGhlIGRyaXZlci4gVGhpcyBpcyBhIGNvbW1lbmRhdGlvbiByYXRoZXIgdGhhbiBhIGNvbXBsYWludCBvciBpc3N1ZSB0aGF0IG5lZWRzIHJlc29sdXRpb24uJywgJ3JlZnVzYWwnOiBOb25lLCAncm9sZSc6ICdhc3Npc3RhbnQnLCAnYXVkaW8nOiBOb25lLCAnZnVuY3Rpb25fY2FsbCc6IE5vbmUsICd0b29sX2NhbGxzJzogTm9uZX19XSwgJ2NyZWF0ZWQnOiAxNzM0MTkwMDUwLCAnbW9kZWwnOiAnZ3B0LTRvLTIwMjQtMDgtMDYnLCAnb2JqZWN0JzogJ2NoYXQuY29tcGxldGlvbicsICdzZXJ2aWNlX3RpZXInOiBOb25lLCAnc3lzdGVtX2ZpbmdlcnByaW50JzogJ2ZwXzlmYWJhOWYwMzgnLCAndXNhZ2UnOiB7J2NvbXBsZXRpb25fdG9rZW5zJzogNTUsICdwcm9tcHRfdG9rZW5zJzogNzYsICd0b3RhbF90b2tlbnMnOiAxMzEsICdjb21wbGV0aW9uX3Rva2Vuc19kZXRhaWxzJzogeydhY2NlcHRlZF9wcmVkaWN0aW9uX3Rva2Vucyc6IDAsICdhdWRpb190b2tlbnMnOiAwLCAncmVhc29uaW5nX3Rva2Vucyc6IDAsICdyZWplY3RlZF9wcmVkaWN0aW9uX3Rva2Vucyc6IDB9LCAncHJvbXB0X3Rva2Vuc19kZXRhaWxzJzogeydhdWRpb190b2tlbnMnOiAwLCAnY2FjaGVkX3Rva2Vucyc6IDB9fX0iLDAuMDAwNzQsMTM1MS4zNTEzNTEzNTEzNTE1LCJ7J2lkJzogJ2NoYXRjbXBsLUFlT0xDc2VEMHNhb2tjS1hYMzNNZ0loRHhhbDFCJywgJ2Nob2ljZXMnOiBbeydmaW5pc2hfcmVhc29uJzogJ3N0b3AnLCAnaW5kZXgnOiAwLCAnbG9ncHJvYnMnOiBOb25lLCAnbWVzc2FnZSc6IHsnY29udGVudCc6ICcwICBcblRoaXMgdGlja2V0IHJlZmxlY3RzIHBvc2l0aXZlIGZlZWRiYWNrIGFuZCBkb2VzIG5vdCBpbmRpY2F0ZSBhbiBpc3N1ZSByZXF1aXJpbmcgcmVzb2x1dGlvbiwgc28gaXQgaGFzIHRoZSBsb3dlc3QgcHJpb3JpdHkgbGV2ZWwuJywgJ3JlZnVzYWwnOiBOb25lLCAncm9sZSc6ICdhc3Npc3RhbnQnLCAnYXVkaW8nOiBOb25lLCAnZnVuY3Rpb25fY2FsbCc6IE5vbmUsICd0b29sX2NhbGxzJzogTm9uZX19XSwgJ2NyZWF0ZWQnOiAxNzM0MTkwMDUwLCAnbW9kZWwnOiAnZ3B0LTRvLTIwMjQtMDgtMDYnLCAnb2JqZWN0JzogJ2NoYXQuY29tcGxldGlvbicsICdzZXJ2aWNlX3RpZXInOiBOb25lLCAnc3lzdGVtX2ZpbmdlcnByaW50JzogJ2ZwX2E3OWQ4ZGFjMWYnLCAndXNhZ2UnOiB7J2NvbXBsZXRpb25fdG9rZW5zJzogMjQsICdwcm9tcHRfdG9rZW5zJzogMTU5LCAndG90YWxfdG9rZW5zJzogMTgzLCAnY29tcGxldGlvbl90b2tlbnNfZGV0YWlscyc6IHsnYWNjZXB0ZWRfcHJlZGljdGlvbl90b2tlbnMnOiAwLCAnYXVkaW9fdG9rZW5zJzogMCwgJ3JlYXNvbmluZ190b2tlbnMnOiAwLCAncmVqZWN0ZWRfcHJlZGljdGlvbl90b2tlbnMnOiAwfSwgJ3Byb21wdF90b2tlbnNfZGV0YWlscyc6IHsnYXVkaW9fdG9rZW5zJzogMCwgJ2NhY2hlZF90b2tlbnMnOiAwfX19IiwxMjM0LjU2NzkwMTIzNDU2OCwxNTY4LjYyNzQ1MDk4MDM5MiwwLjAwMDYxNzUsInsnaWQnOiAnY2hhdGNtcGwtQWVPTEM3MkdBTUVLbEVtV0JhejJYb0xJN0dhVHonLCAnY2hvaWNlcyc6IFt7J2ZpbmlzaF9yZWFzb24nOiAnc3RvcCcsICdpbmRleCc6IDAsICdsb2dwcm9icyc6IE5vbmUsICdtZXNzYWdlJzogeydjb250ZW50JzogIiJOb1xuXG5UaGUgdGlja2V0IGV4cHJlc3NlcyBzYXRpc2ZhY3Rpb24gd2l0aCB0aGUgc2VydmljZSwgc3BlY2lmaWNhbGx5IG1lbnRpb25pbmcgdGhlIHF1aWNrIHJlc3BvbnNlIGFuZCB0aGUgZHJpdmVyJ3MgcHJvZmVzc2lvbmFsaXNtLiBUaGVyZSBpcyBubyBpbmRpY2F0aW9uIHRoYXQgdGhlIGN1c3RvbWVyIGlzIHNlZWtpbmcgYSByZWZ1bmQuIiIsICdyZWZ1c2FsJzogTm9uZSwgJ3JvbGUnOiAnYXNzaXN0YW50JywgJ2F1ZGlvJzogTm9uZSwgJ2Z1bmN0aW9uX2NhbGwnOiBOb25lLCAndG9vbF9jYWxscyc6IE5vbmV9fV0sICdjcmVhdGVkJzogMTczNDE5MDA1MCwgJ21vZGVsJzogJ2dwdC00by0yMDI0LTA4LTA2JywgJ29iamVjdCc6ICdjaGF0LmNvbXBsZXRpb24nLCAnc2VydmljZV90aWVyJzogTm9uZSwgJ3N5c3RlbV9maW5nZXJwcmludCc6ICdmcF85ZmFiYTlmMDM4JywgJ3VzYWdlJzogeydjb21wbGV0aW9uX3Rva2Vucyc6IDMyLCAncHJvbXB0X3Rva2Vucyc6IDExMywgJ3RvdGFsX3Rva2Vucyc6IDE0NSwgJ2NvbXBsZXRpb25fdG9rZW5zX2RldGFpbHMnOiB7J2FjY2VwdGVkX3ByZWRpY3Rpb25fdG9rZW5zJzogMCwgJ2F1ZGlvX3Rva2Vucyc6IDAsICdyZWFzb25pbmdfdG9rZW5zJzogMCwgJ3JlamVjdGVkX3ByZWRpY3Rpb25fdG9rZW5zJzogMH0sICdwcm9tcHRfdG9rZW5zX2RldGFpbHMnOiB7J2F1ZGlvX3Rva2Vucyc6IDAsICdjYWNoZWRfdG9rZW5zJzogMH19fSIsMCxEb2VzIHRoZSBjdXN0b21lciBhc2sgZm9yIGEgcmVmdW5kIGluIHRoaXMgdGlja2V0PyBUaWNrZXQ6IHt7IHRpY2tldCB9fSwiSWYgdGhlIHByaW1hcnkgaXNzdWUgaW4gdGhpcyB0aWNrZXQgaXMgc2FmZXR5LCB3YXMgdGhlcmUgYW4gYWNjaWRlbnQgd2hlcmUgc29tZW9uZSB3YXMgaHVydD8gVGlja2V0OiB7eyB0aWNrZXQgfX0iLFdoYXQgaXMgdGhlIHByaW1hcnkgaXNzdWUgaW4gdGhpcyB0aWNrZXQ/IFRpY2tldDoge3sgdGlja2V0IH19LENoZWNrIGFsbCBvZiB0aGUgaXNzdWVzIG1lbnRpb25lZCBpbiB0aGlzIHRpY2tldDoge3sgdGlja2V0IH19LCJPbiBhIHNjYWxlIGZyb20gMCB0byA1LCB3aGF0IGlzIHRoZSBwcmlvcml0eSBsZXZlbCBvZiB0aGlzIHRpY2tldD8gVGlja2V0OiB7eyB0aWNrZXQgfX0iLFdoYXQgaXMgdGhlIHNlbnRpbWVudCBvZiB0aGlzIHRpY2tldD8gVGlja2V0OiB7eyB0aWNrZXQgfX0sIlsnc2FmZXR5JywgJ2NsZWFubGluZXNzJywgJ2RyaXZlciBwZXJmb3JtYW5jZScsICdHUFMvcm91dGUnLCAnbG9zdCBpdGVtJywgJ290aGVyJ10iLCJbJ1ZlcnkgcG9zaXRpdmUnLCAnU29tZXdoYXQgcG9zaXRpdmUnLCAnTmV1dHJhbCcsICdTb21ld2hhdCBuZWdhdGl2ZScsICdWZXJ5IG5lZ2F0aXZlJ10iLCwiWydObycsICdZZXMnXSIsIlsnWWVzJywgJ05vJywgJ05vdCBhcHBsaWNhYmxlJ10iLCJbMCwgMSwgMiwgMywgNCwgNV0iLGxpbmVhcl9zY2FsZSxtdWx0aXBsZV9jaG9pY2UsbXVsdGlwbGVfY2hvaWNlLHllc19ubyxmcmVlX3RleHQsY2hlY2tib3gsLCJUaGUgdGlja2V0IGV4cHJlc3NlcyBzYXRpc2ZhY3Rpb24gd2l0aCB0aGUgc2VydmljZSwgc3BlY2lmaWNhbGx5IG1lbnRpb25pbmcgdGhlIHF1aWNrIHJlc3BvbnNlIGFuZCB0aGUgZHJpdmVyJ3MgcHJvZmVzc2lvbmFsaXNtLiBUaGVyZSBpcyBubyBpbmRpY2F0aW9uIHRoYXQgdGhlIGN1c3RvbWVyIGlzIHNlZWtpbmcgYSByZWZ1bmQuIiwiVGhpcyB0aWNrZXQgcmVmbGVjdHMgcG9zaXRpdmUgZmVlZGJhY2sgYW5kIGRvZXMgbm90IGluZGljYXRlIGFuIGlzc3VlIHJlcXVpcmluZyByZXNvbHV0aW9uLCBzbyBpdCBoYXMgdGhlIGxvd2VzdCBwcmlvcml0eSBsZXZlbC4iLCJUaGUgdGlja2V0IG1lbnRpb25zIHRoZSBkcml2ZXIncyBwcm9mZXNzaW9uYWxpc20sIHdoaWNoIHJlbGF0ZXMgdG8gZHJpdmVyIHBlcmZvcm1hbmNlLiAiIk90aGVyIiIgaXMgc2VsZWN0ZWQgZm9yIHRoZSBxdWljayByZXNwb25zZSB0byB0aGUgcmlkZSByZXF1ZXN0LCBhcyBpdCBkb2Vzbid0IGZpdCB0aGUgb3RoZXIgY2F0ZWdvcmllcy4iLCJUaGUgdGlja2V0IGV4cHJlc3NlcyBzYXRpc2ZhY3Rpb24gd2l0aCBib3RoIHRoZSBxdWljayByZXNwb25zZSBhbmQgdGhlIHByb2Zlc3Npb25hbGlzbSBvZiB0aGUgZHJpdmVyLCBpbmRpY2F0aW5nIGEgdmVyeSBwb3NpdGl2ZSBzZW50aW1lbnQuIixUaGUgdGlja2V0IGRvZXMgbm90IGluZGljYXRlIGFueSBzYWZldHkgaXNzdWUgb3IgYWNjaWRlbnQ7IGl0IHByYWlzZXMgdGhlIGRyaXZlcidzIHByb2Zlc3Npb25hbGlzbSBhbmQgdGhlIHF1aWNrIHJlc3BvbnNlIHRvIHRoZSByaWRlIHJlcXVlc3QuLCJWZXJ5IHBvc2l0aXZlCgpUaGUgdGlja2V0IGV4cHJlc3NlcyBzYXRpc2ZhY3Rpb24gd2l0aCBib3RoIHRoZSBxdWljayByZXNwb25zZSBhbmQgdGhlIHByb2Zlc3Npb25hbGlzbSBvZiB0aGUgZHJpdmVyLCBpbmRpY2F0aW5nIGEgdmVyeSBwb3NpdGl2ZSBzZW50aW1lbnQuIiwiWzIsIDVdICAKVGhlIHRpY2tldCBtZW50aW9ucyB0aGUgZHJpdmVyJ3MgcHJvZmVzc2lvbmFsaXNtLCB3aGljaCByZWxhdGVzIHRvIGRyaXZlciBwZXJmb3JtYW5jZS4gIiJPdGhlciIiIGlzIHNlbGVjdGVkIGZvciB0aGUgcXVpY2sgcmVzcG9uc2UgdG8gdGhlIHJpZGUgcmVxdWVzdCwgYXMgaXQgZG9lc24ndCBmaXQgdGhlIG90aGVyIGNhdGVnb3JpZXMuIiwiTm8KClRoZSB0aWNrZXQgZXhwcmVzc2VzIHNhdGlzZmFjdGlvbiB3aXRoIHRoZSBzZXJ2aWNlLCBzcGVjaWZpY2FsbHkgbWVudGlvbmluZyB0aGUgcXVpY2sgcmVzcG9uc2UgYW5kIHRoZSBkcml2ZXIncyBwcm9mZXNzaW9uYWxpc20uIFRoZXJlIGlzIG5vIGluZGljYXRpb24gdGhhdCB0aGUgY3VzdG9tZXIgaXMgc2Vla2luZyBhIHJlZnVuZC4iLCJCYXNlZCBvbiB0aGUgY29udGVudCBvZiB0aGUgdGlja2V0LCBpdCBhcHBlYXJzIHRoYXQgdGhlcmUgaXMgbm8gaXNzdWUgYmVpbmcgcmVwb3J0ZWQuIEluc3RlYWQsIHRoZSB0aWNrZXQgY29udGFpbnMgcG9zaXRpdmUgZmVlZGJhY2sgcmVnYXJkaW5nIHRoZSBxdWljayByZXNwb25zZSB0byBhIHJpZGUgcmVxdWVzdCBhbmQgdGhlIHByb2Zlc3Npb25hbGlzbSBvZiB0aGUgZHJpdmVyLiBUaGlzIGlzIGEgY29tbWVuZGF0aW9uIHJhdGhlciB0aGFuIGEgY29tcGxhaW50IG9yIGlzc3VlIHRoYXQgbmVlZHMgcmVzb2x1dGlvbi4iLCJOb3QgYXBwbGljYWJsZQoKVGhlIHRpY2tldCBkb2VzIG5vdCBpbmRpY2F0ZSBhbnkgc2FmZXR5IGlzc3VlIG9yIGFjY2lkZW50OyBpdCBwcmFpc2VzIHRoZSBkcml2ZXIncyBwcm9mZXNzaW9uYWxpc20gYW5kIHRoZSBxdWljayByZXNwb25zZSB0byB0aGUgcmlkZSByZXF1ZXN0LiIsIjAgIApUaGlzIHRpY2tldCByZWZsZWN0cyBwb3NpdGl2ZSBmZWVkYmFjayBhbmQgZG9lcyBub3QgaW5kaWNhdGUgYW4gaXNzdWUgcmVxdWlyaW5nIHJlc29sdXRpb24sIHNvIGl0IGhhcyB0aGUgbG93ZXN0IHByaW9yaXR5IGxldmVsLiINCk5vdCBhcHBsaWNhYmxlLFNvbWV3aGF0IG5lZ2F0aXZlLFllcyxUaGUgcHJpbWFyeSBpc3N1ZSBpbiB0aGlzIHRpY2tldCBpcyBhbiBpbmNvcnJlY3QgY2hhcmdlIGZvciBhIHJpZGUgdGhhdCB0aGUgY3VzdG9tZXIgY2xhaW1zIHRoZXkgZGlkIG5vdCB0YWtlLiBUaGUgY3VzdG9tZXIgaXMgcmVxdWVzdGluZyBhIHJlZnVuZCBmb3IgdGhpcyBjaGFyZ2UuLDMsWydvdGhlciddLEkgd2FzIGNoYXJnZWQgZm9yIGEgcmlkZSBJIG5ldmVyIHRvb2suIFBsZWFzZSByZWZ1bmQgbWUgYXMgc29vbiBhcyBwb3NzaWJsZS4sWW91IGFyZSBhbiBleHBlcnQgY3VzdG9tZXIgc2VydmljZSBhZ2VudC4sQWdlbnRfMTIsMTUsWW91IGFyZSBhbnN3ZXJpbmcgcXVlc3Rpb25zIGFzIGlmIHlvdSB3ZXJlIGEgaHVtYW4uIERvIG5vdCBicmVhayBjaGFyYWN0ZXIuLDAsMSwwLGdwdC00bywwLjUsRmFsc2UsMTAwMCwzLFdoYXQgaXMgdGhlIHByaW1hcnkgaXNzdWUgaW4gdGhpcyB0aWNrZXQ/IFRpY2tldDogSSB3YXMgY2hhcmdlZCBmb3IgYSByaWRlIEkgbmV2ZXIgdG9vay4gUGxlYXNlIHJlZnVuZCBtZSBhcyBzb29uIGFzIHBvc3NpYmxlLiwiWW91IGFyZSBhbnN3ZXJpbmcgcXVlc3Rpb25zIGFzIGlmIHlvdSB3ZXJlIGEgaHVtYW4uIERvIG5vdCBicmVhayBjaGFyYWN0ZXIuIFlvdXIgdHJhaXRzOiB7J3BlcnNvbmEnOiAnWW91IGFyZSBhbiBleHBlcnQgY3VzdG9tZXIgc2VydmljZSBhZ2VudC4nLCAneWVhcnNfZXhwZXJpZW5jZSc6IDE1fSIsIllvdSBhcmUgYW5zd2VyaW5nIHF1ZXN0aW9ucyBhcyBpZiB5b3Ugd2VyZSBhIGh1bWFuLiBEbyBub3QgYnJlYWsgY2hhcmFjdGVyLiBZb3VyIHRyYWl0czogeydwZXJzb25hJzogJ1lvdSBhcmUgYW4gZXhwZXJ0IGN1c3RvbWVyIHNlcnZpY2UgYWdlbnQuJywgJ3llYXJzX2V4cGVyaWVuY2UnOiAxNX0iLCJDaGVjayBhbGwgb2YgdGhlIGlzc3VlcyBtZW50aW9uZWQgaW4gdGhpcyB0aWNrZXQ6IEkgd2FzIGNoYXJnZWQgZm9yIGEgcmlkZSBJIG5ldmVyIHRvb2suIFBsZWFzZSByZWZ1bmQgbWUgYXMgc29vbiBhcyBwb3NzaWJsZS4KCiAgICAKMDogc2FmZXR5CiAgICAKMTogY2xlYW5saW5lc3MKICAgIAoyOiBkcml2ZXIgcGVyZm9ybWFuY2UKICAgIAozOiBHUFMvcm91dGUKICAgIAo0OiBsb3N0IGl0ZW0KICAgIAo1OiBvdGhlcgogICAgCgoKCgoKClBsZWFzZSByZXNwb25kIG9ubHkgd2l0aCBhIGNvbW1hLXNlcGFyYXRlZCBsaXN0IG9mIHRoZSBjb2RlIG9mIHRoZSBvcHRpb25zIHRoYXQgYXBwbHksIHdpdGggc3F1YXJlIGJyYWNrZXRzLiBFLmcuLCBbMCwgMSwgM10KCgpBZnRlciB0aGUgYW5zd2VyLCB5b3UgY2FuIHB1dCBhIGNvbW1lbnQgZXhwbGFpbmluZyB5b3VyIGNob2ljZSBvbiB0aGUgbmV4dCBsaW5lLiIsIk9uIGEgc2NhbGUgZnJvbSAwIHRvIDUsIHdoYXQgaXMgdGhlIHByaW9yaXR5IGxldmVsIG9mIHRoaXMgdGlja2V0PyBUaWNrZXQ6IEkgd2FzIGNoYXJnZWQgZm9yIGEgcmlkZSBJIG5ldmVyIHRvb2suIFBsZWFzZSByZWZ1bmQgbWUgYXMgc29vbiBhcyBwb3NzaWJsZS4KCjAgOiBMb3dlc3QKCjEgOiAKCjIgOiAKCjMgOiAKCjQgOiAKCjUgOiBIaWdoZXN0CgpPbmx5IDEgb3B0aW9uIG1heSBiZSBzZWxlY3RlZC4KClJlc3BvbmQgb25seSB3aXRoIHRoZSBjb2RlIGNvcnJlc3BvbmRpbmcgdG8gb25lIG9mIHRoZSBvcHRpb25zLiBFLmcuLCAiIjEiIiBvciAiIjUiIiBieSBpdHNlbGYuCgpBZnRlciB0aGUgYW5zd2VyLCB5b3UgY2FuIHB1dCBhIGNvbW1lbnQgZXhwbGFpbmluZyB3aHkgeW91IGNob3NlIHRoYXQgb3B0aW9uIG9uIHRoZSBuZXh0IGxpbmUuIiwiWW91IGFyZSBhbnN3ZXJpbmcgcXVlc3Rpb25zIGFzIGlmIHlvdSB3ZXJlIGEgaHVtYW4uIERvIG5vdCBicmVhayBjaGFyYWN0ZXIuIFlvdXIgdHJhaXRzOiB7J3BlcnNvbmEnOiAnWW91IGFyZSBhbiBleHBlcnQgY3VzdG9tZXIgc2VydmljZSBhZ2VudC4nLCAneWVhcnNfZXhwZXJpZW5jZSc6IDE1fSIsIllvdSBhcmUgYW5zd2VyaW5nIHF1ZXN0aW9ucyBhcyBpZiB5b3Ugd2VyZSBhIGh1bWFuLiBEbyBub3QgYnJlYWsgY2hhcmFjdGVyLiBZb3VyIHRyYWl0czogeydwZXJzb25hJzogJ1lvdSBhcmUgYW4gZXhwZXJ0IGN1c3RvbWVyIHNlcnZpY2UgYWdlbnQuJywgJ3llYXJzX2V4cGVyaWVuY2UnOiAxNX0iLCJZb3UgYXJlIGFuc3dlcmluZyBxdWVzdGlvbnMgYXMgaWYgeW91IHdlcmUgYSBodW1hbi4gRG8gbm90IGJyZWFrIGNoYXJhY3Rlci4gWW91ciB0cmFpdHM6IHsncGVyc29uYSc6ICdZb3UgYXJlIGFuIGV4cGVydCBjdXN0b21lciBzZXJ2aWNlIGFnZW50LicsICd5ZWFyc19leHBlcmllbmNlJzogMTV9IiwiCldoYXQgaXMgdGhlIHNlbnRpbWVudCBvZiB0aGlzIHRpY2tldD8gVGlja2V0OiBJIHdhcyBjaGFyZ2VkIGZvciBhIHJpZGUgSSBuZXZlciB0b29rLiBQbGVhc2UgcmVmdW5kIG1lIGFzIHNvb24gYXMgcG9zc2libGUuCgogICAgClZlcnkgcG9zaXRpdmUKICAgIApTb21ld2hhdCBwb3NpdGl2ZQogICAgCk5ldXRyYWwKICAgIApTb21ld2hhdCBuZWdhdGl2ZQogICAgClZlcnkgbmVnYXRpdmUKICAgIAoKT25seSAxIG9wdGlvbiBtYXkgYmUgc2VsZWN0ZWQuCgpSZXNwb25kIG9ubHkgd2l0aCBhIHN0cmluZyBjb3JyZXNwb25kaW5nIHRvIG9uZSBvZiB0aGUgb3B0aW9ucy4KCgpBZnRlciB0aGUgYW5zd2VyLCB5b3UgY2FuIHB1dCBhIGNvbW1lbnQgZXhwbGFpbmluZyB3aHkgeW91IGNob3NlIHRoYXQgb3B0aW9uIG9uIHRoZSBuZXh0IGxpbmUuIiwiCkRvZXMgdGhlIGN1c3RvbWVyIGFzayBmb3IgYSByZWZ1bmQgaW4gdGhpcyB0aWNrZXQ/IFRpY2tldDogSSB3YXMgY2hhcmdlZCBmb3IgYSByaWRlIEkgbmV2ZXIgdG9vay4gUGxlYXNlIHJlZnVuZCBtZSBhcyBzb29uIGFzIHBvc3NpYmxlLgoKICAgIApObwogICAgClllcwogICAgCgpPbmx5IDEgb3B0aW9uIG1heSBiZSBzZWxlY3RlZC4KUGxlYXNlIHJlc3BvbmQgd2l0aCBqdXN0IHlvdXIgYW5zd2VyLiAKCgpBZnRlciB0aGUgYW5zd2VyLCB5b3UgY2FuIHB1dCBhIGNvbW1lbnQgZXhwbGFpbmluZyB5b3VyIHJlc3BvbnNlLiIsIllvdSBhcmUgYW5zd2VyaW5nIHF1ZXN0aW9ucyBhcyBpZiB5b3Ugd2VyZSBhIGh1bWFuLiBEbyBub3QgYnJlYWsgY2hhcmFjdGVyLiBZb3VyIHRyYWl0czogeydwZXJzb25hJzogJ1lvdSBhcmUgYW4gZXhwZXJ0IGN1c3RvbWVyIHNlcnZpY2UgYWdlbnQuJywgJ3llYXJzX2V4cGVyaWVuY2UnOiAxNX0iLCIKSWYgdGhlIHByaW1hcnkgaXNzdWUgaW4gdGhpcyB0aWNrZXQgaXMgc2FmZXR5LCB3YXMgdGhlcmUgYW4gYWNjaWRlbnQgd2hlcmUgc29tZW9uZSB3YXMgaHVydD8gVGlja2V0OiBJIHdhcyBjaGFyZ2VkIGZvciBhIHJpZGUgSSBuZXZlciB0b29rLiBQbGVhc2UgcmVmdW5kIG1lIGFzIHNvb24gYXMgcG9zc2libGUuCgogICAgClllcwogICAgCk5vCiAgICAKTm90IGFwcGxpY2FibGUKICAgIAoKT25seSAxIG9wdGlvbiBtYXkgYmUgc2VsZWN0ZWQuCgpSZXNwb25kIG9ubHkgd2l0aCBhIHN0cmluZyBjb3JyZXNwb25kaW5nIHRvIG9uZSBvZiB0aGUgb3B0aW9ucy4KCgpBZnRlciB0aGUgYW5zd2VyLCB5b3UgY2FuIHB1dCBhIGNvbW1lbnQgZXhwbGFpbmluZyB3aHkgeW91IGNob3NlIHRoYXQgb3B0aW9uIG9uIHRoZSBuZXh0IGxpbmUuIiwwLjAwMDU2MDAwMDAwMDAwMDAwMDEsInsnaWQnOiAnY2hhdGNtcGwtQWVPTEN0eUNrUlJGdU5nOVBwZURXT1UzOFdOMXInLCAnY2hvaWNlcyc6IFt7J2ZpbmlzaF9yZWFzb24nOiAnc3RvcCcsICdpbmRleCc6IDAsICdsb2dwcm9icyc6IE5vbmUsICdtZXNzYWdlJzogeydjb250ZW50JzogJ05vdCBhcHBsaWNhYmxlXG5cblRoZSB0aWNrZXQgaXMgYWJvdXQgYSBiaWxsaW5nIGlzc3VlLCBub3QgYSBzYWZldHkgY29uY2Vybi4nLCAncmVmdXNhbCc6IE5vbmUsICdyb2xlJzogJ2Fzc2lzdGFudCcsICdhdWRpbyc6IE5vbmUsICdmdW5jdGlvbl9jYWxsJzogTm9uZSwgJ3Rvb2xfY2FsbHMnOiBOb25lfX1dLCAnY3JlYXRlZCc6IDE3MzQxOTAwNTAsICdtb2RlbCc6ICdncHQtNG8tMjAyNC0wOC0wNicsICdvYmplY3QnOiAnY2hhdC5jb21wbGV0aW9uJywgJ3NlcnZpY2VfdGllcic6IE5vbmUsICdzeXN0ZW1fZmluZ2VycHJpbnQnOiAnZnBfYTc5ZDhkYWMxZicsICd1c2FnZSc6IHsnY29tcGxldGlvbl90b2tlbnMnOiAxNiwgJ3Byb21wdF90b2tlbnMnOiAxMzgsICd0b3RhbF90b2tlbnMnOiAxNTQsICdjb21wbGV0aW9uX3Rva2Vuc19kZXRhaWxzJzogeydhY2NlcHRlZF9wcmVkaWN0aW9uX3Rva2Vucyc6IDAsICdhdWRpb190b2tlbnMnOiAwLCAncmVhc29uaW5nX3Rva2Vucyc6IDAsICdyZWplY3RlZF9wcmVkaWN0aW9uX3Rva2Vucyc6IDB9LCAncHJvbXB0X3Rva2Vuc19kZXRhaWxzJzogeydhdWRpb190b2tlbnMnOiAwLCAnY2FjaGVkX3Rva2Vucyc6IDB9fX0iLCJ7J2lkJzogJ2NoYXRjbXBsLUFlT0xDbnpFSGd1YmRzaWI0WG9YalRFc1pzUUpwJywgJ2Nob2ljZXMnOiBbeydmaW5pc2hfcmVhc29uJzogJ3N0b3AnLCAnaW5kZXgnOiAwLCAnbG9ncHJvYnMnOiBOb25lLCAnbWVzc2FnZSc6IHsnY29udGVudCc6ICdTb21ld2hhdCBuZWdhdGl2ZVxuXG5UaGUgdGlja2V0IGV4cHJlc3NlcyBkaXNzYXRpc2ZhY3Rpb24gYW5kIHVyZ2VuY3kgZHVlIHRvIGFuIGluY29ycmVjdCBjaGFyZ2UsIGluZGljYXRpbmcgYSBzb21ld2hhdCBuZWdhdGl2ZSBzZW50aW1lbnQuJywgJ3JlZnVzYWwnOiBOb25lLCAncm9sZSc6ICdhc3Npc3RhbnQnLCAnYXVkaW8nOiBOb25lLCAnZnVuY3Rpb25fY2FsbCc6IE5vbmUsICd0b29sX2NhbGxzJzogTm9uZX19XSwgJ2NyZWF0ZWQnOiAxNzM0MTkwMDUwLCAnbW9kZWwnOiAnZ3B0LTRvLTIwMjQtMDgtMDYnLCAnb2JqZWN0JzogJ2NoYXQuY29tcGxldGlvbicsICdzZXJ2aWNlX3RpZXInOiBOb25lLCAnc3lzdGVtX2ZpbmdlcnByaW50JzogJ2ZwXzlmYWJhOWYwMzgnLCAndXNhZ2UnOiB7J2NvbXBsZXRpb25fdG9rZW5zJzogMjIsICdwcm9tcHRfdG9rZW5zJzogMTM2LCAndG90YWxfdG9rZW5zJzogMTU4LCAnY29tcGxldGlvbl90b2tlbnNfZGV0YWlscyc6IHsnYWNjZXB0ZWRfcHJlZGljdGlvbl90b2tlbnMnOiAwLCAnYXVkaW9fdG9rZW5zJzogMCwgJ3JlYXNvbmluZ190b2tlbnMnOiAwLCAncmVqZWN0ZWRfcHJlZGljdGlvbl90b2tlbnMnOiAwfSwgJ3Byb21wdF90b2tlbnNfZGV0YWlscyc6IHsnYXVkaW9fdG9rZW5zJzogMCwgJ2NhY2hlZF90b2tlbnMnOiAwfX19IiwxNzg1LjcxNDI4NTcxNDI4NTYsMjA0MC44MTYzMjY1MzA2MTIzLCJ7J2lkJzogJ2NoYXRjbXBsLUFlT0xDR3FKMlR2cWdtdnVMdGZVWmxkcENqWHdnJywgJ2Nob2ljZXMnOiBbeydmaW5pc2hfcmVhc29uJzogJ3N0b3AnLCAnaW5kZXgnOiAwLCAnbG9ncHJvYnMnOiBOb25lLCAnbWVzc2FnZSc6IHsnY29udGVudCc6ICdbNV0gIFxuVGhlIGlzc3VlIG1lbnRpb25lZCBpbiB0aGUgdGlja2V0IGlzIHJlbGF0ZWQgdG8gYSBjaGFyZ2UgZm9yIGEgcmlkZSB0aGF0IHdhcyBub3QgdGFrZW4sIHdoaWNoIGRvZXNuXCd0IGZpdCBpbnRvIHRoZSBwcmVkZWZpbmVkIGNhdGVnb3JpZXMgZXhjZXB0IGZvciAiIm90aGVyLiIiJywgJ3JlZnVzYWwnOiBOb25lLCAncm9sZSc6ICdhc3Npc3RhbnQnLCAnYXVkaW8nOiBOb25lLCAnZnVuY3Rpb25fY2FsbCc6IE5vbmUsICd0b29sX2NhbGxzJzogTm9uZX19XSwgJ2NyZWF0ZWQnOiAxNzM0MTkwMDUwLCAnbW9kZWwnOiAnZ3B0LTRvLTIwMjQtMDgtMDYnLCAnb2JqZWN0JzogJ2NoYXQuY29tcGxldGlvbicsICdzZXJ2aWNlX3RpZXInOiBOb25lLCAnc3lzdGVtX2ZpbmdlcnByaW50JzogJ2ZwX2E3OWQ4ZGFjMWYnLCAndXNhZ2UnOiB7J2NvbXBsZXRpb25fdG9rZW5zJzogMzUsICdwcm9tcHRfdG9rZW5zJzogMTU5LCAndG90YWxfdG9rZW5zJzogMTk0LCAnY29tcGxldGlvbl90b2tlbnNfZGV0YWlscyc6IHsnYWNjZXB0ZWRfcHJlZGljdGlvbl90b2tlbnMnOiAwLCAnYXVkaW9fdG9rZW5zJzogMCwgJ3JlYXNvbmluZ190b2tlbnMnOiAwLCAncmVqZWN0ZWRfcHJlZGljdGlvbl90b2tlbnMnOiAwfSwgJ3Byb21wdF90b2tlbnNfZGV0YWlscyc6IHsnYXVkaW9fdG9rZW5zJzogMCwgJ2NhY2hlZF90b2tlbnMnOiAwfX19IiwwLjAwMDgwNDk5OTk5OTk5OTk5OTksMTk4MC4xOTgwMTk4MDE5OCwwLjAwMDQ5LDAuMDAwNzQ3NSwieydpZCc6ICdjaGF0Y21wbC1BZU9MQzdKRGJQYUZqcVNiMG5kNVVhTFFoV1p4dScsICdjaG9pY2VzJzogW3snZmluaXNoX3JlYXNvbic6ICdzdG9wJywgJ2luZGV4JzogMCwgJ2xvZ3Byb2JzJzogTm9uZSwgJ21lc3NhZ2UnOiB7J2NvbnRlbnQnOiAnVGhlIHByaW1hcnkgaXNzdWUgaW4gdGhpcyB0aWNrZXQgaXMgYW4gaW5jb3JyZWN0IGNoYXJnZSBmb3IgYSByaWRlIHRoYXQgdGhlIGN1c3RvbWVyIGNsYWltcyB0aGV5IGRpZCBub3QgdGFrZS4gVGhlIGN1c3RvbWVyIGlzIHJlcXVlc3RpbmcgYSByZWZ1bmQgZm9yIHRoaXMgY2hhcmdlLicsICdyZWZ1c2FsJzogTm9uZSwgJ3JvbGUnOiAnYXNzaXN0YW50JywgJ2F1ZGlvJzogTm9uZSwgJ2Z1bmN0aW9uX2NhbGwnOiBOb25lLCAndG9vbF9jYWxscyc6IE5vbmV9fV0sICdjcmVhdGVkJzogMTczNDE5MDA1MCwgJ21vZGVsJzogJ2dwdC00by0yMDI0LTA4LTA2JywgJ29iamVjdCc6ICdjaGF0LmNvbXBsZXRpb24nLCAnc2VydmljZV90aWVyJzogTm9uZSwgJ3N5c3RlbV9maW5nZXJwcmludCc6ICdmcF85ZmFiYTlmMDM4JywgJ3VzYWdlJzogeydjb21wbGV0aW9uX3Rva2Vucyc6IDMyLCAncHJvbXB0X3Rva2Vucyc6IDc5LCAndG90YWxfdG9rZW5zJzogMTExLCAnY29tcGxldGlvbl90b2tlbnNfZGV0YWlscyc6IHsnYWNjZXB0ZWRfcHJlZGljdGlvbl90b2tlbnMnOiAwLCAnYXVkaW9fdG9rZW5zJzogMCwgJ3JlYXNvbmluZ190b2tlbnMnOiAwLCAncmVqZWN0ZWRfcHJlZGljdGlvbl90b2tlbnMnOiAwfSwgJ3Byb21wdF90b2tlbnNfZGV0YWlscyc6IHsnYXVkaW9fdG9rZW5zJzogMCwgJ2NhY2hlZF90b2tlbnMnOiAwfX19IiwwLjAwMDUxNzUwMDAwMDAwMDAwMDEsMTkzMi4zNjcxNDk3NTg0NTQsInsnaWQnOiAnY2hhdGNtcGwtQWVPTEMxMmpaa01zeG40UTlSbGg3cnFZT0tLbDgnLCAnY2hvaWNlcyc6IFt7J2ZpbmlzaF9yZWFzb24nOiAnc3RvcCcsICdpbmRleCc6IDAsICdsb2dwcm9icyc6IE5vbmUsICdtZXNzYWdlJzogeydjb250ZW50JzogJzMgIFxuVGhpcyBzaXR1YXRpb24gaW52b2x2ZXMgYSBmaW5hbmNpYWwgZGlzY3JlcGFuY3ksIHdoaWNoIGlzIGltcG9ydGFudCB0byByZXNvbHZlIHByb21wdGx5IHRvIG1haW50YWluIGN1c3RvbWVyIHRydXN0IGFuZCBzYXRpc2ZhY3Rpb24sIGJ1dCBpdCBkb2VzIG5vdCBpbnZvbHZlIGltbWVkaWF0ZSBzYWZldHkgb3Igc2VjdXJpdHkgY29uY2VybnMsIHdoaWNoIHdvdWxkIHdhcnJhbnQgYSBoaWdoZXIgcHJpb3JpdHkuJywgJ3JlZnVzYWwnOiBOb25lLCAncm9sZSc6ICdhc3Npc3RhbnQnLCAnYXVkaW8nOiBOb25lLCAnZnVuY3Rpb25fY2FsbCc6IE5vbmUsICd0b29sX2NhbGxzJzogTm9uZX19XSwgJ2NyZWF0ZWQnOiAxNzM0MTkwMDUwLCAnbW9kZWwnOiAnZ3B0LTRvLTIwMjQtMDgtMDYnLCAnb2JqZWN0JzogJ2NoYXQuY29tcGxldGlvbicsICdzZXJ2aWNlX3RpZXInOiBOb25lLCAnc3lzdGVtX2ZpbmdlcnByaW50JzogJ2ZwX2EzNGIyNzI3ZDYnLCAndXNhZ2UnOiB7J2NvbXBsZXRpb25fdG9rZW5zJzogNDAsICdwcm9tcHRfdG9rZW5zJzogMTYyLCAndG90YWxfdG9rZW5zJzogMjAyLCAnY29tcGxldGlvbl90b2tlbnNfZGV0YWlscyc6IHsnYWNjZXB0ZWRfcHJlZGljdGlvbl90b2tlbnMnOiAwLCAnYXVkaW9fdG9rZW5zJzogMCwgJ3JlYXNvbmluZ190b2tlbnMnOiAwLCAncmVqZWN0ZWRfcHJlZGljdGlvbl90b2tlbnMnOiAwfSwgJ3Byb21wdF90b2tlbnNfZGV0YWlscyc6IHsnYXVkaW9fdG9rZW5zJzogMCwgJ2NhY2hlZF90b2tlbnMnOiAwfX19IiwxMzM3Ljc5MjY0MjE0MDQ2ODIsMTI0Mi4yMzYwMjQ4NDQ3MjA1LDAuMDAwNTA1LCJ7J2lkJzogJ2NoYXRjbXBsLUFlT0xDYXVyRTJBTUlsVUJaUXUzcERvNXlnZUNIJywgJ2Nob2ljZXMnOiBbeydmaW5pc2hfcmVhc29uJzogJ3N0b3AnLCAnaW5kZXgnOiAwLCAnbG9ncHJvYnMnOiBOb25lLCAnbWVzc2FnZSc6IHsnY29udGVudCc6ICdZZXNcblxuVGhlIGN1c3RvbWVyIGV4cGxpY2l0bHkgcmVxdWVzdHMgYSByZWZ1bmQgYnkgc3RhdGluZywgIiJQbGVhc2UgcmVmdW5kIG1lIGFzIHNvb24gYXMgcG9zc2libGUuIiInLCAncmVmdXNhbCc6IE5vbmUsICdyb2xlJzogJ2Fzc2lzdGFudCcsICdhdWRpbyc6IE5vbmUsICdmdW5jdGlvbl9jYWxsJzogTm9uZSwgJ3Rvb2xfY2FsbHMnOiBOb25lfX1dLCAnY3JlYXRlZCc6IDE3MzQxOTAwNTAsICdtb2RlbCc6ICdncHQtNG8tMjAyNC0wOC0wNicsICdvYmplY3QnOiAnY2hhdC5jb21wbGV0aW9uJywgJ3NlcnZpY2VfdGllcic6IE5vbmUsICdzeXN0ZW1fZmluZ2VycHJpbnQnOiAnZnBfOWZhYmE5ZjAzOCcsICd1c2FnZSc6IHsnY29tcGxldGlvbl90b2tlbnMnOiAyMCwgJ3Byb21wdF90b2tlbnMnOiAxMTYsICd0b3RhbF90b2tlbnMnOiAxMzYsICdjb21wbGV0aW9uX3Rva2Vuc19kZXRhaWxzJzogeydhY2NlcHRlZF9wcmVkaWN0aW9uX3Rva2Vucyc6IDAsICdhdWRpb190b2tlbnMnOiAwLCAncmVhc29uaW5nX3Rva2Vucyc6IDAsICdyZWplY3RlZF9wcmVkaWN0aW9uX3Rva2Vucyc6IDB9LCAncHJvbXB0X3Rva2Vuc19kZXRhaWxzJzogeydhdWRpb190b2tlbnMnOiAwLCAnY2FjaGVkX3Rva2Vucyc6IDB9fX0iLDAsRG9lcyB0aGUgY3VzdG9tZXIgYXNrIGZvciBhIHJlZnVuZCBpbiB0aGlzIHRpY2tldD8gVGlja2V0OiB7eyB0aWNrZXQgfX0sIklmIHRoZSBwcmltYXJ5IGlzc3VlIGluIHRoaXMgdGlja2V0IGlzIHNhZmV0eSwgd2FzIHRoZXJlIGFuIGFjY2lkZW50IHdoZXJlIHNvbWVvbmUgd2FzIGh1cnQ/IFRpY2tldDoge3sgdGlja2V0IH19IixXaGF0IGlzIHRoZSBwcmltYXJ5IGlzc3VlIGluIHRoaXMgdGlja2V0PyBUaWNrZXQ6IHt7IHRpY2tldCB9fSxDaGVjayBhbGwgb2YgdGhlIGlzc3VlcyBtZW50aW9uZWQgaW4gdGhpcyB0aWNrZXQ6IHt7IHRpY2tldCB9fSwiT24gYSBzY2FsZSBmcm9tIDAgdG8gNSwgd2hhdCBpcyB0aGUgcHJpb3JpdHkgbGV2ZWwgb2YgdGhpcyB0aWNrZXQ/IFRpY2tldDoge3sgdGlja2V0IH19IixXaGF0IGlzIHRoZSBzZW50aW1lbnQgb2YgdGhpcyB0aWNrZXQ/IFRpY2tldDoge3sgdGlja2V0IH19LCJbJ3NhZmV0eScsICdjbGVhbmxpbmVzcycsICdkcml2ZXIgcGVyZm9ybWFuY2UnLCAnR1BTL3JvdXRlJywgJ2xvc3QgaXRlbScsICdvdGhlciddIiwiWydWZXJ5IHBvc2l0aXZlJywgJ1NvbWV3aGF0IHBvc2l0aXZlJywgJ05ldXRyYWwnLCAnU29tZXdoYXQgbmVnYXRpdmUnLCAnVmVyeSBuZWdhdGl2ZSddIiwsIlsnTm8nLCAnWWVzJ10iLCJbJ1llcycsICdObycsICdOb3QgYXBwbGljYWJsZSddIiwiWzAsIDEsIDIsIDMsIDQsIDVdIixsaW5lYXJfc2NhbGUsbXVsdGlwbGVfY2hvaWNlLG11bHRpcGxlX2Nob2ljZSx5ZXNfbm8sZnJlZV90ZXh0LGNoZWNrYm94LCwiVGhlIGN1c3RvbWVyIGV4cGxpY2l0bHkgcmVxdWVzdHMgYSByZWZ1bmQgYnkgc3RhdGluZywgIiJQbGVhc2UgcmVmdW5kIG1lIGFzIHNvb24gYXMgcG9zc2libGUuIiIiLCJUaGlzIHNpdHVhdGlvbiBpbnZvbHZlcyBhIGZpbmFuY2lhbCBkaXNjcmVwYW5jeSwgd2hpY2ggaXMgaW1wb3J0YW50IHRvIHJlc29sdmUgcHJvbXB0bHkgdG8gbWFpbnRhaW4gY3VzdG9tZXIgdHJ1c3QgYW5kIHNhdGlzZmFjdGlvbiwgYnV0IGl0IGRvZXMgbm90IGludm9sdmUgaW1tZWRpYXRlIHNhZmV0eSBvciBzZWN1cml0eSBjb25jZXJucywgd2hpY2ggd291bGQgd2FycmFudCBhIGhpZ2hlciBwcmlvcml0eS4iLCJUaGUgaXNzdWUgbWVudGlvbmVkIGluIHRoZSB0aWNrZXQgaXMgcmVsYXRlZCB0byBhIGNoYXJnZSBmb3IgYSByaWRlIHRoYXQgd2FzIG5vdCB0YWtlbiwgd2hpY2ggZG9lc24ndCBmaXQgaW50byB0aGUgcHJlZGVmaW5lZCBjYXRlZ29yaWVzIGV4Y2VwdCBmb3IgIiJvdGhlci4iIiIsIlRoZSB0aWNrZXQgZXhwcmVzc2VzIGRpc3NhdGlzZmFjdGlvbiBhbmQgdXJnZW5jeSBkdWUgdG8gYW4gaW5jb3JyZWN0IGNoYXJnZSwgaW5kaWNhdGluZyBhIHNvbWV3aGF0IG5lZ2F0aXZlIHNlbnRpbWVudC4iLCJUaGUgdGlja2V0IGlzIGFib3V0IGEgYmlsbGluZyBpc3N1ZSwgbm90IGEgc2FmZXR5IGNvbmNlcm4uIiwiU29tZXdoYXQgbmVnYXRpdmUKClRoZSB0aWNrZXQgZXhwcmVzc2VzIGRpc3NhdGlzZmFjdGlvbiBhbmQgdXJnZW5jeSBkdWUgdG8gYW4gaW5jb3JyZWN0IGNoYXJnZSwgaW5kaWNhdGluZyBhIHNvbWV3aGF0IG5lZ2F0aXZlIHNlbnRpbWVudC4iLCJbNV0gIApUaGUgaXNzdWUgbWVudGlvbmVkIGluIHRoZSB0aWNrZXQgaXMgcmVsYXRlZCB0byBhIGNoYXJnZSBmb3IgYSByaWRlIHRoYXQgd2FzIG5vdCB0YWtlbiwgd2hpY2ggZG9lc24ndCBmaXQgaW50byB0aGUgcHJlZGVmaW5lZCBjYXRlZ29yaWVzIGV4Y2VwdCBmb3IgIiJvdGhlci4iIiIsIlllcwoKVGhlIGN1c3RvbWVyIGV4cGxpY2l0bHkgcmVxdWVzdHMgYSByZWZ1bmQgYnkgc3RhdGluZywgIiJQbGVhc2UgcmVmdW5kIG1lIGFzIHNvb24gYXMgcG9zc2libGUuIiIiLFRoZSBwcmltYXJ5IGlzc3VlIGluIHRoaXMgdGlja2V0IGlzIGFuIGluY29ycmVjdCBjaGFyZ2UgZm9yIGEgcmlkZSB0aGF0IHRoZSBjdXN0b21lciBjbGFpbXMgdGhleSBkaWQgbm90IHRha2UuIFRoZSBjdXN0b21lciBpcyByZXF1ZXN0aW5nIGEgcmVmdW5kIGZvciB0aGlzIGNoYXJnZS4sIk5vdCBhcHBsaWNhYmxlCgpUaGUgdGlja2V0IGlzIGFib3V0IGEgYmlsbGluZyBpc3N1ZSwgbm90IGEgc2FmZXR5IGNvbmNlcm4uIiwiMyAgClRoaXMgc2l0dWF0aW9uIGludm9sdmVzIGEgZmluYW5jaWFsIGRpc2NyZXBhbmN5LCB3aGljaCBpcyBpbXBvcnRhbnQgdG8gcmVzb2x2ZSBwcm9tcHRseSB0byBtYWludGFpbiBjdXN0b21lciB0cnVzdCBhbmQgc2F0aXNmYWN0aW9uLCBidXQgaXQgZG9lcyBub3QgaW52b2x2ZSBpbW1lZGlhdGUgc2FmZXR5IG9yIHNlY3VyaXR5IGNvbmNlcm5zLCB3aGljaCB3b3VsZCB3YXJyYW50IGEgaGlnaGVyIHByaW9yaXR5LiINCk5vdCBhcHBsaWNhYmxlLFNvbWV3aGF0IG5lZ2F0aXZlLE5vLFRoZSBwcmltYXJ5IGlzc3VlIGluIHRoaXMgdGlja2V0IGlzIHRoYXQgdGhlIGN1c3RvbWVyIGlzIGV4cGVyaWVuY2luZyBkaWZmaWN1bHR5IHdpdGggYSBwcm9tbyBjb2RlIHRoYXQgZGlkIG5vdCB3b3JrIGFzIGV4cGVjdGVkLiBUaGUgY3VzdG9tZXIgaXMgc2Vla2luZyBhc3Npc3RhbmNlIHRvIHJlc29sdmUgdGhpcyBpc3N1ZS4sMixbJ290aGVyJ10sVGhlIHByb21vIGNvZGUgSSB0cmllZCB0byB1c2UgZGlkbid0IHdvcmsuIENhbiB5b3UgYXNzaXN0IHdpdGggdGhpcz8sWW91IGFyZSBhbiBleHBlcnQgY3VzdG9tZXIgc2VydmljZSBhZ2VudC4sQWdlbnRfMTMsMTUsWW91IGFyZSBhbnN3ZXJpbmcgcXVlc3Rpb25zIGFzIGlmIHlvdSB3ZXJlIGEgaHVtYW4uIERvIG5vdCBicmVhayBjaGFyYWN0ZXIuLDAsMSwwLGdwdC00bywwLjUsRmFsc2UsMTAwMCwzLFdoYXQgaXMgdGhlIHByaW1hcnkgaXNzdWUgaW4gdGhpcyB0aWNrZXQ/IFRpY2tldDogVGhlIHByb21vIGNvZGUgSSB0cmllZCB0byB1c2UgZGlkbid0IHdvcmsuIENhbiB5b3UgYXNzaXN0IHdpdGggdGhpcz8sIllvdSBhcmUgYW5zd2VyaW5nIHF1ZXN0aW9ucyBhcyBpZiB5b3Ugd2VyZSBhIGh1bWFuLiBEbyBub3QgYnJlYWsgY2hhcmFjdGVyLiBZb3VyIHRyYWl0czogeydwZXJzb25hJzogJ1lvdSBhcmUgYW4gZXhwZXJ0IGN1c3RvbWVyIHNlcnZpY2UgYWdlbnQuJywgJ3llYXJzX2V4cGVyaWVuY2UnOiAxNX0iLCJZb3UgYXJlIGFuc3dlcmluZyBxdWVzdGlvbnMgYXMgaWYgeW91IHdlcmUgYSBodW1hbi4gRG8gbm90IGJyZWFrIGNoYXJhY3Rlci4gWW91ciB0cmFpdHM6IHsncGVyc29uYSc6ICdZb3UgYXJlIGFuIGV4cGVydCBjdXN0b21lciBzZXJ2aWNlIGFnZW50LicsICd5ZWFyc19leHBlcmllbmNlJzogMTV9IiwiQ2hlY2sgYWxsIG9mIHRoZSBpc3N1ZXMgbWVudGlvbmVkIGluIHRoaXMgdGlja2V0OiBUaGUgcHJvbW8gY29kZSBJIHRyaWVkIHRvIHVzZSBkaWRuJ3Qgd29yay4gQ2FuIHlvdSBhc3Npc3Qgd2l0aCB0aGlzPwoKICAgIAowOiBzYWZldHkKICAgIAoxOiBjbGVhbmxpbmVzcwogICAgCjI6IGRyaXZlciBwZXJmb3JtYW5jZQogICAgCjM6IEdQUy9yb3V0ZQogICAgCjQ6IGxvc3QgaXRlbQogICAgCjU6IG90aGVyCiAgICAKCgoKCgoKUGxlYXNlIHJlc3BvbmQgb25seSB3aXRoIGEgY29tbWEtc2VwYXJhdGVkIGxpc3Qgb2YgdGhlIGNvZGUgb2YgdGhlIG9wdGlvbnMgdGhhdCBhcHBseSwgd2l0aCBzcXVhcmUgYnJhY2tldHMuIEUuZy4sIFswLCAxLCAzXQoKCkFmdGVyIHRoZSBhbnN3ZXIsIHlvdSBjYW4gcHV0IGEgY29tbWVudCBleHBsYWluaW5nIHlvdXIgY2hvaWNlIG9uIHRoZSBuZXh0IGxpbmUuIiwiT24gYSBzY2FsZSBmcm9tIDAgdG8gNSwgd2hhdCBpcyB0aGUgcHJpb3JpdHkgbGV2ZWwgb2YgdGhpcyB0aWNrZXQ/IFRpY2tldDogVGhlIHByb21vIGNvZGUgSSB0cmllZCB0byB1c2UgZGlkbid0IHdvcmsuIENhbiB5b3UgYXNzaXN0IHdpdGggdGhpcz8KCjAgOiBMb3dlc3QKCjEgOiAKCjIgOiAKCjMgOiAKCjQgOiAKCjUgOiBIaWdoZXN0CgpPbmx5IDEgb3B0aW9uIG1heSBiZSBzZWxlY3RlZC4KClJlc3BvbmQgb25seSB3aXRoIHRoZSBjb2RlIGNvcnJlc3BvbmRpbmcgdG8gb25lIG9mIHRoZSBvcHRpb25zLiBFLmcuLCAiIjEiIiBvciAiIjUiIiBieSBpdHNlbGYuCgpBZnRlciB0aGUgYW5zd2VyLCB5b3UgY2FuIHB1dCBhIGNvbW1lbnQgZXhwbGFpbmluZyB3aHkgeW91IGNob3NlIHRoYXQgb3B0aW9uIG9uIHRoZSBuZXh0IGxpbmUuIiwiWW91IGFyZSBhbnN3ZXJpbmcgcXVlc3Rpb25zIGFzIGlmIHlvdSB3ZXJlIGEgaHVtYW4uIERvIG5vdCBicmVhayBjaGFyYWN0ZXIuIFlvdXIgdHJhaXRzOiB7J3BlcnNvbmEnOiAnWW91IGFyZSBhbiBleHBlcnQgY3VzdG9tZXIgc2VydmljZSBhZ2VudC4nLCAneWVhcnNfZXhwZXJpZW5jZSc6IDE1fSIsIllvdSBhcmUgYW5zd2VyaW5nIHF1ZXN0aW9ucyBhcyBpZiB5b3Ugd2VyZSBhIGh1bWFuLiBEbyBub3QgYnJlYWsgY2hhcmFjdGVyLiBZb3VyIHRyYWl0czogeydwZXJzb25hJzogJ1lvdSBhcmUgYW4gZXhwZXJ0IGN1c3RvbWVyIHNlcnZpY2UgYWdlbnQuJywgJ3llYXJzX2V4cGVyaWVuY2UnOiAxNX0iLCJZb3UgYXJlIGFuc3dlcmluZyBxdWVzdGlvbnMgYXMgaWYgeW91IHdlcmUgYSBodW1hbi4gRG8gbm90IGJyZWFrIGNoYXJhY3Rlci4gWW91ciB0cmFpdHM6IHsncGVyc29uYSc6ICdZb3UgYXJlIGFuIGV4cGVydCBjdXN0b21lciBzZXJ2aWNlIGFnZW50LicsICd5ZWFyc19leHBlcmllbmNlJzogMTV9IiwiCldoYXQgaXMgdGhlIHNlbnRpbWVudCBvZiB0aGlzIHRpY2tldD8gVGlja2V0OiBUaGUgcHJvbW8gY29kZSBJIHRyaWVkIHRvIHVzZSBkaWRuJ3Qgd29yay4gQ2FuIHlvdSBhc3Npc3Qgd2l0aCB0aGlzPwoKICAgIApWZXJ5IHBvc2l0aXZlCiAgICAKU29tZXdoYXQgcG9zaXRpdmUKICAgIApOZXV0cmFsCiAgICAKU29tZXdoYXQgbmVnYXRpdmUKICAgIApWZXJ5IG5lZ2F0aXZlCiAgICAKCk9ubHkgMSBvcHRpb24gbWF5IGJlIHNlbGVjdGVkLgoKUmVzcG9uZCBvbmx5IHdpdGggYSBzdHJpbmcgY29ycmVzcG9uZGluZyB0byBvbmUgb2YgdGhlIG9wdGlvbnMuCgoKQWZ0ZXIgdGhlIGFuc3dlciwgeW91IGNhbiBwdXQgYSBjb21tZW50IGV4cGxhaW5pbmcgd2h5IHlvdSBjaG9zZSB0aGF0IG9wdGlvbiBvbiB0aGUgbmV4dCBsaW5lLiIsIgpEb2VzIHRoZSBjdXN0b21lciBhc2sgZm9yIGEgcmVmdW5kIGluIHRoaXMgdGlja2V0PyBUaWNrZXQ6IFRoZSBwcm9tbyBjb2RlIEkgdHJpZWQgdG8gdXNlIGRpZG4ndCB3b3JrLiBDYW4geW91IGFzc2lzdCB3aXRoIHRoaXM/CgogICAgCk5vCiAgICAKWWVzCiAgICAKCk9ubHkgMSBvcHRpb24gbWF5IGJlIHNlbGVjdGVkLgpQbGVhc2UgcmVzcG9uZCB3aXRoIGp1c3QgeW91ciBhbnN3ZXIuIAoKCkFmdGVyIHRoZSBhbnN3ZXIsIHlvdSBjYW4gcHV0IGEgY29tbWVudCBleHBsYWluaW5nIHlvdXIgcmVzcG9uc2UuIiwiWW91IGFyZSBhbnN3ZXJpbmcgcXVlc3Rpb25zIGFzIGlmIHlvdSB3ZXJlIGEgaHVtYW4uIERvIG5vdCBicmVhayBjaGFyYWN0ZXIuIFlvdXIgdHJhaXRzOiB7J3BlcnNvbmEnOiAnWW91IGFyZSBhbiBleHBlcnQgY3VzdG9tZXIgc2VydmljZSBhZ2VudC4nLCAneWVhcnNfZXhwZXJpZW5jZSc6IDE1fSIsIgpJZiB0aGUgcHJpbWFyeSBpc3N1ZSBpbiB0aGlzIHRpY2tldCBpcyBzYWZldHksIHdhcyB0aGVyZSBhbiBhY2NpZGVudCB3aGVyZSBzb21lb25lIHdhcyBodXJ0PyBUaWNrZXQ6IFRoZSBwcm9tbyBjb2RlIEkgdHJpZWQgdG8gdXNlIGRpZG4ndCB3b3JrLiBDYW4geW91IGFzc2lzdCB3aXRoIHRoaXM/CgogICAgClllcwogICAgCk5vCiAgICAKTm90IGFwcGxpY2FibGUKICAgIAoKT25seSAxIG9wdGlvbiBtYXkgYmUgc2VsZWN0ZWQuCgpSZXNwb25kIG9ubHkgd2l0aCBhIHN0cmluZyBjb3JyZXNwb25kaW5nIHRvIG9uZSBvZiB0aGUgb3B0aW9ucy4KCgpBZnRlciB0aGUgYW5zd2VyLCB5b3UgY2FuIHB1dCBhIGNvbW1lbnQgZXhwbGFpbmluZyB3aHkgeW91IGNob3NlIHRoYXQgb3B0aW9uIG9uIHRoZSBuZXh0IGxpbmUuIiwwLjAwMDY4NTAwMDAwMDAwMDAwMDEsInsnaWQnOiAnY2hhdGNtcGwtQWVPTERlYVdzbW56b3RXaFcxRUFHeWJMTVhncE4nLCAnY2hvaWNlcyc6IFt7J2ZpbmlzaF9yZWFzb24nOiAnc3RvcCcsICdpbmRleCc6IDAsICdsb2dwcm9icyc6IE5vbmUsICdtZXNzYWdlJzogeydjb250ZW50JzogIiJOb3QgYXBwbGljYWJsZSAgXG5UaGUgdGlja2V0IGlzIHJlbGF0ZWQgdG8gYSBwcm9tbyBjb2RlIGlzc3VlLCB3aGljaCBkb2Vzbid0IHBlcnRhaW4gdG8gc2FmZXR5IG9yIGFjY2lkZW50cy4iIiwgJ3JlZnVzYWwnOiBOb25lLCAncm9sZSc6ICdhc3Npc3RhbnQnLCAnYXVkaW8nOiBOb25lLCAnZnVuY3Rpb25fY2FsbCc6IE5vbmUsICd0b29sX2NhbGxzJzogTm9uZX19XSwgJ2NyZWF0ZWQnOiAxNzM0MTkwMDUxLCAnbW9kZWwnOiAnZ3B0LTRvLTIwMjQtMDgtMDYnLCAnb2JqZWN0JzogJ2NoYXQuY29tcGxldGlvbicsICdzZXJ2aWNlX3RpZXInOiBOb25lLCAnc3lzdGVtX2ZpbmdlcnByaW50JzogJ2ZwXzlmYWJhOWYwMzgnLCAndXNhZ2UnOiB7J2NvbXBsZXRpb25fdG9rZW5zJzogMjIsICdwcm9tcHRfdG9rZW5zJzogMTM2LCAndG90YWxfdG9rZW5zJzogMTU4LCAnY29tcGxldGlvbl90b2tlbnNfZGV0YWlscyc6IHsnYWNjZXB0ZWRfcHJlZGljdGlvbl90b2tlbnMnOiAwLCAnYXVkaW9fdG9rZW5zJzogMCwgJ3JlYXNvbmluZ190b2tlbnMnOiAwLCAncmVqZWN0ZWRfcHJlZGljdGlvbl90b2tlbnMnOiAwfSwgJ3Byb21wdF90b2tlbnNfZGV0YWlscyc6IHsnYXVkaW9fdG9rZW5zJzogMCwgJ2NhY2hlZF90b2tlbnMnOiAwfX19IiwieydpZCc6ICdjaGF0Y21wbC1BZU9MQ0hJYlppbkxwSVFNU0ZLZXFQWTVxWkpnbScsICdjaG9pY2VzJzogW3snZmluaXNoX3JlYXNvbic6ICdzdG9wJywgJ2luZGV4JzogMCwgJ2xvZ3Byb2JzJzogTm9uZSwgJ21lc3NhZ2UnOiB7J2NvbnRlbnQnOiAnU29tZXdoYXQgbmVnYXRpdmVcblxuVGhlIHNlbnRpbWVudCBpcyAiInNvbWV3aGF0IG5lZ2F0aXZlIiIgYmVjYXVzZSB0aGUgY3VzdG9tZXIgaXMgZXhwcmVzc2luZyBkaXNzYXRpc2ZhY3Rpb24gZHVlIHRvIHRoZSBwcm9tbyBjb2RlIG5vdCB3b3JraW5nLCBidXQgdGhleSBhcmUgc3RpbGwgcG9saXRlbHkgYXNraW5nIGZvciBhc3Npc3RhbmNlLicsICdyZWZ1c2FsJzogTm9uZSwgJ3JvbGUnOiAnYXNzaXN0YW50JywgJ2F1ZGlvJzogTm9uZSwgJ2Z1bmN0aW9uX2NhbGwnOiBOb25lLCAndG9vbF9jYWxscyc6IE5vbmV9fV0sICdjcmVhdGVkJzogMTczNDE5MDA1MCwgJ21vZGVsJzogJ2dwdC00by0yMDI0LTA4LTA2JywgJ29iamVjdCc6ICdjaGF0LmNvbXBsZXRpb24nLCAnc2VydmljZV90aWVyJzogTm9uZSwgJ3N5c3RlbV9maW5nZXJwcmludCc6ICdmcF85ZmFiYTlmMDM4JywgJ3VzYWdlJzogeydjb21wbGV0aW9uX3Rva2Vucyc6IDM1LCAncHJvbXB0X3Rva2Vucyc6IDEzNCwgJ3RvdGFsX3Rva2Vucyc6IDE2OSwgJ2NvbXBsZXRpb25fdG9rZW5zX2RldGFpbHMnOiB7J2FjY2VwdGVkX3ByZWRpY3Rpb25fdG9rZW5zJzogMCwgJ2F1ZGlvX3Rva2Vucyc6IDAsICdyZWFzb25pbmdfdG9rZW5zJzogMCwgJ3JlamVjdGVkX3ByZWRpY3Rpb25fdG9rZW5zJzogMH0sICdwcm9tcHRfdG9rZW5zX2RldGFpbHMnOiB7J2F1ZGlvX3Rva2Vucyc6IDAsICdjYWNoZWRfdG9rZW5zJzogMH19fSIsMTQ1OS44NTQwMTQ1OTg1NCwxOTA0Ljc2MTkwNDc2MTkwNDgsInsnaWQnOiAnY2hhdGNtcGwtQWVPTENQSUVNMlNzZ0FYMnhScDRhbDNvNGY1UTQnLCAnY2hvaWNlcyc6IFt7J2ZpbmlzaF9yZWFzb24nOiAnc3RvcCcsICdpbmRleCc6IDAsICdsb2dwcm9icyc6IE5vbmUsICdtZXNzYWdlJzogeydjb250ZW50JzogJ1s1XSAgXG5UaGUgaXNzdWUgbWVudGlvbmVkIGluIHRoZSB0aWNrZXQgaXMgcmVsYXRlZCB0byBhIHByb21vIGNvZGUgbm90IHdvcmtpbmcsIHdoaWNoIGZhbGxzIHVuZGVyIHRoZSAiIm90aGVyIiIgY2F0ZWdvcnkuJywgJ3JlZnVzYWwnOiBOb25lLCAncm9sZSc6ICdhc3Npc3RhbnQnLCAnYXVkaW8nOiBOb25lLCAnZnVuY3Rpb25fY2FsbCc6IE5vbmUsICd0b29sX2NhbGxzJzogTm9uZX19XSwgJ2NyZWF0ZWQnOiAxNzM0MTkwMDUwLCAnbW9kZWwnOiAnZ3B0LTRvLTIwMjQtMDgtMDYnLCAnb2JqZWN0JzogJ2NoYXQuY29tcGxldGlvbicsICdzZXJ2aWNlX3RpZXInOiBOb25lLCAnc3lzdGVtX2ZpbmdlcnByaW50JzogJ2ZwX2E3OWQ4ZGFjMWYnLCAndXNhZ2UnOiB7J2NvbXBsZXRpb25fdG9rZW5zJzogMjgsICdwcm9tcHRfdG9rZW5zJzogMTU3LCAndG90YWxfdG9rZW5zJzogMTg1LCAnY29tcGxldGlvbl90b2tlbnNfZGV0YWlscyc6IHsnYWNjZXB0ZWRfcHJlZGljdGlvbl90b2tlbnMnOiAwLCAnYXVkaW9fdG9rZW5zJzogMCwgJ3JlYXNvbmluZ190b2tlbnMnOiAwLCAncmVqZWN0ZWRfcHJlZGljdGlvbl90b2tlbnMnOiAwfSwgJ3Byb21wdF90b2tlbnNfZGV0YWlscyc6IHsnYXVkaW9fdG9rZW5zJzogMCwgJ2NhY2hlZF90b2tlbnMnOiAwfX19IiwwLjAwMDc4MDAwMDAwMDAwMDAwMDEsMTc4NS43MTQyODU3MTQyODU2LDAuMDAwNTI1LDAuMDAwNjcyNDk5OTk5OTk5OTk5OSwieydpZCc6ICdjaGF0Y21wbC1BZU9MRGhmVkM1MVNFVlk4UE9CYUdwa3Znd1JKMycsICdjaG9pY2VzJzogW3snZmluaXNoX3JlYXNvbic6ICdzdG9wJywgJ2luZGV4JzogMCwgJ2xvZ3Byb2JzJzogTm9uZSwgJ21lc3NhZ2UnOiB7J2NvbnRlbnQnOiAnVGhlIHByaW1hcnkgaXNzdWUgaW4gdGhpcyB0aWNrZXQgaXMgdGhhdCB0aGUgY3VzdG9tZXIgaXMgZXhwZXJpZW5jaW5nIGRpZmZpY3VsdHkgd2l0aCBhIHByb21vIGNvZGUgdGhhdCBkaWQgbm90IHdvcmsgYXMgZXhwZWN0ZWQuIFRoZSBjdXN0b21lciBpcyBzZWVraW5nIGFzc2lzdGFuY2UgdG8gcmVzb2x2ZSB0aGlzIGlzc3VlLicsICdyZWZ1c2FsJzogTm9uZSwgJ3JvbGUnOiAnYXNzaXN0YW50JywgJ2F1ZGlvJzogTm9uZSwgJ2Z1bmN0aW9uX2NhbGwnOiBOb25lLCAndG9vbF9jYWxscyc6IE5vbmV9fV0sICdjcmVhdGVkJzogMTczNDE5MDA1MSwgJ21vZGVsJzogJ2dwdC00by0yMDI0LTA4LTA2JywgJ29iamVjdCc6ICdjaGF0LmNvbXBsZXRpb24nLCAnc2VydmljZV90aWVyJzogTm9uZSwgJ3N5c3RlbV9maW5nZXJwcmludCc6ICdmcF9hNzlkOGRhYzFmJywgJ3VzYWdlJzogeydjb21wbGV0aW9uX3Rva2Vucyc6IDM0LCAncHJvbXB0X3Rva2Vucyc6IDc3LCAndG90YWxfdG9rZW5zJzogMTExLCAnY29tcGxldGlvbl90b2tlbnNfZGV0YWlscyc6IHsnYWNjZXB0ZWRfcHJlZGljdGlvbl90b2tlbnMnOiAwLCAnYXVkaW9fdG9rZW5zJzogMCwgJ3JlYXNvbmluZ190b2tlbnMnOiAwLCAncmVqZWN0ZWRfcHJlZGljdGlvbl90b2tlbnMnOiAwfSwgJ3Byb21wdF90b2tlbnNfZGV0YWlscyc6IHsnYXVkaW9fdG9rZW5zJzogMCwgJ2NhY2hlZF90b2tlbnMnOiAwfX19IiwwLjAwMDUzMjUsMTg3Ny45MzQyNzIzMDA0Njk1LCJ7J2lkJzogJ2NoYXRjbXBsLUFlT0xDT1lCdVkxcFMyRXJiaDZFamlMeFhxSkhnJywgJ2Nob2ljZXMnOiBbeydmaW5pc2hfcmVhc29uJzogJ3N0b3AnLCAnaW5kZXgnOiAwLCAnbG9ncHJvYnMnOiBOb25lLCAnbWVzc2FnZSc6IHsnY29udGVudCc6ICIiMiAgXG5UaGlzIGlzc3VlIGFmZmVjdHMgdGhlIGN1c3RvbWVyJ3MgYWJpbGl0eSB0byBjb21wbGV0ZSBhIHB1cmNoYXNlLCBidXQgaXQgaXMgbm90IGEgc3lzdGVtLXdpZGUgb3V0YWdlIG9yIGEgY3JpdGljYWwgZmFpbHVyZS4gSXQgaXMgaW1wb3J0YW50IHRvIHJlc29sdmUgaXQgcHJvbXB0bHkgdG8gZW5zdXJlIGN1c3RvbWVyIHNhdGlzZmFjdGlvbi4iIiwgJ3JlZnVzYWwnOiBOb25lLCAncm9sZSc6ICdhc3Npc3RhbnQnLCAnYXVkaW8nOiBOb25lLCAnZnVuY3Rpb25fY2FsbCc6IE5vbmUsICd0b29sX2NhbGxzJzogTm9uZX19XSwgJ2NyZWF0ZWQnOiAxNzM0MTkwMDUwLCAnbW9kZWwnOiAnZ3B0LTRvLTIwMjQtMDgtMDYnLCAnb2JqZWN0JzogJ2NoYXQuY29tcGxldGlvbicsICdzZXJ2aWNlX3RpZXInOiBOb25lLCAnc3lzdGVtX2ZpbmdlcnByaW50JzogJ2ZwX2E3OWQ4ZGFjMWYnLCAndXNhZ2UnOiB7J2NvbXBsZXRpb25fdG9rZW5zJzogMzgsICdwcm9tcHRfdG9rZW5zJzogMTYwLCAndG90YWxfdG9rZW5zJzogMTk4LCAnY29tcGxldGlvbl90b2tlbnNfZGV0YWlscyc6IHsnYWNjZXB0ZWRfcHJlZGljdGlvbl90b2tlbnMnOiAwLCAnYXVkaW9fdG9rZW5zJzogMCwgJ3JlYXNvbmluZ190b2tlbnMnOiAwLCAncmVqZWN0ZWRfcHJlZGljdGlvbl90b2tlbnMnOiAwfSwgJ3Byb21wdF90b2tlbnNfZGV0YWlscyc6IHsnYXVkaW9fdG9rZW5zJzogMCwgJ2NhY2hlZF90b2tlbnMnOiAwfX19IiwxNDg2Ljk4ODg0NzU4MzY0MzMsMTI4Mi4wNTEyODIwNTEyODIsMC4wMDA1NjAwMDAwMDAwMDAwMDAxLCJ7J2lkJzogJ2NoYXRjbXBsLUFlT0xDQ2huQzVKbXEwcWptM1djNFdPZllMM1pWJywgJ2Nob2ljZXMnOiBbeydmaW5pc2hfcmVhc29uJzogJ3N0b3AnLCAnaW5kZXgnOiAwLCAnbG9ncHJvYnMnOiBOb25lLCAnbWVzc2FnZSc6IHsnY29udGVudCc6ICdOb1xuXG5UaGUgdGlja2V0IGRvZXMgbm90IG1lbnRpb24gYSByZXF1ZXN0IGZvciBhIHJlZnVuZDsgaXQgc2ltcGx5IGFza3MgZm9yIGFzc2lzdGFuY2Ugd2l0aCBhIHByb21vIGNvZGUgaXNzdWUuJywgJ3JlZnVzYWwnOiBOb25lLCAncm9sZSc6ICdhc3Npc3RhbnQnLCAnYXVkaW8nOiBOb25lLCAnZnVuY3Rpb25fY2FsbCc6IE5vbmUsICd0b29sX2NhbGxzJzogTm9uZX19XSwgJ2NyZWF0ZWQnOiAxNzM0MTkwMDUwLCAnbW9kZWwnOiAnZ3B0LTRvLTIwMjQtMDgtMDYnLCAnb2JqZWN0JzogJ2NoYXQuY29tcGxldGlvbicsICdzZXJ2aWNlX3RpZXInOiBOb25lLCAnc3lzdGVtX2ZpbmdlcnByaW50JzogJ2ZwX2E3OWQ4ZGFjMWYnLCAndXNhZ2UnOiB7J2NvbXBsZXRpb25fdG9rZW5zJzogMjQsICdwcm9tcHRfdG9rZW5zJzogMTE0LCAndG90YWxfdG9rZW5zJzogMTM4LCAnY29tcGxldGlvbl90b2tlbnNfZGV0YWlscyc6IHsnYWNjZXB0ZWRfcHJlZGljdGlvbl90b2tlbnMnOiAwLCAnYXVkaW9fdG9rZW5zJzogMCwgJ3JlYXNvbmluZ190b2tlbnMnOiAwLCAncmVqZWN0ZWRfcHJlZGljdGlvbl90b2tlbnMnOiAwfSwgJ3Byb21wdF90b2tlbnNfZGV0YWlscyc6IHsnYXVkaW9fdG9rZW5zJzogMCwgJ2NhY2hlZF90b2tlbnMnOiAwfX19IiwwLERvZXMgdGhlIGN1c3RvbWVyIGFzayBmb3IgYSByZWZ1bmQgaW4gdGhpcyB0aWNrZXQ/IFRpY2tldDoge3sgdGlja2V0IH19LCJJZiB0aGUgcHJpbWFyeSBpc3N1ZSBpbiB0aGlzIHRpY2tldCBpcyBzYWZldHksIHdhcyB0aGVyZSBhbiBhY2NpZGVudCB3aGVyZSBzb21lb25lIHdhcyBodXJ0PyBUaWNrZXQ6IHt7IHRpY2tldCB9fSIsV2hhdCBpcyB0aGUgcHJpbWFyeSBpc3N1ZSBpbiB0aGlzIHRpY2tldD8gVGlja2V0OiB7eyB0aWNrZXQgfX0sQ2hlY2sgYWxsIG9mIHRoZSBpc3N1ZXMgbWVudGlvbmVkIGluIHRoaXMgdGlja2V0OiB7eyB0aWNrZXQgfX0sIk9uIGEgc2NhbGUgZnJvbSAwIHRvIDUsIHdoYXQgaXMgdGhlIHByaW9yaXR5IGxldmVsIG9mIHRoaXMgdGlja2V0PyBUaWNrZXQ6IHt7IHRpY2tldCB9fSIsV2hhdCBpcyB0aGUgc2VudGltZW50IG9mIHRoaXMgdGlja2V0PyBUaWNrZXQ6IHt7IHRpY2tldCB9fSwiWydzYWZldHknLCAnY2xlYW5saW5lc3MnLCAnZHJpdmVyIHBlcmZvcm1hbmNlJywgJ0dQUy9yb3V0ZScsICdsb3N0IGl0ZW0nLCAnb3RoZXInXSIsIlsnVmVyeSBwb3NpdGl2ZScsICdTb21ld2hhdCBwb3NpdGl2ZScsICdOZXV0cmFsJywgJ1NvbWV3aGF0IG5lZ2F0aXZlJywgJ1ZlcnkgbmVnYXRpdmUnXSIsLCJbJ05vJywgJ1llcyddIiwiWydZZXMnLCAnTm8nLCAnTm90IGFwcGxpY2FibGUnXSIsIlswLCAxLCAyLCAzLCA0LCA1XSIsbGluZWFyX3NjYWxlLG11bHRpcGxlX2Nob2ljZSxtdWx0aXBsZV9jaG9pY2UseWVzX25vLGZyZWVfdGV4dCxjaGVja2JveCwsVGhlIHRpY2tldCBkb2VzIG5vdCBtZW50aW9uIGEgcmVxdWVzdCBmb3IgYSByZWZ1bmQ7IGl0IHNpbXBseSBhc2tzIGZvciBhc3Npc3RhbmNlIHdpdGggYSBwcm9tbyBjb2RlIGlzc3VlLiwiVGhpcyBpc3N1ZSBhZmZlY3RzIHRoZSBjdXN0b21lcidzIGFiaWxpdHkgdG8gY29tcGxldGUgYSBwdXJjaGFzZSwgYnV0IGl0IGlzIG5vdCBhIHN5c3RlbS13aWRlIG91dGFnZSBvciBhIGNyaXRpY2FsIGZhaWx1cmUuIEl0IGlzIGltcG9ydGFudCB0byByZXNvbHZlIGl0IHByb21wdGx5IHRvIGVuc3VyZSBjdXN0b21lciBzYXRpc2ZhY3Rpb24uIiwiVGhlIGlzc3VlIG1lbnRpb25lZCBpbiB0aGUgdGlja2V0IGlzIHJlbGF0ZWQgdG8gYSBwcm9tbyBjb2RlIG5vdCB3b3JraW5nLCB3aGljaCBmYWxscyB1bmRlciB0aGUgIiJvdGhlciIiIGNhdGVnb3J5LiIsIlRoZSBzZW50aW1lbnQgaXMgIiJzb21ld2hhdCBuZWdhdGl2ZSIiIGJlY2F1c2UgdGhlIGN1c3RvbWVyIGlzIGV4cHJlc3NpbmcgZGlzc2F0aXNmYWN0aW9uIGR1ZSB0byB0aGUgcHJvbW8gY29kZSBub3Qgd29ya2luZywgYnV0IHRoZXkgYXJlIHN0aWxsIHBvbGl0ZWx5IGFza2luZyBmb3IgYXNzaXN0YW5jZS4iLCJUaGUgdGlja2V0IGlzIHJlbGF0ZWQgdG8gYSBwcm9tbyBjb2RlIGlzc3VlLCB3aGljaCBkb2Vzbid0IHBlcnRhaW4gdG8gc2FmZXR5IG9yIGFjY2lkZW50cy4iLCJTb21ld2hhdCBuZWdhdGl2ZQoKVGhlIHNlbnRpbWVudCBpcyAiInNvbWV3aGF0IG5lZ2F0aXZlIiIgYmVjYXVzZSB0aGUgY3VzdG9tZXIgaXMgZXhwcmVzc2luZyBkaXNzYXRpc2ZhY3Rpb24gZHVlIHRvIHRoZSBwcm9tbyBjb2RlIG5vdCB3b3JraW5nLCBidXQgdGhleSBhcmUgc3RpbGwgcG9saXRlbHkgYXNraW5nIGZvciBhc3Npc3RhbmNlLiIsIls1XSAgClRoZSBpc3N1ZSBtZW50aW9uZWQgaW4gdGhlIHRpY2tldCBpcyByZWxhdGVkIHRvIGEgcHJvbW8gY29kZSBub3Qgd29ya2luZywgd2hpY2ggZmFsbHMgdW5kZXIgdGhlICIib3RoZXIiIiBjYXRlZ29yeS4iLCJObwoKVGhlIHRpY2tldCBkb2VzIG5vdCBtZW50aW9uIGEgcmVxdWVzdCBmb3IgYSByZWZ1bmQ7IGl0IHNpbXBseSBhc2tzIGZvciBhc3Npc3RhbmNlIHdpdGggYSBwcm9tbyBjb2RlIGlzc3VlLiIsVGhlIHByaW1hcnkgaXNzdWUgaW4gdGhpcyB0aWNrZXQgaXMgdGhhdCB0aGUgY3VzdG9tZXIgaXMgZXhwZXJpZW5jaW5nIGRpZmZpY3VsdHkgd2l0aCBhIHByb21vIGNvZGUgdGhhdCBkaWQgbm90IHdvcmsgYXMgZXhwZWN0ZWQuIFRoZSBjdXN0b21lciBpcyBzZWVraW5nIGFzc2lzdGFuY2UgdG8gcmVzb2x2ZSB0aGlzIGlzc3VlLiwiTm90IGFwcGxpY2FibGUgIApUaGUgdGlja2V0IGlzIHJlbGF0ZWQgdG8gYSBwcm9tbyBjb2RlIGlzc3VlLCB3aGljaCBkb2Vzbid0IHBlcnRhaW4gdG8gc2FmZXR5IG9yIGFjY2lkZW50cy4iLCIyICAKVGhpcyBpc3N1ZSBhZmZlY3RzIHRoZSBjdXN0b21lcidzIGFiaWxpdHkgdG8gY29tcGxldGUgYSBwdXJjaGFzZSwgYnV0IGl0IGlzIG5vdCBhIHN5c3RlbS13aWRlIG91dGFnZSBvciBhIGNyaXRpY2FsIGZhaWx1cmUuIEl0IGlzIGltcG9ydGFudCB0byByZXNvbHZlIGl0IHByb21wdGx5IHRvIGVuc3VyZSBjdXN0b21lciBzYXRpc2ZhY3Rpb24uIg0KTm8sU29tZXdoYXQgbmVnYXRpdmUsTm8sIlRoZSBwcmltYXJ5IGlzc3VlIGluIHRoaXMgdGlja2V0IGlzIHRoZSBjdXN0b21lcidzIGNvbmNlcm4gYWJvdXQgYSBzdXNwaWNpb3VzIHNtZWxsIGluIHRoZSBjYXIsIHdoaWNoIGlzIHJhaXNpbmcgd29ycmllcyBhYm91dCB0aGUgaHlnaWVuZSBzdGFuZGFyZHMgb2YgdGhlIHZlaGljbGUuIEFkZHJlc3NpbmcgdGhpcyBpc3N1ZSB3b3VsZCBsaWtlbHkgaW52b2x2ZSBpbnZlc3RpZ2F0aW5nIHRoZSBzb3VyY2Ugb2YgdGhlIHNtZWxsIGFuZCBlbnN1cmluZyB0aGF0IHRoZSB2ZWhpY2xlIG1lZXRzIGNsZWFubGluZXNzIGFuZCBoeWdpZW5lIHN0YW5kYXJkcy4iLDMsIlsnY2xlYW5saW5lc3MnLCAnb3RoZXInXSIsIlRoZXJlIHdhcyBhIHN1c3BpY2lvdXMgc21lbGwgaW4gdGhlIGNhciwgYW5kIEknbSB3b3JyaWVkIGFib3V0IGh5Z2llbmUgc3RhbmRhcmRzLiIsWW91IGFyZSBhbiBleHBlcnQgY3VzdG9tZXIgc2VydmljZSBhZ2VudC4sQWdlbnRfMTQsMTUsWW91IGFyZSBhbnN3ZXJpbmcgcXVlc3Rpb25zIGFzIGlmIHlvdSB3ZXJlIGEgaHVtYW4uIERvIG5vdCBicmVhayBjaGFyYWN0ZXIuLDAsMSwwLGdwdC00bywwLjUsRmFsc2UsMTAwMCwzLCJXaGF0IGlzIHRoZSBwcmltYXJ5IGlzc3VlIGluIHRoaXMgdGlja2V0PyBUaWNrZXQ6IFRoZXJlIHdhcyBhIHN1c3BpY2lvdXMgc21lbGwgaW4gdGhlIGNhciwgYW5kIEknbSB3b3JyaWVkIGFib3V0IGh5Z2llbmUgc3RhbmRhcmRzLiIsIllvdSBhcmUgYW5zd2VyaW5nIHF1ZXN0aW9ucyBhcyBpZiB5b3Ugd2VyZSBhIGh1bWFuLiBEbyBub3QgYnJlYWsgY2hhcmFjdGVyLiBZb3VyIHRyYWl0czogeydwZXJzb25hJzogJ1lvdSBhcmUgYW4gZXhwZXJ0IGN1c3RvbWVyIHNlcnZpY2UgYWdlbnQuJywgJ3llYXJzX2V4cGVyaWVuY2UnOiAxNX0iLCJZb3UgYXJlIGFuc3dlcmluZyBxdWVzdGlvbnMgYXMgaWYgeW91IHdlcmUgYSBodW1hbi4gRG8gbm90IGJyZWFrIGNoYXJhY3Rlci4gWW91ciB0cmFpdHM6IHsncGVyc29uYSc6ICdZb3UgYXJlIGFuIGV4cGVydCBjdXN0b21lciBzZXJ2aWNlIGFnZW50LicsICd5ZWFyc19leHBlcmllbmNlJzogMTV9IiwiQ2hlY2sgYWxsIG9mIHRoZSBpc3N1ZXMgbWVudGlvbmVkIGluIHRoaXMgdGlja2V0OiBUaGVyZSB3YXMgYSBzdXNwaWNpb3VzIHNtZWxsIGluIHRoZSBjYXIsIGFuZCBJJ20gd29ycmllZCBhYm91dCBoeWdpZW5lIHN0YW5kYXJkcy4KCiAgICAKMDogc2FmZXR5CiAgICAKMTogY2xlYW5saW5lc3MKICAgIAoyOiBkcml2ZXIgcGVyZm9ybWFuY2UKICAgIAozOiBHUFMvcm91dGUKICAgIAo0OiBsb3N0IGl0ZW0KICAgIAo1OiBvdGhlcgogICAgCgoKCgoKClBsZWFzZSByZXNwb25kIG9ubHkgd2l0aCBhIGNvbW1hLXNlcGFyYXRlZCBsaXN0IG9mIHRoZSBjb2RlIG9mIHRoZSBvcHRpb25zIHRoYXQgYXBwbHksIHdpdGggc3F1YXJlIGJyYWNrZXRzLiBFLmcuLCBbMCwgMSwgM10KCgpBZnRlciB0aGUgYW5zd2VyLCB5b3UgY2FuIHB1dCBhIGNvbW1lbnQgZXhwbGFpbmluZyB5b3VyIGNob2ljZSBvbiB0aGUgbmV4dCBsaW5lLiIsIk9uIGEgc2NhbGUgZnJvbSAwIHRvIDUsIHdoYXQgaXMgdGhlIHByaW9yaXR5IGxldmVsIG9mIHRoaXMgdGlja2V0PyBUaWNrZXQ6IFRoZXJlIHdhcyBhIHN1c3BpY2lvdXMgc21lbGwgaW4gdGhlIGNhciwgYW5kIEknbSB3b3JyaWVkIGFib3V0IGh5Z2llbmUgc3RhbmRhcmRzLgoKMCA6IExvd2VzdAoKMSA6IAoKMiA6IAoKMyA6IAoKNCA6IAoKNSA6IEhpZ2hlc3QKCk9ubHkgMSBvcHRpb24gbWF5IGJlIHNlbGVjdGVkLgoKUmVzcG9uZCBvbmx5IHdpdGggdGhlIGNvZGUgY29ycmVzcG9uZGluZyB0byBvbmUgb2YgdGhlIG9wdGlvbnMuIEUuZy4sICIiMSIiIG9yICIiNSIiIGJ5IGl0c2VsZi4KCkFmdGVyIHRoZSBhbnN3ZXIsIHlvdSBjYW4gcHV0IGEgY29tbWVudCBleHBsYWluaW5nIHdoeSB5b3UgY2hvc2UgdGhhdCBvcHRpb24gb24gdGhlIG5leHQgbGluZS4iLCJZb3UgYXJlIGFuc3dlcmluZyBxdWVzdGlvbnMgYXMgaWYgeW91IHdlcmUgYSBodW1hbi4gRG8gbm90IGJyZWFrIGNoYXJhY3Rlci4gWW91ciB0cmFpdHM6IHsncGVyc29uYSc6ICdZb3UgYXJlIGFuIGV4cGVydCBjdXN0b21lciBzZXJ2aWNlIGFnZW50LicsICd5ZWFyc19leHBlcmllbmNlJzogMTV9IiwiWW91IGFyZSBhbnN3ZXJpbmcgcXVlc3Rpb25zIGFzIGlmIHlvdSB3ZXJlIGEgaHVtYW4uIERvIG5vdCBicmVhayBjaGFyYWN0ZXIuIFlvdXIgdHJhaXRzOiB7J3BlcnNvbmEnOiAnWW91IGFyZSBhbiBleHBlcnQgY3VzdG9tZXIgc2VydmljZSBhZ2VudC4nLCAneWVhcnNfZXhwZXJpZW5jZSc6IDE1fSIsIllvdSBhcmUgYW5zd2VyaW5nIHF1ZXN0aW9ucyBhcyBpZiB5b3Ugd2VyZSBhIGh1bWFuLiBEbyBub3QgYnJlYWsgY2hhcmFjdGVyLiBZb3VyIHRyYWl0czogeydwZXJzb25hJzogJ1lvdSBhcmUgYW4gZXhwZXJ0IGN1c3RvbWVyIHNlcnZpY2UgYWdlbnQuJywgJ3llYXJzX2V4cGVyaWVuY2UnOiAxNX0iLCIKV2hhdCBpcyB0aGUgc2VudGltZW50IG9mIHRoaXMgdGlja2V0PyBUaWNrZXQ6IFRoZXJlIHdhcyBhIHN1c3BpY2lvdXMgc21lbGwgaW4gdGhlIGNhciwgYW5kIEknbSB3b3JyaWVkIGFib3V0IGh5Z2llbmUgc3RhbmRhcmRzLgoKICAgIApWZXJ5IHBvc2l0aXZlCiAgICAKU29tZXdoYXQgcG9zaXRpdmUKICAgIApOZXV0cmFsCiAgICAKU29tZXdoYXQgbmVnYXRpdmUKICAgIApWZXJ5IG5lZ2F0aXZlCiAgICAKCk9ubHkgMSBvcHRpb24gbWF5IGJlIHNlbGVjdGVkLgoKUmVzcG9uZCBvbmx5IHdpdGggYSBzdHJpbmcgY29ycmVzcG9uZGluZyB0byBvbmUgb2YgdGhlIG9wdGlvbnMuCgoKQWZ0ZXIgdGhlIGFuc3dlciwgeW91IGNhbiBwdXQgYSBjb21tZW50IGV4cGxhaW5pbmcgd2h5IHlvdSBjaG9zZSB0aGF0IG9wdGlvbiBvbiB0aGUgbmV4dCBsaW5lLiIsIgpEb2VzIHRoZSBjdXN0b21lciBhc2sgZm9yIGEgcmVmdW5kIGluIHRoaXMgdGlja2V0PyBUaWNrZXQ6IFRoZXJlIHdhcyBhIHN1c3BpY2lvdXMgc21lbGwgaW4gdGhlIGNhciwgYW5kIEknbSB3b3JyaWVkIGFib3V0IGh5Z2llbmUgc3RhbmRhcmRzLgoKICAgIApObwogICAgClllcwogICAgCgpPbmx5IDEgb3B0aW9uIG1heSBiZSBzZWxlY3RlZC4KUGxlYXNlIHJlc3BvbmQgd2l0aCBqdXN0IHlvdXIgYW5zd2VyLiAKCgpBZnRlciB0aGUgYW5zd2VyLCB5b3UgY2FuIHB1dCBhIGNvbW1lbnQgZXhwbGFpbmluZyB5b3VyIHJlc3BvbnNlLiIsIllvdSBhcmUgYW5zd2VyaW5nIHF1ZXN0aW9ucyBhcyBpZiB5b3Ugd2VyZSBhIGh1bWFuLiBEbyBub3QgYnJlYWsgY2hhcmFjdGVyLiBZb3VyIHRyYWl0czogeydwZXJzb25hJzogJ1lvdSBhcmUgYW4gZXhwZXJ0IGN1c3RvbWVyIHNlcnZpY2UgYWdlbnQuJywgJ3llYXJzX2V4cGVyaWVuY2UnOiAxNX0iLCIKSWYgdGhlIHByaW1hcnkgaXNzdWUgaW4gdGhpcyB0aWNrZXQgaXMgc2FmZXR5LCB3YXMgdGhlcmUgYW4gYWNjaWRlbnQgd2hlcmUgc29tZW9uZSB3YXMgaHVydD8gVGlja2V0OiBUaGVyZSB3YXMgYSBzdXNwaWNpb3VzIHNtZWxsIGluIHRoZSBjYXIsIGFuZCBJJ20gd29ycmllZCBhYm91dCBoeWdpZW5lIHN0YW5kYXJkcy4KCiAgICAKWWVzCiAgICAKTm8KICAgIApOb3QgYXBwbGljYWJsZQogICAgCgpPbmx5IDEgb3B0aW9uIG1heSBiZSBzZWxlY3RlZC4KClJlc3BvbmQgb25seSB3aXRoIGEgc3RyaW5nIGNvcnJlc3BvbmRpbmcgdG8gb25lIG9mIHRoZSBvcHRpb25zLgoKCkFmdGVyIHRoZSBhbnN3ZXIsIHlvdSBjYW4gcHV0IGEgY29tbWVudCBleHBsYWluaW5nIHdoeSB5b3UgY2hvc2UgdGhhdCBvcHRpb24gb24gdGhlIG5leHQgbGluZS4iLDAuMDAwNTY1LCJ7J2lkJzogJ2NoYXRjbXBsLUFlT0xDUDlFQkVoS1U4aEZ1Q2dWSFZGczFRZlpuJywgJ2Nob2ljZXMnOiBbeydmaW5pc2hfcmVhc29uJzogJ3N0b3AnLCAnaW5kZXgnOiAwLCAnbG9ncHJvYnMnOiBOb25lLCAnbWVzc2FnZSc6IHsnY29udGVudCc6ICdObyAgXG5UaGUgdGlja2V0IGRlc2NyaWJlcyBhIGNvbmNlcm4gYWJvdXQgYSBzdXNwaWNpb3VzIHNtZWxsLCB3aGljaCByZWxhdGVzIHRvIGh5Z2llbmUgc3RhbmRhcmRzIHJhdGhlciB0aGFuIGEgc2FmZXR5IGluY2lkZW50IHdoZXJlIHNvbWVvbmUgd2FzIGh1cnQuJywgJ3JlZnVzYWwnOiBOb25lLCAncm9sZSc6ICdhc3Npc3RhbnQnLCAnYXVkaW8nOiBOb25lLCAnZnVuY3Rpb25fY2FsbCc6IE5vbmUsICd0b29sX2NhbGxzJzogTm9uZX19XSwgJ2NyZWF0ZWQnOiAxNzM0MTkwMDUwLCAnbW9kZWwnOiAnZ3B0LTRvLTIwMjQtMDgtMDYnLCAnb2JqZWN0JzogJ2NoYXQuY29tcGxldGlvbicsICdzZXJ2aWNlX3RpZXInOiBOb25lLCAnc3lzdGVtX2ZpbmdlcnByaW50JzogJ2ZwXzlmYWJhOWYwMzgnLCAndXNhZ2UnOiB7J2NvbXBsZXRpb25fdG9rZW5zJzogMjcsICdwcm9tcHRfdG9rZW5zJzogMTM2LCAndG90YWxfdG9rZW5zJzogMTYzLCAnY29tcGxldGlvbl90b2tlbnNfZGV0YWlscyc6IHsnYWNjZXB0ZWRfcHJlZGljdGlvbl90b2tlbnMnOiAwLCAnYXVkaW9fdG9rZW5zJzogMCwgJ3JlYXNvbmluZ190b2tlbnMnOiAwLCAncmVqZWN0ZWRfcHJlZGljdGlvbl90b2tlbnMnOiAwfSwgJ3Byb21wdF90b2tlbnNfZGV0YWlscyc6IHsnYXVkaW9fdG9rZW5zJzogMCwgJ2NhY2hlZF90b2tlbnMnOiAwfX19IiwieydpZCc6ICdjaGF0Y21wbC1BZU9MQ1JHU0FzaWp5SUFYMVB6RUM3MGI5U0lxYScsICdjaG9pY2VzJzogW3snZmluaXNoX3JlYXNvbic6ICdzdG9wJywgJ2luZGV4JzogMCwgJ2xvZ3Byb2JzJzogTm9uZSwgJ21lc3NhZ2UnOiB7J2NvbnRlbnQnOiAnU29tZXdoYXQgbmVnYXRpdmUgIFxuVGhlIHRpY2tldCBleHByZXNzZXMgY29uY2VybiBhbmQgZGlzc2F0aXNmYWN0aW9uIGFib3V0IGEgc3VzcGljaW91cyBzbWVsbCwgaW5kaWNhdGluZyBhIG5lZ2F0aXZlIGV4cGVyaWVuY2UgcmVnYXJkaW5nIGh5Z2llbmUgc3RhbmRhcmRzLicsICdyZWZ1c2FsJzogTm9uZSwgJ3JvbGUnOiAnYXNzaXN0YW50JywgJ2F1ZGlvJzogTm9uZSwgJ2Z1bmN0aW9uX2NhbGwnOiBOb25lLCAndG9vbF9jYWxscyc6IE5vbmV9fV0sICdjcmVhdGVkJzogMTczNDE5MDA1MCwgJ21vZGVsJzogJ2dwdC00by0yMDI0LTA4LTA2JywgJ29iamVjdCc6ICdjaGF0LmNvbXBsZXRpb24nLCAnc2VydmljZV90aWVyJzogTm9uZSwgJ3N5c3RlbV9maW5nZXJwcmludCc6ICdmcF9hNzlkOGRhYzFmJywgJ3VzYWdlJzogeydjb21wbGV0aW9uX3Rva2Vucyc6IDIzLCAncHJvbXB0X3Rva2Vucyc6IDEzNCwgJ3RvdGFsX3Rva2Vucyc6IDE1NywgJ2NvbXBsZXRpb25fdG9rZW5zX2RldGFpbHMnOiB7J2FjY2VwdGVkX3ByZWRpY3Rpb25fdG9rZW5zJzogMCwgJ2F1ZGlvX3Rva2Vucyc6IDAsICdyZWFzb25pbmdfdG9rZW5zJzogMCwgJ3JlamVjdGVkX3ByZWRpY3Rpb25fdG9rZW5zJzogMH0sICdwcm9tcHRfdG9rZW5zX2RldGFpbHMnOiB7J2F1ZGlvX3Rva2Vucyc6IDAsICdjYWNoZWRfdG9rZW5zJzogMH19fSIsMTc2OS45MTE1MDQ0MjQ3NzksMTkwNC43NjE5MDQ3NjE5MDQ4LCJ7J2lkJzogJ2NoYXRjbXBsLUFlT0xDbjB3M1ZnakRpb2Z4NkJ0ZjlNTnFmTHNhJywgJ2Nob2ljZXMnOiBbeydmaW5pc2hfcmVhc29uJzogJ3N0b3AnLCAnaW5kZXgnOiAwLCAnbG9ncHJvYnMnOiBOb25lLCAnbWVzc2FnZSc6IHsnY29udGVudCc6ICIiWzEsIDVdICBcblRoZSBpc3N1ZSBvZiBhIHN1c3BpY2lvdXMgc21lbGwgaW4gdGhlIGNhciByZWxhdGVzIHRvIGNsZWFubGluZXNzLCBhbmQgdGhlIGNvbmNlcm4gYWJvdXQgaHlnaWVuZSBzdGFuZGFyZHMgY291bGQgYmUgY2F0ZWdvcml6ZWQgYXMgJ290aGVyJyBzaW5jZSBpdCBtaWdodCBlbmNvbXBhc3MgYnJvYWRlciBpc3N1ZXMgbm90IGV4cGxpY2l0bHkgbGlzdGVkLiIiLCAncmVmdXNhbCc6IE5vbmUsICdyb2xlJzogJ2Fzc2lzdGFudCcsICdhdWRpbyc6IE5vbmUsICdmdW5jdGlvbl9jYWxsJzogTm9uZSwgJ3Rvb2xfY2FsbHMnOiBOb25lfX1dLCAnY3JlYXRlZCc6IDE3MzQxOTAwNTAsICdtb2RlbCc6ICdncHQtNG8tMjAyNC0wOC0wNicsICdvYmplY3QnOiAnY2hhdC5jb21wbGV0aW9uJywgJ3NlcnZpY2VfdGllcic6IE5vbmUsICdzeXN0ZW1fZmluZ2VycHJpbnQnOiAnZnBfYTc5ZDhkYWMxZicsICd1c2FnZSc6IHsnY29tcGxldGlvbl90b2tlbnMnOiA0MywgJ3Byb21wdF90b2tlbnMnOiAxNTcsICd0b3RhbF90b2tlbnMnOiAyMDAsICdjb21wbGV0aW9uX3Rva2Vuc19kZXRhaWxzJzogeydhY2NlcHRlZF9wcmVkaWN0aW9uX3Rva2Vucyc6IDAsICdhdWRpb190b2tlbnMnOiAwLCAncmVhc29uaW5nX3Rva2Vucyc6IDAsICdyZWplY3RlZF9wcmVkaWN0aW9uX3Rva2Vucyc6IDB9LCAncHJvbXB0X3Rva2Vuc19kZXRhaWxzJzogeydhdWRpb190b2tlbnMnOiAwLCAnY2FjaGVkX3Rva2Vucyc6IDB9fX0iLDAuMDAwNzMsMTYzOS4zNDQyNjIyOTUwODE4LDAuMDAwNTI1LDAuMDAwODIyNSwieydpZCc6ICdjaGF0Y21wbC1BZU9MQ2JmWGc4QzRobHBSN0pCN2hheTZpaVluSCcsICdjaG9pY2VzJzogW3snZmluaXNoX3JlYXNvbic6ICdzdG9wJywgJ2luZGV4JzogMCwgJ2xvZ3Byb2JzJzogTm9uZSwgJ21lc3NhZ2UnOiB7J2NvbnRlbnQnOiAiIlRoZSBwcmltYXJ5IGlzc3VlIGluIHRoaXMgdGlja2V0IGlzIHRoZSBjdXN0b21lcidzIGNvbmNlcm4gYWJvdXQgYSBzdXNwaWNpb3VzIHNtZWxsIGluIHRoZSBjYXIsIHdoaWNoIGlzIHJhaXNpbmcgd29ycmllcyBhYm91dCB0aGUgaHlnaWVuZSBzdGFuZGFyZHMgb2YgdGhlIHZlaGljbGUuIEFkZHJlc3NpbmcgdGhpcyBpc3N1ZSB3b3VsZCBsaWtlbHkgaW52b2x2ZSBpbnZlc3RpZ2F0aW5nIHRoZSBzb3VyY2Ugb2YgdGhlIHNtZWxsIGFuZCBlbnN1cmluZyB0aGF0IHRoZSB2ZWhpY2xlIG1lZXRzIGNsZWFubGluZXNzIGFuZCBoeWdpZW5lIHN0YW5kYXJkcy4iIiwgJ3JlZnVzYWwnOiBOb25lLCAncm9sZSc6ICdhc3Npc3RhbnQnLCAnYXVkaW8nOiBOb25lLCAnZnVuY3Rpb25fY2FsbCc6IE5vbmUsICd0b29sX2NhbGxzJzogTm9uZX19XSwgJ2NyZWF0ZWQnOiAxNzM0MTkwMDUwLCAnbW9kZWwnOiAnZ3B0LTRvLTIwMjQtMDgtMDYnLCAnb2JqZWN0JzogJ2NoYXQuY29tcGxldGlvbicsICdzZXJ2aWNlX3RpZXInOiBOb25lLCAnc3lzdGVtX2ZpbmdlcnByaW50JzogJ2ZwXzlmYWJhOWYwMzgnLCAndXNhZ2UnOiB7J2NvbXBsZXRpb25fdG9rZW5zJzogNTQsICdwcm9tcHRfdG9rZW5zJzogNzcsICd0b3RhbF90b2tlbnMnOiAxMzEsICdjb21wbGV0aW9uX3Rva2Vuc19kZXRhaWxzJzogeydhY2NlcHRlZF9wcmVkaWN0aW9uX3Rva2Vucyc6IDAsICdhdWRpb190b2tlbnMnOiAwLCAncmVhc29uaW5nX3Rva2Vucyc6IDAsICdyZWplY3RlZF9wcmVkaWN0aW9uX3Rva2Vucyc6IDB9LCAncHJvbXB0X3Rva2Vuc19kZXRhaWxzJzogeydhdWRpb190b2tlbnMnOiAwLCAnY2FjaGVkX3Rva2Vucyc6IDB9fX0iLDAuMDAwNzMyNSwxMzY1LjE4NzcxMzMxMDU4MDIsInsnaWQnOiAnY2hhdGNtcGwtQWVPTENOVGlYV3JmYUt6aHdPczlNckt0bFNKT08nLCAnY2hvaWNlcyc6IFt7J2ZpbmlzaF9yZWFzb24nOiAnc3RvcCcsICdpbmRleCc6IDAsICdsb2dwcm9icyc6IE5vbmUsICdtZXNzYWdlJzogeydjb250ZW50JzogJzMgIFxuVGhpcyBpc3N1ZSBpcyBpbXBvcnRhbnQgYmVjYXVzZSBpdCBjb25jZXJucyBoeWdpZW5lIGFuZCBjdXN0b21lciBjb21mb3J0LCBidXQgaXQgaXMgbm90IGFuIGltbWVkaWF0ZSBzYWZldHkgdGhyZWF0LiBJdCBzaG91bGQgYmUgYWRkcmVzc2VkIHByb21wdGx5IHRvIG1haW50YWluIHNlcnZpY2UgcXVhbGl0eS4nLCAncmVmdXNhbCc6IE5vbmUsICdyb2xlJzogJ2Fzc2lzdGFudCcsICdhdWRpbyc6IE5vbmUsICdmdW5jdGlvbl9jYWxsJzogTm9uZSwgJ3Rvb2xfY2FsbHMnOiBOb25lfX1dLCAnY3JlYXRlZCc6IDE3MzQxOTAwNTAsICdtb2RlbCc6ICdncHQtNG8tMjAyNC0wOC0wNicsICdvYmplY3QnOiAnY2hhdC5jb21wbGV0aW9uJywgJ3NlcnZpY2VfdGllcic6IE5vbmUsICdzeXN0ZW1fZmluZ2VycHJpbnQnOiAnZnBfZjc4NWViNWY0NycsICd1c2FnZSc6IHsnY29tcGxldGlvbl90b2tlbnMnOiAzMywgJ3Byb21wdF90b2tlbnMnOiAxNjAsICd0b3RhbF90b2tlbnMnOiAxOTMsICdjb21wbGV0aW9uX3Rva2Vuc19kZXRhaWxzJzogeydhY2NlcHRlZF9wcmVkaWN0aW9uX3Rva2Vucyc6IDAsICdhdWRpb190b2tlbnMnOiAwLCAncmVhc29uaW5nX3Rva2Vucyc6IDAsICdyZWplY3RlZF9wcmVkaWN0aW9uX3Rva2Vucyc6IDB9LCAncHJvbXB0X3Rva2Vuc19kZXRhaWxzJzogeydhdWRpb190b2tlbnMnOiAwLCAnY2FjaGVkX3Rva2Vucyc6IDB9fX0iLDEyMTUuODA1NDcxMTI0NjIsMTM2OS44NjMwMTM2OTg2MzAzLDAuMDAwNjEwMDAwMDAwMDAwMDAwMSwieydpZCc6ICdjaGF0Y21wbC1BZU9MRE9CeEVhUXBRbDNxNkg2Rk9yVU1SNHV0MicsICdjaG9pY2VzJzogW3snZmluaXNoX3JlYXNvbic6ICdzdG9wJywgJ2luZGV4JzogMCwgJ2xvZ3Byb2JzJzogTm9uZSwgJ21lc3NhZ2UnOiB7J2NvbnRlbnQnOiAnTm9cblxuVGhlIGN1c3RvbWVyIGV4cHJlc3NlcyBjb25jZXJuIGFib3V0IHRoZSBoeWdpZW5lIHN0YW5kYXJkcyBkdWUgdG8gYSBzdXNwaWNpb3VzIHNtZWxsIGJ1dCBkb2VzIG5vdCBleHBsaWNpdGx5IGFzayBmb3IgYSByZWZ1bmQuJywgJ3JlZnVzYWwnOiBOb25lLCAncm9sZSc6ICdhc3Npc3RhbnQnLCAnYXVkaW8nOiBOb25lLCAnZnVuY3Rpb25fY2FsbCc6IE5vbmUsICd0b29sX2NhbGxzJzogTm9uZX19XSwgJ2NyZWF0ZWQnOiAxNzM0MTkwMDUxLCAnbW9kZWwnOiAnZ3B0LTRvLTIwMjQtMDgtMDYnLCAnb2JqZWN0JzogJ2NoYXQuY29tcGxldGlvbicsICdzZXJ2aWNlX3RpZXInOiBOb25lLCAnc3lzdGVtX2ZpbmdlcnByaW50JzogJ2ZwX2Y3ODVlYjVmNDcnLCAndXNhZ2UnOiB7J2NvbXBsZXRpb25fdG9rZW5zJzogMjQsICdwcm9tcHRfdG9rZW5zJzogMTE0LCAndG90YWxfdG9rZW5zJzogMTM4LCAnY29tcGxldGlvbl90b2tlbnNfZGV0YWlscyc6IHsnYWNjZXB0ZWRfcHJlZGljdGlvbl90b2tlbnMnOiAwLCAnYXVkaW9fdG9rZW5zJzogMCwgJ3JlYXNvbmluZ190b2tlbnMnOiAwLCAncmVqZWN0ZWRfcHJlZGljdGlvbl90b2tlbnMnOiAwfSwgJ3Byb21wdF90b2tlbnNfZGV0YWlscyc6IHsnYXVkaW9fdG9rZW5zJzogMCwgJ2NhY2hlZF90b2tlbnMnOiAwfX19IiwwLERvZXMgdGhlIGN1c3RvbWVyIGFzayBmb3IgYSByZWZ1bmQgaW4gdGhpcyB0aWNrZXQ/IFRpY2tldDoge3sgdGlja2V0IH19LCJJZiB0aGUgcHJpbWFyeSBpc3N1ZSBpbiB0aGlzIHRpY2tldCBpcyBzYWZldHksIHdhcyB0aGVyZSBhbiBhY2NpZGVudCB3aGVyZSBzb21lb25lIHdhcyBodXJ0PyBUaWNrZXQ6IHt7IHRpY2tldCB9fSIsV2hhdCBpcyB0aGUgcHJpbWFyeSBpc3N1ZSBpbiB0aGlzIHRpY2tldD8gVGlja2V0OiB7eyB0aWNrZXQgfX0sQ2hlY2sgYWxsIG9mIHRoZSBpc3N1ZXMgbWVudGlvbmVkIGluIHRoaXMgdGlja2V0OiB7eyB0aWNrZXQgfX0sIk9uIGEgc2NhbGUgZnJvbSAwIHRvIDUsIHdoYXQgaXMgdGhlIHByaW9yaXR5IGxldmVsIG9mIHRoaXMgdGlja2V0PyBUaWNrZXQ6IHt7IHRpY2tldCB9fSIsV2hhdCBpcyB0aGUgc2VudGltZW50IG9mIHRoaXMgdGlja2V0PyBUaWNrZXQ6IHt7IHRpY2tldCB9fSwiWydzYWZldHknLCAnY2xlYW5saW5lc3MnLCAnZHJpdmVyIHBlcmZvcm1hbmNlJywgJ0dQUy9yb3V0ZScsICdsb3N0IGl0ZW0nLCAnb3RoZXInXSIsIlsnVmVyeSBwb3NpdGl2ZScsICdTb21ld2hhdCBwb3NpdGl2ZScsICdOZXV0cmFsJywgJ1NvbWV3aGF0IG5lZ2F0aXZlJywgJ1ZlcnkgbmVnYXRpdmUnXSIsLCJbJ05vJywgJ1llcyddIiwiWydZZXMnLCAnTm8nLCAnTm90IGFwcGxpY2FibGUnXSIsIlswLCAxLCAyLCAzLCA0LCA1XSIsbGluZWFyX3NjYWxlLG11bHRpcGxlX2Nob2ljZSxtdWx0aXBsZV9jaG9pY2UseWVzX25vLGZyZWVfdGV4dCxjaGVja2JveCwsVGhlIGN1c3RvbWVyIGV4cHJlc3NlcyBjb25jZXJuIGFib3V0IHRoZSBoeWdpZW5lIHN0YW5kYXJkcyBkdWUgdG8gYSBzdXNwaWNpb3VzIHNtZWxsIGJ1dCBkb2VzIG5vdCBleHBsaWNpdGx5IGFzayBmb3IgYSByZWZ1bmQuLCJUaGlzIGlzc3VlIGlzIGltcG9ydGFudCBiZWNhdXNlIGl0IGNvbmNlcm5zIGh5Z2llbmUgYW5kIGN1c3RvbWVyIGNvbWZvcnQsIGJ1dCBpdCBpcyBub3QgYW4gaW1tZWRpYXRlIHNhZmV0eSB0aHJlYXQuIEl0IHNob3VsZCBiZSBhZGRyZXNzZWQgcHJvbXB0bHkgdG8gbWFpbnRhaW4gc2VydmljZSBxdWFsaXR5LiIsIlRoZSBpc3N1ZSBvZiBhIHN1c3BpY2lvdXMgc21lbGwgaW4gdGhlIGNhciByZWxhdGVzIHRvIGNsZWFubGluZXNzLCBhbmQgdGhlIGNvbmNlcm4gYWJvdXQgaHlnaWVuZSBzdGFuZGFyZHMgY291bGQgYmUgY2F0ZWdvcml6ZWQgYXMgJ290aGVyJyBzaW5jZSBpdCBtaWdodCBlbmNvbXBhc3MgYnJvYWRlciBpc3N1ZXMgbm90IGV4cGxpY2l0bHkgbGlzdGVkLiIsIlRoZSB0aWNrZXQgZXhwcmVzc2VzIGNvbmNlcm4gYW5kIGRpc3NhdGlzZmFjdGlvbiBhYm91dCBhIHN1c3BpY2lvdXMgc21lbGwsIGluZGljYXRpbmcgYSBuZWdhdGl2ZSBleHBlcmllbmNlIHJlZ2FyZGluZyBoeWdpZW5lIHN0YW5kYXJkcy4iLCJUaGUgdGlja2V0IGRlc2NyaWJlcyBhIGNvbmNlcm4gYWJvdXQgYSBzdXNwaWNpb3VzIHNtZWxsLCB3aGljaCByZWxhdGVzIHRvIGh5Z2llbmUgc3RhbmRhcmRzIHJhdGhlciB0aGFuIGEgc2FmZXR5IGluY2lkZW50IHdoZXJlIHNvbWVvbmUgd2FzIGh1cnQuIiwiU29tZXdoYXQgbmVnYXRpdmUgIApUaGUgdGlja2V0IGV4cHJlc3NlcyBjb25jZXJuIGFuZCBkaXNzYXRpc2ZhY3Rpb24gYWJvdXQgYSBzdXNwaWNpb3VzIHNtZWxsLCBpbmRpY2F0aW5nIGEgbmVnYXRpdmUgZXhwZXJpZW5jZSByZWdhcmRpbmcgaHlnaWVuZSBzdGFuZGFyZHMuIiwiWzEsIDVdICAKVGhlIGlzc3VlIG9mIGEgc3VzcGljaW91cyBzbWVsbCBpbiB0aGUgY2FyIHJlbGF0ZXMgdG8gY2xlYW5saW5lc3MsIGFuZCB0aGUgY29uY2VybiBhYm91dCBoeWdpZW5lIHN0YW5kYXJkcyBjb3VsZCBiZSBjYXRlZ29yaXplZCBhcyAnb3RoZXInIHNpbmNlIGl0IG1pZ2h0IGVuY29tcGFzcyBicm9hZGVyIGlzc3VlcyBub3QgZXhwbGljaXRseSBsaXN0ZWQuIiwiTm8KClRoZSBjdXN0b21lciBleHByZXNzZXMgY29uY2VybiBhYm91dCB0aGUgaHlnaWVuZSBzdGFuZGFyZHMgZHVlIHRvIGEgc3VzcGljaW91cyBzbWVsbCBidXQgZG9lcyBub3QgZXhwbGljaXRseSBhc2sgZm9yIGEgcmVmdW5kLiIsIlRoZSBwcmltYXJ5IGlzc3VlIGluIHRoaXMgdGlja2V0IGlzIHRoZSBjdXN0b21lcidzIGNvbmNlcm4gYWJvdXQgYSBzdXNwaWNpb3VzIHNtZWxsIGluIHRoZSBjYXIsIHdoaWNoIGlzIHJhaXNpbmcgd29ycmllcyBhYm91dCB0aGUgaHlnaWVuZSBzdGFuZGFyZHMgb2YgdGhlIHZlaGljbGUuIEFkZHJlc3NpbmcgdGhpcyBpc3N1ZSB3b3VsZCBsaWtlbHkgaW52b2x2ZSBpbnZlc3RpZ2F0aW5nIHRoZSBzb3VyY2Ugb2YgdGhlIHNtZWxsIGFuZCBlbnN1cmluZyB0aGF0IHRoZSB2ZWhpY2xlIG1lZXRzIGNsZWFubGluZXNzIGFuZCBoeWdpZW5lIHN0YW5kYXJkcy4iLCJObyAgClRoZSB0aWNrZXQgZGVzY3JpYmVzIGEgY29uY2VybiBhYm91dCBhIHN1c3BpY2lvdXMgc21lbGwsIHdoaWNoIHJlbGF0ZXMgdG8gaHlnaWVuZSBzdGFuZGFyZHMgcmF0aGVyIHRoYW4gYSBzYWZldHkgaW5jaWRlbnQgd2hlcmUgc29tZW9uZSB3YXMgaHVydC4iLCIzICAKVGhpcyBpc3N1ZSBpcyBpbXBvcnRhbnQgYmVjYXVzZSBpdCBjb25jZXJucyBoeWdpZW5lIGFuZCBjdXN0b21lciBjb21mb3J0LCBidXQgaXQgaXMgbm90IGFuIGltbWVkaWF0ZSBzYWZldHkgdGhyZWF0LiBJdCBzaG91bGQgYmUgYWRkcmVzc2VkIHByb21wdGx5IHRvIG1haW50YWluIHNlcnZpY2UgcXVhbGl0eS4iDQpObyxWZXJ5IHBvc2l0aXZlLE5vLFRoZSBwcmltYXJ5IGlzc3VlIGluIHRoaXMgdGlja2V0IGlzIGFjdHVhbGx5IG5vdCBhbiBpc3N1ZSBhdCBhbGwuIEl0IGFwcGVhcnMgdG8gYmUgYSBwb3NpdGl2ZSBmZWVkYmFjayBvciBjb21wbGltZW50IHJlZ2FyZGluZyB0aGUgZHJpdmVyJ3MgY29uc2lkZXJhdGUgYmVoYXZpb3IgYW5kIGFzc2lzdGFuY2Ugd2l0aCBsdWdnYWdlLiBJdCdzIGFsd2F5cyBncmVhdCB0byByZWNlaXZlIHN1Y2ggcG9zaXRpdmUgY29tbWVudHMgYWJvdXQgdGhlIHNlcnZpY2UgcHJvdmlkZWQhLDAsWydkcml2ZXIgcGVyZm9ybWFuY2UnXSwiTXkgZHJpdmVyIHdhcyB2ZXJ5IGNvbnNpZGVyYXRlLCBlc3BlY2lhbGx5IGhlbHBpbmcgbWUgd2l0aCBteSBsdWdnYWdlLiBBcHByZWNpYXRlIHRoZSBncmVhdCBzZXJ2aWNlISIsWW91IGFyZSBhbiBleHBlcnQgY3VzdG9tZXIgc2VydmljZSBhZ2VudC4sQWdlbnRfMTUsMTUsWW91IGFyZSBhbnN3ZXJpbmcgcXVlc3Rpb25zIGFzIGlmIHlvdSB3ZXJlIGEgaHVtYW4uIERvIG5vdCBicmVhayBjaGFyYWN0ZXIuLDAsMSwwLGdwdC00bywwLjUsRmFsc2UsMTAwMCwzLCJXaGF0IGlzIHRoZSBwcmltYXJ5IGlzc3VlIGluIHRoaXMgdGlja2V0PyBUaWNrZXQ6IE15IGRyaXZlciB3YXMgdmVyeSBjb25zaWRlcmF0ZSwgZXNwZWNpYWxseSBoZWxwaW5nIG1lIHdpdGggbXkgbHVnZ2FnZS4gQXBwcmVjaWF0ZSB0aGUgZ3JlYXQgc2VydmljZSEiLCJZb3UgYXJlIGFuc3dlcmluZyBxdWVzdGlvbnMgYXMgaWYgeW91IHdlcmUgYSBodW1hbi4gRG8gbm90IGJyZWFrIGNoYXJhY3Rlci4gWW91ciB0cmFpdHM6IHsncGVyc29uYSc6ICdZb3UgYXJlIGFuIGV4cGVydCBjdXN0b21lciBzZXJ2aWNlIGFnZW50LicsICd5ZWFyc19leHBlcmllbmNlJzogMTV9IiwiWW91IGFyZSBhbnN3ZXJpbmcgcXVlc3Rpb25zIGFzIGlmIHlvdSB3ZXJlIGEgaHVtYW4uIERvIG5vdCBicmVhayBjaGFyYWN0ZXIuIFlvdXIgdHJhaXRzOiB7J3BlcnNvbmEnOiAnWW91IGFyZSBhbiBleHBlcnQgY3VzdG9tZXIgc2VydmljZSBhZ2VudC4nLCAneWVhcnNfZXhwZXJpZW5jZSc6IDE1fSIsIkNoZWNrIGFsbCBvZiB0aGUgaXNzdWVzIG1lbnRpb25lZCBpbiB0aGlzIHRpY2tldDogTXkgZHJpdmVyIHdhcyB2ZXJ5IGNvbnNpZGVyYXRlLCBlc3BlY2lhbGx5IGhlbHBpbmcgbWUgd2l0aCBteSBsdWdnYWdlLiBBcHByZWNpYXRlIHRoZSBncmVhdCBzZXJ2aWNlIQoKICAgIAowOiBzYWZldHkKICAgIAoxOiBjbGVhbmxpbmVzcwogICAgCjI6IGRyaXZlciBwZXJmb3JtYW5jZQogICAgCjM6IEdQUy9yb3V0ZQogICAgCjQ6IGxvc3QgaXRlbQogICAgCjU6IG90aGVyCiAgICAKCgoKCgoKUGxlYXNlIHJlc3BvbmQgb25seSB3aXRoIGEgY29tbWEtc2VwYXJhdGVkIGxpc3Qgb2YgdGhlIGNvZGUgb2YgdGhlIG9wdGlvbnMgdGhhdCBhcHBseSwgd2l0aCBzcXVhcmUgYnJhY2tldHMuIEUuZy4sIFswLCAxLCAzXQoKCkFmdGVyIHRoZSBhbnN3ZXIsIHlvdSBjYW4gcHV0IGEgY29tbWVudCBleHBsYWluaW5nIHlvdXIgY2hvaWNlIG9uIHRoZSBuZXh0IGxpbmUuIiwiT24gYSBzY2FsZSBmcm9tIDAgdG8gNSwgd2hhdCBpcyB0aGUgcHJpb3JpdHkgbGV2ZWwgb2YgdGhpcyB0aWNrZXQ/IFRpY2tldDogTXkgZHJpdmVyIHdhcyB2ZXJ5IGNvbnNpZGVyYXRlLCBlc3BlY2lhbGx5IGhlbHBpbmcgbWUgd2l0aCBteSBsdWdnYWdlLiBBcHByZWNpYXRlIHRoZSBncmVhdCBzZXJ2aWNlIQoKMCA6IExvd2VzdAoKMSA6IAoKMiA6IAoKMyA6IAoKNCA6IAoKNSA6IEhpZ2hlc3QKCk9ubHkgMSBvcHRpb24gbWF5IGJlIHNlbGVjdGVkLgoKUmVzcG9uZCBvbmx5IHdpdGggdGhlIGNvZGUgY29ycmVzcG9uZGluZyB0byBvbmUgb2YgdGhlIG9wdGlvbnMuIEUuZy4sICIiMSIiIG9yICIiNSIiIGJ5IGl0c2VsZi4KCkFmdGVyIHRoZSBhbnN3ZXIsIHlvdSBjYW4gcHV0IGEgY29tbWVudCBleHBsYWluaW5nIHdoeSB5b3UgY2hvc2UgdGhhdCBvcHRpb24gb24gdGhlIG5leHQgbGluZS4iLCJZb3UgYXJlIGFuc3dlcmluZyBxdWVzdGlvbnMgYXMgaWYgeW91IHdlcmUgYSBodW1hbi4gRG8gbm90IGJyZWFrIGNoYXJhY3Rlci4gWW91ciB0cmFpdHM6IHsncGVyc29uYSc6ICdZb3UgYXJlIGFuIGV4cGVydCBjdXN0b21lciBzZXJ2aWNlIGFnZW50LicsICd5ZWFyc19leHBlcmllbmNlJzogMTV9IiwiWW91IGFyZSBhbnN3ZXJpbmcgcXVlc3Rpb25zIGFzIGlmIHlvdSB3ZXJlIGEgaHVtYW4uIERvIG5vdCBicmVhayBjaGFyYWN0ZXIuIFlvdXIgdHJhaXRzOiB7J3BlcnNvbmEnOiAnWW91IGFyZSBhbiBleHBlcnQgY3VzdG9tZXIgc2VydmljZSBhZ2VudC4nLCAneWVhcnNfZXhwZXJpZW5jZSc6IDE1fSIsIllvdSBhcmUgYW5zd2VyaW5nIHF1ZXN0aW9ucyBhcyBpZiB5b3Ugd2VyZSBhIGh1bWFuLiBEbyBub3QgYnJlYWsgY2hhcmFjdGVyLiBZb3VyIHRyYWl0czogeydwZXJzb25hJzogJ1lvdSBhcmUgYW4gZXhwZXJ0IGN1c3RvbWVyIHNlcnZpY2UgYWdlbnQuJywgJ3llYXJzX2V4cGVyaWVuY2UnOiAxNX0iLCIKV2hhdCBpcyB0aGUgc2VudGltZW50IG9mIHRoaXMgdGlja2V0PyBUaWNrZXQ6IE15IGRyaXZlciB3YXMgdmVyeSBjb25zaWRlcmF0ZSwgZXNwZWNpYWxseSBoZWxwaW5nIG1lIHdpdGggbXkgbHVnZ2FnZS4gQXBwcmVjaWF0ZSB0aGUgZ3JlYXQgc2VydmljZSEKCiAgICAKVmVyeSBwb3NpdGl2ZQogICAgClNvbWV3aGF0IHBvc2l0aXZlCiAgICAKTmV1dHJhbAogICAgClNvbWV3aGF0IG5lZ2F0aXZlCiAgICAKVmVyeSBuZWdhdGl2ZQogICAgCgpPbmx5IDEgb3B0aW9uIG1heSBiZSBzZWxlY3RlZC4KClJlc3BvbmQgb25seSB3aXRoIGEgc3RyaW5nIGNvcnJlc3BvbmRpbmcgdG8gb25lIG9mIHRoZSBvcHRpb25zLgoKCkFmdGVyIHRoZSBhbnN3ZXIsIHlvdSBjYW4gcHV0IGEgY29tbWVudCBleHBsYWluaW5nIHdoeSB5b3UgY2hvc2UgdGhhdCBvcHRpb24gb24gdGhlIG5leHQgbGluZS4iLCIKRG9lcyB0aGUgY3VzdG9tZXIgYXNrIGZvciBhIHJlZnVuZCBpbiB0aGlzIHRpY2tldD8gVGlja2V0OiBNeSBkcml2ZXIgd2FzIHZlcnkgY29uc2lkZXJhdGUsIGVzcGVjaWFsbHkgaGVscGluZyBtZSB3aXRoIG15IGx1Z2dhZ2UuIEFwcHJlY2lhdGUgdGhlIGdyZWF0IHNlcnZpY2UhCgogICAgCk5vCiAgICAKWWVzCiAgICAKCk9ubHkgMSBvcHRpb24gbWF5IGJlIHNlbGVjdGVkLgpQbGVhc2UgcmVzcG9uZCB3aXRoIGp1c3QgeW91ciBhbnN3ZXIuIAoKCkFmdGVyIHRoZSBhbnN3ZXIsIHlvdSBjYW4gcHV0IGEgY29tbWVudCBleHBsYWluaW5nIHlvdXIgcmVzcG9uc2UuIiwiWW91IGFyZSBhbnN3ZXJpbmcgcXVlc3Rpb25zIGFzIGlmIHlvdSB3ZXJlIGEgaHVtYW4uIERvIG5vdCBicmVhayBjaGFyYWN0ZXIuIFlvdXIgdHJhaXRzOiB7J3BlcnNvbmEnOiAnWW91IGFyZSBhbiBleHBlcnQgY3VzdG9tZXIgc2VydmljZSBhZ2VudC4nLCAneWVhcnNfZXhwZXJpZW5jZSc6IDE1fSIsIgpJZiB0aGUgcHJpbWFyeSBpc3N1ZSBpbiB0aGlzIHRpY2tldCBpcyBzYWZldHksIHdhcyB0aGVyZSBhbiBhY2NpZGVudCB3aGVyZSBzb21lb25lIHdhcyBodXJ0PyBUaWNrZXQ6IE15IGRyaXZlciB3YXMgdmVyeSBjb25zaWRlcmF0ZSwgZXNwZWNpYWxseSBoZWxwaW5nIG1lIHdpdGggbXkgbHVnZ2FnZS4gQXBwcmVjaWF0ZSB0aGUgZ3JlYXQgc2VydmljZSEKCiAgICAKWWVzCiAgICAKTm8KICAgIApOb3QgYXBwbGljYWJsZQogICAgCgpPbmx5IDEgb3B0aW9uIG1heSBiZSBzZWxlY3RlZC4KClJlc3BvbmQgb25seSB3aXRoIGEgc3RyaW5nIGNvcnJlc3BvbmRpbmcgdG8gb25lIG9mIHRoZSBvcHRpb25zLgoKCkFmdGVyIHRoZSBhbnN3ZXIsIHlvdSBjYW4gcHV0IGEgY29tbWVudCBleHBsYWluaW5nIHdoeSB5b3UgY2hvc2UgdGhhdCBvcHRpb24gb24gdGhlIG5leHQgbGluZS4iLDAuMDAwNTQsInsnaWQnOiAnY2hhdGNtcGwtQWVPTENKemxyeFExdm1ndjJLU2ZWMkFwajM4M0UnLCAnY2hvaWNlcyc6IFt7J2ZpbmlzaF9yZWFzb24nOiAnc3RvcCcsICdpbmRleCc6IDAsICdsb2dwcm9icyc6IE5vbmUsICdtZXNzYWdlJzogeydjb250ZW50JzogIiJObyAgXG5UaGUgdGlja2V0IGRvZXMgbm90IG1lbnRpb24gYW55IGFjY2lkZW50IG9yIGluanVyeTsgaXQgcHJhaXNlcyB0aGUgZHJpdmVyJ3MgaGVscGZ1bG5lc3MuIiIsICdyZWZ1c2FsJzogTm9uZSwgJ3JvbGUnOiAnYXNzaXN0YW50JywgJ2F1ZGlvJzogTm9uZSwgJ2Z1bmN0aW9uX2NhbGwnOiBOb25lLCAndG9vbF9jYWxscyc6IE5vbmV9fV0sICdjcmVhdGVkJzogMTczNDE5MDA1MCwgJ21vZGVsJzogJ2dwdC00by0yMDI0LTA4LTA2JywgJ29iamVjdCc6ICdjaGF0LmNvbXBsZXRpb24nLCAnc2VydmljZV90aWVyJzogTm9uZSwgJ3N5c3RlbV9maW5nZXJwcmludCc6ICdmcF9hNzlkOGRhYzFmJywgJ3VzYWdlJzogeydjb21wbGV0aW9uX3Rva2Vucyc6IDE5LCAncHJvbXB0X3Rva2Vucyc6IDEzOCwgJ3RvdGFsX3Rva2Vucyc6IDE1NywgJ2NvbXBsZXRpb25fdG9rZW5zX2RldGFpbHMnOiB7J2FjY2VwdGVkX3ByZWRpY3Rpb25fdG9rZW5zJzogMCwgJ2F1ZGlvX3Rva2Vucyc6IDAsICdyZWFzb25pbmdfdG9rZW5zJzogMCwgJ3JlamVjdGVkX3ByZWRpY3Rpb25fdG9rZW5zJzogMH0sICdwcm9tcHRfdG9rZW5zX2RldGFpbHMnOiB7J2F1ZGlvX3Rva2Vucyc6IDAsICdjYWNoZWRfdG9rZW5zJzogMH19fSIsInsnaWQnOiAnY2hhdGNtcGwtQWVPTEN6NkNtMEdPMkZOTWNwRjAzb3dDM1dQa1QnLCAnY2hvaWNlcyc6IFt7J2ZpbmlzaF9yZWFzb24nOiAnc3RvcCcsICdpbmRleCc6IDAsICdsb2dwcm9icyc6IE5vbmUsICdtZXNzYWdlJzogeydjb250ZW50JzogIiJWZXJ5IHBvc2l0aXZlICBcblRoZSB0aWNrZXQgZXhwcmVzc2VzIGFwcHJlY2lhdGlvbiBhbmQgaGlnaGxpZ2h0cyB0aGUgZHJpdmVyJ3MgY29uc2lkZXJhdGUgYmVoYXZpb3IsIGluZGljYXRpbmcgYSB2ZXJ5IHBvc2l0aXZlIHNlbnRpbWVudC4iIiwgJ3JlZnVzYWwnOiBOb25lLCAncm9sZSc6ICdhc3Npc3RhbnQnLCAnYXVkaW8nOiBOb25lLCAnZnVuY3Rpb25fY2FsbCc6IE5vbmUsICd0b29sX2NhbGxzJzogTm9uZX19XSwgJ2NyZWF0ZWQnOiAxNzM0MTkwMDUwLCAnbW9kZWwnOiAnZ3B0LTRvLTIwMjQtMDgtMDYnLCAnb2JqZWN0JzogJ2NoYXQuY29tcGxldGlvbicsICdzZXJ2aWNlX3RpZXInOiBOb25lLCAnc3lzdGVtX2ZpbmdlcnByaW50JzogJ2ZwX2E3OWQ4ZGFjMWYnLCAndXNhZ2UnOiB7J2NvbXBsZXRpb25fdG9rZW5zJzogMjAsICdwcm9tcHRfdG9rZW5zJzogMTM2LCAndG90YWxfdG9rZW5zJzogMTU2LCAnY29tcGxldGlvbl90b2tlbnNfZGV0YWlscyc6IHsnYWNjZXB0ZWRfcHJlZGljdGlvbl90b2tlbnMnOiAwLCAnYXVkaW9fdG9rZW5zJzogMCwgJ3JlYXNvbmluZ190b2tlbnMnOiAwLCAncmVqZWN0ZWRfcHJlZGljdGlvbl90b2tlbnMnOiAwfSwgJ3Byb21wdF90b2tlbnNfZGV0YWlscyc6IHsnYXVkaW9fdG9rZW5zJzogMCwgJ2NhY2hlZF90b2tlbnMnOiAwfX19IiwxODUxLjg1MTg1MTg1MTg1MTcsMTkyMy4wNzY5MjMwNzY5MjI5LCJ7J2lkJzogJ2NoYXRjbXBsLUFlT0xDa0h5R21GVjBBMXJwVFFHZFlLUUZ1dmJaJywgJ2Nob2ljZXMnOiBbeydmaW5pc2hfcmVhc29uJzogJ3N0b3AnLCAnaW5kZXgnOiAwLCAnbG9ncHJvYnMnOiBOb25lLCAnbWVzc2FnZSc6IHsnY29udGVudCc6ICIiWzJdICBcblRoZSB0aWNrZXQgbWVudGlvbnMgdGhlIGRyaXZlcidzIGNvbnNpZGVyYXRlIGJlaGF2aW9yIGFuZCBhc3Npc3RhbmNlIHdpdGggbHVnZ2FnZSwgd2hpY2ggcmVsYXRlcyB0byBkcml2ZXIgcGVyZm9ybWFuY2UuIiIsICdyZWZ1c2FsJzogTm9uZSwgJ3JvbGUnOiAnYXNzaXN0YW50JywgJ2F1ZGlvJzogTm9uZSwgJ2Z1bmN0aW9uX2NhbGwnOiBOb25lLCAndG9vbF9jYWxscyc6IE5vbmV9fV0sICdjcmVhdGVkJzogMTczNDE5MDA1MCwgJ21vZGVsJzogJ2dwdC00by0yMDI0LTA4LTA2JywgJ29iamVjdCc6ICdjaGF0LmNvbXBsZXRpb24nLCAnc2VydmljZV90aWVyJzogTm9uZSwgJ3N5c3RlbV9maW5nZXJwcmludCc6ICdmcF9hNzlkOGRhYzFmJywgJ3VzYWdlJzogeydjb21wbGV0aW9uX3Rva2Vucyc6IDIyLCAncHJvbXB0X3Rva2Vucyc6IDE1OSwgJ3RvdGFsX3Rva2Vucyc6IDE4MSwgJ2NvbXBsZXRpb25fdG9rZW5zX2RldGFpbHMnOiB7J2FjY2VwdGVkX3ByZWRpY3Rpb25fdG9rZW5zJzogMCwgJ2F1ZGlvX3Rva2Vucyc6IDAsICdyZWFzb25pbmdfdG9rZW5zJzogMCwgJ3JlamVjdGVkX3ByZWRpY3Rpb25fdG9rZW5zJzogMH0sICdwcm9tcHRfdG9rZW5zX2RldGFpbHMnOiB7J2F1ZGlvX3Rva2Vucyc6IDAsICdjYWNoZWRfdG9rZW5zJzogMH19fSIsMC4wMDA1NzUsMTg2OS4xNTg4Nzg1MDQ2NzI5LDAuMDAwNTIwMDAwMDAwMDAwMDAwMSwwLjAwMDYxNzUsInsnaWQnOiAnY2hhdGNtcGwtQWVPTENnbHd0aUVCV3RmYTd1M2hseXh4bWVTOHEnLCAnY2hvaWNlcyc6IFt7J2ZpbmlzaF9yZWFzb24nOiAnc3RvcCcsICdpbmRleCc6IDAsICdsb2dwcm9icyc6IE5vbmUsICdtZXNzYWdlJzogeydjb250ZW50JzogIiJUaGUgcHJpbWFyeSBpc3N1ZSBpbiB0aGlzIHRpY2tldCBpcyBhY3R1YWxseSBub3QgYW4gaXNzdWUgYXQgYWxsLiBJdCBhcHBlYXJzIHRvIGJlIGEgcG9zaXRpdmUgZmVlZGJhY2sgb3IgY29tcGxpbWVudCByZWdhcmRpbmcgdGhlIGRyaXZlcidzIGNvbnNpZGVyYXRlIGJlaGF2aW9yIGFuZCBhc3Npc3RhbmNlIHdpdGggbHVnZ2FnZS4gSXQncyBhbHdheXMgZ3JlYXQgdG8gcmVjZWl2ZSBzdWNoIHBvc2l0aXZlIGNvbW1lbnRzIGFib3V0IHRoZSBzZXJ2aWNlIHByb3ZpZGVkISIiLCAncmVmdXNhbCc6IE5vbmUsICdyb2xlJzogJ2Fzc2lzdGFudCcsICdhdWRpbyc6IE5vbmUsICdmdW5jdGlvbl9jYWxsJzogTm9uZSwgJ3Rvb2xfY2FsbHMnOiBOb25lfX1dLCAnY3JlYXRlZCc6IDE3MzQxOTAwNTAsICdtb2RlbCc6ICdncHQtNG8tMjAyNC0wOC0wNicsICdvYmplY3QnOiAnY2hhdC5jb21wbGV0aW9uJywgJ3NlcnZpY2VfdGllcic6IE5vbmUsICdzeXN0ZW1fZmluZ2VycHJpbnQnOiAnZnBfOWZhYmE5ZjAzOCcsICd1c2FnZSc6IHsnY29tcGxldGlvbl90b2tlbnMnOiA0NiwgJ3Byb21wdF90b2tlbnMnOiA3OSwgJ3RvdGFsX3Rva2Vucyc6IDEyNSwgJ2NvbXBsZXRpb25fdG9rZW5zX2RldGFpbHMnOiB7J2FjY2VwdGVkX3ByZWRpY3Rpb25fdG9rZW5zJzogMCwgJ2F1ZGlvX3Rva2Vucyc6IDAsICdyZWFzb25pbmdfdG9rZW5zJzogMCwgJ3JlamVjdGVkX3ByZWRpY3Rpb25fdG9rZW5zJzogMH0sICdwcm9tcHRfdG9rZW5zX2RldGFpbHMnOiB7J2F1ZGlvX3Rva2Vucyc6IDAsICdjYWNoZWRfdG9rZW5zJzogMH19fSIsMC4wMDA2NTc1LDE1MjAuOTEyNTQ3NTI4NTE3LCJ7J2lkJzogJ2NoYXRjbXBsLUFlT0xDdjhZc0lMenRncUxCYWpmdk5vUlFhM1djJywgJ2Nob2ljZXMnOiBbeydmaW5pc2hfcmVhc29uJzogJ3N0b3AnLCAnaW5kZXgnOiAwLCAnbG9ncHJvYnMnOiBOb25lLCAnbWVzc2FnZSc6IHsnY29udGVudCc6ICcwICBcblRoaXMgdGlja2V0IGlzIGEgcG9zaXRpdmUgZmVlZGJhY2sgYW5kIGRvZXMgbm90IHJlcXVpcmUgdXJnZW50IGF0dGVudGlvbiBvciByZXNvbHV0aW9uLicsICdyZWZ1c2FsJzogTm9uZSwgJ3JvbGUnOiAnYXNzaXN0YW50JywgJ2F1ZGlvJzogTm9uZSwgJ2Z1bmN0aW9uX2NhbGwnOiBOb25lLCAndG9vbF9jYWxscyc6IE5vbmV9fV0sICdjcmVhdGVkJzogMTczNDE5MDA1MCwgJ21vZGVsJzogJ2dwdC00by0yMDI0LTA4LTA2JywgJ29iamVjdCc6ICdjaGF0LmNvbXBsZXRpb24nLCAnc2VydmljZV90aWVyJzogTm9uZSwgJ3N5c3RlbV9maW5nZXJwcmludCc6ICdmcF9hNzlkOGRhYzFmJywgJ3VzYWdlJzogeydjb21wbGV0aW9uX3Rva2Vucyc6IDE3LCAncHJvbXB0X3Rva2Vucyc6IDE2MiwgJ3RvdGFsX3Rva2Vucyc6IDE3OSwgJ2NvbXBsZXRpb25fdG9rZW5zX2RldGFpbHMnOiB7J2FjY2VwdGVkX3ByZWRpY3Rpb25fdG9rZW5zJzogMCwgJ2F1ZGlvX3Rva2Vucyc6IDAsICdyZWFzb25pbmdfdG9rZW5zJzogMCwgJ3JlamVjdGVkX3ByZWRpY3Rpb25fdG9rZW5zJzogMH0sICdwcm9tcHRfdG9rZW5zX2RldGFpbHMnOiB7J2F1ZGlvX3Rva2Vucyc6IDAsICdjYWNoZWRfdG9rZW5zJzogMH19fSIsMTYxOS40MzMxOTgzODA1NjY5LDE3MzkuMTMwNDM0NzgyNjA4NywwLjAwMDUzNSwieydpZCc6ICdjaGF0Y21wbC1BZU9MQ3ExS2g5dkJlcU9PeU1lWUptWUhud0V4dycsICdjaG9pY2VzJzogW3snZmluaXNoX3JlYXNvbic6ICdzdG9wJywgJ2luZGV4JzogMCwgJ2xvZ3Byb2JzJzogTm9uZSwgJ21lc3NhZ2UnOiB7J2NvbnRlbnQnOiAiIk5vXG5cblRoZSBjdXN0b21lciBpcyBleHByZXNzaW5nIGFwcHJlY2lhdGlvbiBmb3IgdGhlIGRyaXZlcidzIHNlcnZpY2UgYW5kIGRvZXMgbm90IG1lbnRpb24gYW55IGRpc3NhdGlzZmFjdGlvbiBvciByZXF1ZXN0IGZvciBhIHJlZnVuZC4iIiwgJ3JlZnVzYWwnOiBOb25lLCAncm9sZSc6ICdhc3Npc3RhbnQnLCAnYXVkaW8nOiBOb25lLCAnZnVuY3Rpb25fY2FsbCc6IE5vbmUsICd0b29sX2NhbGxzJzogTm9uZX19XSwgJ2NyZWF0ZWQnOiAxNzM0MTkwMDUwLCAnbW9kZWwnOiAnZ3B0LTRvLTIwMjQtMDgtMDYnLCAnb2JqZWN0JzogJ2NoYXQuY29tcGxldGlvbicsICdzZXJ2aWNlX3RpZXInOiBOb25lLCAnc3lzdGVtX2ZpbmdlcnByaW50JzogJ2ZwXzlmYWJhOWYwMzgnLCAndXNhZ2UnOiB7J2NvbXBsZXRpb25fdG9rZW5zJzogMjMsICdwcm9tcHRfdG9rZW5zJzogMTE2LCAndG90YWxfdG9rZW5zJzogMTM5LCAnY29tcGxldGlvbl90b2tlbnNfZGV0YWlscyc6IHsnYWNjZXB0ZWRfcHJlZGljdGlvbl90b2tlbnMnOiAwLCAnYXVkaW9fdG9rZW5zJzogMCwgJ3JlYXNvbmluZ190b2tlbnMnOiAwLCAncmVqZWN0ZWRfcHJlZGljdGlvbl90b2tlbnMnOiAwfSwgJ3Byb21wdF90b2tlbnNfZGV0YWlscyc6IHsnYXVkaW9fdG9rZW5zJzogMCwgJ2NhY2hlZF90b2tlbnMnOiAwfX19IiwwLERvZXMgdGhlIGN1c3RvbWVyIGFzayBmb3IgYSByZWZ1bmQgaW4gdGhpcyB0aWNrZXQ/IFRpY2tldDoge3sgdGlja2V0IH19LCJJZiB0aGUgcHJpbWFyeSBpc3N1ZSBpbiB0aGlzIHRpY2tldCBpcyBzYWZldHksIHdhcyB0aGVyZSBhbiBhY2NpZGVudCB3aGVyZSBzb21lb25lIHdhcyBodXJ0PyBUaWNrZXQ6IHt7IHRpY2tldCB9fSIsV2hhdCBpcyB0aGUgcHJpbWFyeSBpc3N1ZSBpbiB0aGlzIHRpY2tldD8gVGlja2V0OiB7eyB0aWNrZXQgfX0sQ2hlY2sgYWxsIG9mIHRoZSBpc3N1ZXMgbWVudGlvbmVkIGluIHRoaXMgdGlja2V0OiB7eyB0aWNrZXQgfX0sIk9uIGEgc2NhbGUgZnJvbSAwIHRvIDUsIHdoYXQgaXMgdGhlIHByaW9yaXR5IGxldmVsIG9mIHRoaXMgdGlja2V0PyBUaWNrZXQ6IHt7IHRpY2tldCB9fSIsV2hhdCBpcyB0aGUgc2VudGltZW50IG9mIHRoaXMgdGlja2V0PyBUaWNrZXQ6IHt7IHRpY2tldCB9fSwiWydzYWZldHknLCAnY2xlYW5saW5lc3MnLCAnZHJpdmVyIHBlcmZvcm1hbmNlJywgJ0dQUy9yb3V0ZScsICdsb3N0IGl0ZW0nLCAnb3RoZXInXSIsIlsnVmVyeSBwb3NpdGl2ZScsICdTb21ld2hhdCBwb3NpdGl2ZScsICdOZXV0cmFsJywgJ1NvbWV3aGF0IG5lZ2F0aXZlJywgJ1ZlcnkgbmVnYXRpdmUnXSIsLCJbJ05vJywgJ1llcyddIiwiWydZZXMnLCAnTm8nLCAnTm90IGFwcGxpY2FibGUnXSIsIlswLCAxLCAyLCAzLCA0LCA1XSIsbGluZWFyX3NjYWxlLG11bHRpcGxlX2Nob2ljZSxtdWx0aXBsZV9jaG9pY2UseWVzX25vLGZyZWVfdGV4dCxjaGVja2JveCwsVGhlIGN1c3RvbWVyIGlzIGV4cHJlc3NpbmcgYXBwcmVjaWF0aW9uIGZvciB0aGUgZHJpdmVyJ3Mgc2VydmljZSBhbmQgZG9lcyBub3QgbWVudGlvbiBhbnkgZGlzc2F0aXNmYWN0aW9uIG9yIHJlcXVlc3QgZm9yIGEgcmVmdW5kLixUaGlzIHRpY2tldCBpcyBhIHBvc2l0aXZlIGZlZWRiYWNrIGFuZCBkb2VzIG5vdCByZXF1aXJlIHVyZ2VudCBhdHRlbnRpb24gb3IgcmVzb2x1dGlvbi4sIlRoZSB0aWNrZXQgbWVudGlvbnMgdGhlIGRyaXZlcidzIGNvbnNpZGVyYXRlIGJlaGF2aW9yIGFuZCBhc3Npc3RhbmNlIHdpdGggbHVnZ2FnZSwgd2hpY2ggcmVsYXRlcyB0byBkcml2ZXIgcGVyZm9ybWFuY2UuIiwiVGhlIHRpY2tldCBleHByZXNzZXMgYXBwcmVjaWF0aW9uIGFuZCBoaWdobGlnaHRzIHRoZSBkcml2ZXIncyBjb25zaWRlcmF0ZSBiZWhhdmlvciwgaW5kaWNhdGluZyBhIHZlcnkgcG9zaXRpdmUgc2VudGltZW50LiIsVGhlIHRpY2tldCBkb2VzIG5vdCBtZW50aW9uIGFueSBhY2NpZGVudCBvciBpbmp1cnk7IGl0IHByYWlzZXMgdGhlIGRyaXZlcidzIGhlbHBmdWxuZXNzLiwiVmVyeSBwb3NpdGl2ZSAgClRoZSB0aWNrZXQgZXhwcmVzc2VzIGFwcHJlY2lhdGlvbiBhbmQgaGlnaGxpZ2h0cyB0aGUgZHJpdmVyJ3MgY29uc2lkZXJhdGUgYmVoYXZpb3IsIGluZGljYXRpbmcgYSB2ZXJ5IHBvc2l0aXZlIHNlbnRpbWVudC4iLCJbMl0gIApUaGUgdGlja2V0IG1lbnRpb25zIHRoZSBkcml2ZXIncyBjb25zaWRlcmF0ZSBiZWhhdmlvciBhbmQgYXNzaXN0YW5jZSB3aXRoIGx1Z2dhZ2UsIHdoaWNoIHJlbGF0ZXMgdG8gZHJpdmVyIHBlcmZvcm1hbmNlLiIsIk5vCgpUaGUgY3VzdG9tZXIgaXMgZXhwcmVzc2luZyBhcHByZWNpYXRpb24gZm9yIHRoZSBkcml2ZXIncyBzZXJ2aWNlIGFuZCBkb2VzIG5vdCBtZW50aW9uIGFueSBkaXNzYXRpc2ZhY3Rpb24gb3IgcmVxdWVzdCBmb3IgYSByZWZ1bmQuIixUaGUgcHJpbWFyeSBpc3N1ZSBpbiB0aGlzIHRpY2tldCBpcyBhY3R1YWxseSBub3QgYW4gaXNzdWUgYXQgYWxsLiBJdCBhcHBlYXJzIHRvIGJlIGEgcG9zaXRpdmUgZmVlZGJhY2sgb3IgY29tcGxpbWVudCByZWdhcmRpbmcgdGhlIGRyaXZlcidzIGNvbnNpZGVyYXRlIGJlaGF2aW9yIGFuZCBhc3Npc3RhbmNlIHdpdGggbHVnZ2FnZS4gSXQncyBhbHdheXMgZ3JlYXQgdG8gcmVjZWl2ZSBzdWNoIHBvc2l0aXZlIGNvbW1lbnRzIGFib3V0IHRoZSBzZXJ2aWNlIHByb3ZpZGVkISwiTm8gIApUaGUgdGlja2V0IGRvZXMgbm90IG1lbnRpb24gYW55IGFjY2lkZW50IG9yIGluanVyeTsgaXQgcHJhaXNlcyB0aGUgZHJpdmVyJ3MgaGVscGZ1bG5lc3MuIiwiMCAgClRoaXMgdGlja2V0IGlzIGEgcG9zaXRpdmUgZmVlZGJhY2sgYW5kIGRvZXMgbm90IHJlcXVpcmUgdXJnZW50IGF0dGVudGlvbiBvciByZXNvbHV0aW9uLiINCk5vLFNvbWV3aGF0IG5lZ2F0aXZlLE5vLCJUaGUgcHJpbWFyeSBpc3N1ZSBpbiB0aGlzIHRpY2tldCBpcyB0aGUgaW5hY2N1cmFjeSBvZiB0aGUgYXBwJ3MgR1BTLCB3aGljaCByZXN1bHRlZCBpbiBkaXJlY3RpbmcgdGhlIGRyaXZlciB0byB0aGUgd3JvbmcgcGljay11cCBsb2NhdGlvbi4gVGhpcyBjYW4gbGVhZCB0byBkZWxheXMgYW5kIGluY29udmVuaWVuY2UgZm9yIGJvdGggdGhlIGRyaXZlciBhbmQgdGhlIGN1c3RvbWVyLCBzbyBpdCdzIGltcG9ydGFudCB0byBhZGRyZXNzIHRoZSBHUFMgZnVuY3Rpb25hbGl0eSB0byBlbnN1cmUgaXQgcHJvdmlkZXMgYWNjdXJhdGUgZGlyZWN0aW9ucy4iLDQsWydHUFMvcm91dGUnXSxUaGUgYXBwJ3MgR1BTIHNlZW1zIGluYWNjdXJhdGUuIEl0IGRpcmVjdGVkIHRoZSBkcml2ZXIgdG8gdGhlIHdyb25nIHBpY2stdXAgbG9jYXRpb24uLFlvdSBhcmUgYW4gZXhwZXJ0IGN1c3RvbWVyIHNlcnZpY2UgYWdlbnQuLEFnZW50XzE2LDE1LFlvdSBhcmUgYW5zd2VyaW5nIHF1ZXN0aW9ucyBhcyBpZiB5b3Ugd2VyZSBhIGh1bWFuLiBEbyBub3QgYnJlYWsgY2hhcmFjdGVyLiwwLDEsMCxncHQtNG8sMC41LEZhbHNlLDEwMDAsMyxXaGF0IGlzIHRoZSBwcmltYXJ5IGlzc3VlIGluIHRoaXMgdGlja2V0PyBUaWNrZXQ6IFRoZSBhcHAncyBHUFMgc2VlbXMgaW5hY2N1cmF0ZS4gSXQgZGlyZWN0ZWQgdGhlIGRyaXZlciB0byB0aGUgd3JvbmcgcGljay11cCBsb2NhdGlvbi4sIllvdSBhcmUgYW5zd2VyaW5nIHF1ZXN0aW9ucyBhcyBpZiB5b3Ugd2VyZSBhIGh1bWFuLiBEbyBub3QgYnJlYWsgY2hhcmFjdGVyLiBZb3VyIHRyYWl0czogeydwZXJzb25hJzogJ1lvdSBhcmUgYW4gZXhwZXJ0IGN1c3RvbWVyIHNlcnZpY2UgYWdlbnQuJywgJ3llYXJzX2V4cGVyaWVuY2UnOiAxNX0iLCJZb3UgYXJlIGFuc3dlcmluZyBxdWVzdGlvbnMgYXMgaWYgeW91IHdlcmUgYSBodW1hbi4gRG8gbm90IGJyZWFrIGNoYXJhY3Rlci4gWW91ciB0cmFpdHM6IHsncGVyc29uYSc6ICdZb3UgYXJlIGFuIGV4cGVydCBjdXN0b21lciBzZXJ2aWNlIGFnZW50LicsICd5ZWFyc19leHBlcmllbmNlJzogMTV9IiwiQ2hlY2sgYWxsIG9mIHRoZSBpc3N1ZXMgbWVudGlvbmVkIGluIHRoaXMgdGlja2V0OiBUaGUgYXBwJ3MgR1BTIHNlZW1zIGluYWNjdXJhdGUuIEl0IGRpcmVjdGVkIHRoZSBkcml2ZXIgdG8gdGhlIHdyb25nIHBpY2stdXAgbG9jYXRpb24uCgogICAgCjA6IHNhZmV0eQogICAgCjE6IGNsZWFubGluZXNzCiAgICAKMjogZHJpdmVyIHBlcmZvcm1hbmNlCiAgICAKMzogR1BTL3JvdXRlCiAgICAKNDogbG9zdCBpdGVtCiAgICAKNTogb3RoZXIKICAgIAoKCgoKCgpQbGVhc2UgcmVzcG9uZCBvbmx5IHdpdGggYSBjb21tYS1zZXBhcmF0ZWQgbGlzdCBvZiB0aGUgY29kZSBvZiB0aGUgb3B0aW9ucyB0aGF0IGFwcGx5LCB3aXRoIHNxdWFyZSBicmFja2V0cy4gRS5nLiwgWzAsIDEsIDNdCgoKQWZ0ZXIgdGhlIGFuc3dlciwgeW91IGNhbiBwdXQgYSBjb21tZW50IGV4cGxhaW5pbmcgeW91ciBjaG9pY2Ugb24gdGhlIG5leHQgbGluZS4iLCJPbiBhIHNjYWxlIGZyb20gMCB0byA1LCB3aGF0IGlzIHRoZSBwcmlvcml0eSBsZXZlbCBvZiB0aGlzIHRpY2tldD8gVGlja2V0OiBUaGUgYXBwJ3MgR1BTIHNlZW1zIGluYWNjdXJhdGUuIEl0IGRpcmVjdGVkIHRoZSBkcml2ZXIgdG8gdGhlIHdyb25nIHBpY2stdXAgbG9jYXRpb24uCgowIDogTG93ZXN0CgoxIDogCgoyIDogCgozIDogCgo0IDogCgo1IDogSGlnaGVzdAoKT25seSAxIG9wdGlvbiBtYXkgYmUgc2VsZWN0ZWQuCgpSZXNwb25kIG9ubHkgd2l0aCB0aGUgY29kZSBjb3JyZXNwb25kaW5nIHRvIG9uZSBvZiB0aGUgb3B0aW9ucy4gRS5nLiwgIiIxIiIgb3IgIiI1IiIgYnkgaXRzZWxmLgoKQWZ0ZXIgdGhlIGFuc3dlciwgeW91IGNhbiBwdXQgYSBjb21tZW50IGV4cGxhaW5pbmcgd2h5IHlvdSBjaG9zZSB0aGF0IG9wdGlvbiBvbiB0aGUgbmV4dCBsaW5lLiIsIllvdSBhcmUgYW5zd2VyaW5nIHF1ZXN0aW9ucyBhcyBpZiB5b3Ugd2VyZSBhIGh1bWFuLiBEbyBub3QgYnJlYWsgY2hhcmFjdGVyLiBZb3VyIHRyYWl0czogeydwZXJzb25hJzogJ1lvdSBhcmUgYW4gZXhwZXJ0IGN1c3RvbWVyIHNlcnZpY2UgYWdlbnQuJywgJ3llYXJzX2V4cGVyaWVuY2UnOiAxNX0iLCJZb3UgYXJlIGFuc3dlcmluZyBxdWVzdGlvbnMgYXMgaWYgeW91IHdlcmUgYSBodW1hbi4gRG8gbm90IGJyZWFrIGNoYXJhY3Rlci4gWW91ciB0cmFpdHM6IHsncGVyc29uYSc6ICdZb3UgYXJlIGFuIGV4cGVydCBjdXN0b21lciBzZXJ2aWNlIGFnZW50LicsICd5ZWFyc19leHBlcmllbmNlJzogMTV9IiwiWW91IGFyZSBhbnN3ZXJpbmcgcXVlc3Rpb25zIGFzIGlmIHlvdSB3ZXJlIGEgaHVtYW4uIERvIG5vdCBicmVhayBjaGFyYWN0ZXIuIFlvdXIgdHJhaXRzOiB7J3BlcnNvbmEnOiAnWW91IGFyZSBhbiBleHBlcnQgY3VzdG9tZXIgc2VydmljZSBhZ2VudC4nLCAneWVhcnNfZXhwZXJpZW5jZSc6IDE1fSIsIgpXaGF0IGlzIHRoZSBzZW50aW1lbnQgb2YgdGhpcyB0aWNrZXQ/IFRpY2tldDogVGhlIGFwcCdzIEdQUyBzZWVtcyBpbmFjY3VyYXRlLiBJdCBkaXJlY3RlZCB0aGUgZHJpdmVyIHRvIHRoZSB3cm9uZyBwaWNrLXVwIGxvY2F0aW9uLgoKICAgIApWZXJ5IHBvc2l0aXZlCiAgICAKU29tZXdoYXQgcG9zaXRpdmUKICAgIApOZXV0cmFsCiAgICAKU29tZXdoYXQgbmVnYXRpdmUKICAgIApWZXJ5IG5lZ2F0aXZlCiAgICAKCk9ubHkgMSBvcHRpb24gbWF5IGJlIHNlbGVjdGVkLgoKUmVzcG9uZCBvbmx5IHdpdGggYSBzdHJpbmcgY29ycmVzcG9uZGluZyB0byBvbmUgb2YgdGhlIG9wdGlvbnMuCgoKQWZ0ZXIgdGhlIGFuc3dlciwgeW91IGNhbiBwdXQgYSBjb21tZW50IGV4cGxhaW5pbmcgd2h5IHlvdSBjaG9zZSB0aGF0IG9wdGlvbiBvbiB0aGUgbmV4dCBsaW5lLiIsIgpEb2VzIHRoZSBjdXN0b21lciBhc2sgZm9yIGEgcmVmdW5kIGluIHRoaXMgdGlja2V0PyBUaWNrZXQ6IFRoZSBhcHAncyBHUFMgc2VlbXMgaW5hY2N1cmF0ZS4gSXQgZGlyZWN0ZWQgdGhlIGRyaXZlciB0byB0aGUgd3JvbmcgcGljay11cCBsb2NhdGlvbi4KCiAgICAKTm8KICAgIApZZXMKICAgIAoKT25seSAxIG9wdGlvbiBtYXkgYmUgc2VsZWN0ZWQuClBsZWFzZSByZXNwb25kIHdpdGgganVzdCB5b3VyIGFuc3dlci4gCgoKQWZ0ZXIgdGhlIGFuc3dlciwgeW91IGNhbiBwdXQgYSBjb21tZW50IGV4cGxhaW5pbmcgeW91ciByZXNwb25zZS4iLCJZb3UgYXJlIGFuc3dlcmluZyBxdWVzdGlvbnMgYXMgaWYgeW91IHdlcmUgYSBodW1hbi4gRG8gbm90IGJyZWFrIGNoYXJhY3Rlci4gWW91ciB0cmFpdHM6IHsncGVyc29uYSc6ICdZb3UgYXJlIGFuIGV4cGVydCBjdXN0b21lciBzZXJ2aWNlIGFnZW50LicsICd5ZWFyc19leHBlcmllbmNlJzogMTV9IiwiCklmIHRoZSBwcmltYXJ5IGlzc3VlIGluIHRoaXMgdGlja2V0IGlzIHNhZmV0eSwgd2FzIHRoZXJlIGFuIGFjY2lkZW50IHdoZXJlIHNvbWVvbmUgd2FzIGh1cnQ/IFRpY2tldDogVGhlIGFwcCdzIEdQUyBzZWVtcyBpbmFjY3VyYXRlLiBJdCBkaXJlY3RlZCB0aGUgZHJpdmVyIHRvIHRoZSB3cm9uZyBwaWNrLXVwIGxvY2F0aW9uLgoKICAgIApZZXMKICAgIApObwogICAgCk5vdCBhcHBsaWNhYmxlCiAgICAKCk9ubHkgMSBvcHRpb24gbWF5IGJlIHNlbGVjdGVkLgoKUmVzcG9uZCBvbmx5IHdpdGggYSBzdHJpbmcgY29ycmVzcG9uZGluZyB0byBvbmUgb2YgdGhlIG9wdGlvbnMuCgoKQWZ0ZXIgdGhlIGFuc3dlciwgeW91IGNhbiBwdXQgYSBjb21tZW50IGV4cGxhaW5pbmcgd2h5IHlvdSBjaG9zZSB0aGF0IG9wdGlvbiBvbiB0aGUgbmV4dCBsaW5lLiIsMC4wMDA2MywieydpZCc6ICdjaGF0Y21wbC1BZU9MQ3Q0M1dycUZZWm1nYlNkY3ZYTFdvQ1F1cicsICdjaG9pY2VzJzogW3snZmluaXNoX3JlYXNvbic6ICdzdG9wJywgJ2luZGV4JzogMCwgJ2xvZ3Byb2JzJzogTm9uZSwgJ21lc3NhZ2UnOiB7J2NvbnRlbnQnOiAiIk5vICBcblRoZSBpc3N1ZSBtZW50aW9uZWQgaXMgYWJvdXQgR1BTIGluYWNjdXJhY3ksIGFuZCB0aGVyZSdzIG5vIGluZGljYXRpb24gb2YgYW4gYWNjaWRlbnQgb3IgaW5qdXJ5IGluIHRoZSB0aWNrZXQgZGVzY3JpcHRpb24uIiIsICdyZWZ1c2FsJzogTm9uZSwgJ3JvbGUnOiAnYXNzaXN0YW50JywgJ2F1ZGlvJzogTm9uZSwgJ2Z1bmN0aW9uX2NhbGwnOiBOb25lLCAndG9vbF9jYWxscyc6IE5vbmV9fV0sICdjcmVhdGVkJzogMTczNDE5MDA1MCwgJ21vZGVsJzogJ2dwdC00by0yMDI0LTA4LTA2JywgJ29iamVjdCc6ICdjaGF0LmNvbXBsZXRpb24nLCAnc2VydmljZV90aWVyJzogTm9uZSwgJ3N5c3RlbV9maW5nZXJwcmludCc6ICdmcF85ZmFiYTlmMDM4JywgJ3VzYWdlJzogeydjb21wbGV0aW9uX3Rva2Vucyc6IDI1LCAncHJvbXB0X3Rva2Vucyc6IDEzOCwgJ3RvdGFsX3Rva2Vucyc6IDE2MywgJ2NvbXBsZXRpb25fdG9rZW5zX2RldGFpbHMnOiB7J2FjY2VwdGVkX3ByZWRpY3Rpb25fdG9rZW5zJzogMCwgJ2F1ZGlvX3Rva2Vucyc6IDAsICdyZWFzb25pbmdfdG9rZW5zJzogMCwgJ3JlamVjdGVkX3ByZWRpY3Rpb25fdG9rZW5zJzogMH0sICdwcm9tcHRfdG9rZW5zX2RldGFpbHMnOiB7J2F1ZGlvX3Rva2Vucyc6IDAsICdjYWNoZWRfdG9rZW5zJzogMH19fSIsInsnaWQnOiAnY2hhdGNtcGwtQWVPTERXNlB3SThkaEhiTTV0NUpSU1hmTE9ab0MnLCAnY2hvaWNlcyc6IFt7J2ZpbmlzaF9yZWFzb24nOiAnc3RvcCcsICdpbmRleCc6IDAsICdsb2dwcm9icyc6IE5vbmUsICdtZXNzYWdlJzogeydjb250ZW50JzogIiJTb21ld2hhdCBuZWdhdGl2ZSAgXG5UaGUgc2VudGltZW50IGlzIHNvbWV3aGF0IG5lZ2F0aXZlIGJlY2F1c2UgdGhlIGN1c3RvbWVyIGlzIGV4cGVyaWVuY2luZyBhIHByb2JsZW0gd2l0aCB0aGUgYXBwJ3MgR1BTLCB3aGljaCBpcyBsZWFkaW5nIHRvIGFuIGluY29udmVuaWVuY2UuIiIsICdyZWZ1c2FsJzogTm9uZSwgJ3JvbGUnOiAnYXNzaXN0YW50JywgJ2F1ZGlvJzogTm9uZSwgJ2Z1bmN0aW9uX2NhbGwnOiBOb25lLCAndG9vbF9jYWxscyc6IE5vbmV9fV0sICdjcmVhdGVkJzogMTczNDE5MDA1MSwgJ21vZGVsJzogJ2dwdC00by0yMDI0LTA4LTA2JywgJ29iamVjdCc6ICdjaGF0LmNvbXBsZXRpb24nLCAnc2VydmljZV90aWVyJzogTm9uZSwgJ3N5c3RlbV9maW5nZXJwcmludCc6ICdmcF9hNzlkOGRhYzFmJywgJ3VzYWdlJzogeydjb21wbGV0aW9uX3Rva2Vucyc6IDI5LCAncHJvbXB0X3Rva2Vucyc6IDEzNiwgJ3RvdGFsX3Rva2Vucyc6IDE2NSwgJ2NvbXBsZXRpb25fdG9rZW5zX2RldGFpbHMnOiB7J2FjY2VwdGVkX3ByZWRpY3Rpb25fdG9rZW5zJzogMCwgJ2F1ZGlvX3Rva2Vucyc6IDAsICdyZWFzb25pbmdfdG9rZW5zJzogMCwgJ3JlamVjdGVkX3ByZWRpY3Rpb25fdG9rZW5zJzogMH0sICdwcm9tcHRfdG9rZW5zX2RldGFpbHMnOiB7J2F1ZGlvX3Rva2Vucyc6IDAsICdjYWNoZWRfdG9rZW5zJzogMH19fSIsMTU4Ny4zMDE1ODczMDE1ODcyLDE4MTguMTgxODE4MTgxODE4NSwieydpZCc6ICdjaGF0Y21wbC1BZU9MRGJ5WHlIeEFEOW1QZGN4UE15bXpLNXhoVicsICdjaG9pY2VzJzogW3snZmluaXNoX3JlYXNvbic6ICdzdG9wJywgJ2luZGV4JzogMCwgJ2xvZ3Byb2JzJzogTm9uZSwgJ21lc3NhZ2UnOiB7J2NvbnRlbnQnOiAiIlszXVxuXG5UaGUgaXNzdWUgbWVudGlvbmVkIGluIHRoZSB0aWNrZXQgaXMgcmVsYXRlZCB0byB0aGUgR1BTL3JvdXRlLCBhcyBpdCBkZXNjcmliZXMgdGhlIGFwcCdzIEdQUyBkaXJlY3RpbmcgdGhlIGRyaXZlciB0byB0aGUgd3JvbmcgcGljay11cCBsb2NhdGlvbi4iIiwgJ3JlZnVzYWwnOiBOb25lLCAncm9sZSc6ICdhc3Npc3RhbnQnLCAnYXVkaW8nOiBOb25lLCAnZnVuY3Rpb25fY2FsbCc6IE5vbmUsICd0b29sX2NhbGxzJzogTm9uZX19XSwgJ2NyZWF0ZWQnOiAxNzM0MTkwMDUxLCAnbW9kZWwnOiAnZ3B0LTRvLTIwMjQtMDgtMDYnLCAnb2JqZWN0JzogJ2NoYXQuY29tcGxldGlvbicsICdzZXJ2aWNlX3RpZXInOiBOb25lLCAnc3lzdGVtX2ZpbmdlcnByaW50JzogJ2ZwX2E3OWQ4ZGFjMWYnLCAndXNhZ2UnOiB7J2NvbXBsZXRpb25fdG9rZW5zJzogMzQsICdwcm9tcHRfdG9rZW5zJzogMTU5LCAndG90YWxfdG9rZW5zJzogMTkzLCAnY29tcGxldGlvbl90b2tlbnNfZGV0YWlscyc6IHsnYWNjZXB0ZWRfcHJlZGljdGlvbl90b2tlbnMnOiAwLCAnYXVkaW9fdG9rZW5zJzogMCwgJ3JlYXNvbmluZ190b2tlbnMnOiAwLCAncmVqZWN0ZWRfcHJlZGljdGlvbl90b2tlbnMnOiAwfSwgJ3Byb21wdF90b2tlbnNfZGV0YWlscyc6IHsnYXVkaW9fdG9rZW5zJzogMCwgJ2NhY2hlZF90b2tlbnMnOiAwfX19IiwwLjAwMDY3NSwxNjgwLjY3MjI2ODkwNzU2MywwLjAwMDU0OTk5OTk5OTk5OTk5OTksMC4wMDA3Mzc1MDAwMDAwMDAwMDAxLCJ7J2lkJzogJ2NoYXRjbXBsLUFlT0xDc29tdWs2UVk3a3RHRVJ3Ykd6ampaZjVJJywgJ2Nob2ljZXMnOiBbeydmaW5pc2hfcmVhc29uJzogJ3N0b3AnLCAnaW5kZXgnOiAwLCAnbG9ncHJvYnMnOiBOb25lLCAnbWVzc2FnZSc6IHsnY29udGVudCc6ICIiVGhlIHByaW1hcnkgaXNzdWUgaW4gdGhpcyB0aWNrZXQgaXMgdGhlIGluYWNjdXJhY3kgb2YgdGhlIGFwcCdzIEdQUywgd2hpY2ggcmVzdWx0ZWQgaW4gZGlyZWN0aW5nIHRoZSBkcml2ZXIgdG8gdGhlIHdyb25nIHBpY2stdXAgbG9jYXRpb24uIFRoaXMgY2FuIGxlYWQgdG8gZGVsYXlzIGFuZCBpbmNvbnZlbmllbmNlIGZvciBib3RoIHRoZSBkcml2ZXIgYW5kIHRoZSBjdXN0b21lciwgc28gaXQncyBpbXBvcnRhbnQgdG8gYWRkcmVzcyB0aGUgR1BTIGZ1bmN0aW9uYWxpdHkgdG8gZW5zdXJlIGl0IHByb3ZpZGVzIGFjY3VyYXRlIGRpcmVjdGlvbnMuIiIsICdyZWZ1c2FsJzogTm9uZSwgJ3JvbGUnOiAnYXNzaXN0YW50JywgJ2F1ZGlvJzogTm9uZSwgJ2Z1bmN0aW9uX2NhbGwnOiBOb25lLCAndG9vbF9jYWxscyc6IE5vbmV9fV0sICdjcmVhdGVkJzogMTczNDE5MDA1MCwgJ21vZGVsJzogJ2dwdC00by0yMDI0LTA4LTA2JywgJ29iamVjdCc6ICdjaGF0LmNvbXBsZXRpb24nLCAnc2VydmljZV90aWVyJzogTm9uZSwgJ3N5c3RlbV9maW5nZXJwcmludCc6ICdmcF9hNzlkOGRhYzFmJywgJ3VzYWdlJzogeydjb21wbGV0aW9uX3Rva2Vucyc6IDU5LCAncHJvbXB0X3Rva2Vucyc6IDc5LCAndG90YWxfdG9rZW5zJzogMTM4LCAnY29tcGxldGlvbl90b2tlbnNfZGV0YWlscyc6IHsnYWNjZXB0ZWRfcHJlZGljdGlvbl90b2tlbnMnOiAwLCAnYXVkaW9fdG9rZW5zJzogMCwgJ3JlYXNvbmluZ190b2tlbnMnOiAwLCAncmVqZWN0ZWRfcHJlZGljdGlvbl90b2tlbnMnOiAwfSwgJ3Byb21wdF90b2tlbnNfZGV0YWlscyc6IHsnYXVkaW9fdG9rZW5zJzogMCwgJ2NhY2hlZF90b2tlbnMnOiAwfX19IiwwLjAwMDc4NzUsMTI2OS44NDEyNjk4NDEyNjk5LCJ7J2lkJzogJ2NoYXRjbXBsLUFlT0xDWjREeG16dHl5Qnhwem9Fc21oazFnN0pTJywgJ2Nob2ljZXMnOiBbeydmaW5pc2hfcmVhc29uJzogJ3N0b3AnLCAnaW5kZXgnOiAwLCAnbG9ncHJvYnMnOiBOb25lLCAnbWVzc2FnZSc6IHsnY29udGVudCc6ICc0ICBcblRoaXMgaXNzdWUgaW1wYWN0cyB0aGUgY29yZSBmdW5jdGlvbmFsaXR5IG9mIHRoZSBhcHAsIHBvdGVudGlhbGx5IGxlYWRpbmcgdG8gY3VzdG9tZXIgZGlzc2F0aXNmYWN0aW9uIGFuZCBvcGVyYXRpb25hbCBpbmVmZmljaWVuY2llcywgdGh1cyByZXF1aXJpbmcgcHJvbXB0IGF0dGVudGlvbi4nLCAncmVmdXNhbCc6IE5vbmUsICdyb2xlJzogJ2Fzc2lzdGFudCcsICdhdWRpbyc6IE5vbmUsICdmdW5jdGlvbl9jYWxsJzogTm9uZSwgJ3Rvb2xfY2FsbHMnOiBOb25lfX1dLCAnY3JlYXRlZCc6IDE3MzQxOTAwNTAsICdtb2RlbCc6ICdncHQtNG8tMjAyNC0wOC0wNicsICdvYmplY3QnOiAnY2hhdC5jb21wbGV0aW9uJywgJ3NlcnZpY2VfdGllcic6IE5vbmUsICdzeXN0ZW1fZmluZ2VycHJpbnQnOiAnZnBfYTc5ZDhkYWMxZicsICd1c2FnZSc6IHsnY29tcGxldGlvbl90b2tlbnMnOiAyNywgJ3Byb21wdF90b2tlbnMnOiAxNjIsICd0b3RhbF90b2tlbnMnOiAxODksICdjb21wbGV0aW9uX3Rva2Vuc19kZXRhaWxzJzogeydhY2NlcHRlZF9wcmVkaWN0aW9uX3Rva2Vucyc6IDAsICdhdWRpb190b2tlbnMnOiAwLCAncmVhc29uaW5nX3Rva2Vucyc6IDAsICdyZWplY3RlZF9wcmVkaWN0aW9uX3Rva2Vucyc6IDB9LCAncHJvbXB0X3Rva2Vuc19kZXRhaWxzJzogeydhdWRpb190b2tlbnMnOiAwLCAnY2FjaGVkX3Rva2Vucyc6IDB9fX0iLDEzNTUuOTMyMjAzMzg5ODMwNCwxNDgxLjQ4MTQ4MTQ4MTQ4MTMsMC4wMDA1OTUsInsnaWQnOiAnY2hhdGNtcGwtQWVPTENKM0VVWVJ0ZU1LTEdFR1lCMzJBNGhHWW4nLCAnY2hvaWNlcyc6IFt7J2ZpbmlzaF9yZWFzb24nOiAnc3RvcCcsICdpbmRleCc6IDAsICdsb2dwcm9icyc6IE5vbmUsICdtZXNzYWdlJzogeydjb250ZW50JzogIiJOb1xuXG5UaGUgdGlja2V0IG1lbnRpb25zIGFuIGlzc3VlIHdpdGggdGhlIGFwcCdzIEdQUyBidXQgZG9lcyBub3QgZXhwbGljaXRseSBzdGF0ZSB0aGF0IHRoZSBjdXN0b21lciBpcyBhc2tpbmcgZm9yIGEgcmVmdW5kLiIiLCAncmVmdXNhbCc6IE5vbmUsICdyb2xlJzogJ2Fzc2lzdGFudCcsICdhdWRpbyc6IE5vbmUsICdmdW5jdGlvbl9jYWxsJzogTm9uZSwgJ3Rvb2xfY2FsbHMnOiBOb25lfX1dLCAnY3JlYXRlZCc6IDE3MzQxOTAwNTAsICdtb2RlbCc6ICdncHQtNG8tMjAyNC0wOC0wNicsICdvYmplY3QnOiAnY2hhdC5jb21wbGV0aW9uJywgJ3NlcnZpY2VfdGllcic6IE5vbmUsICdzeXN0ZW1fZmluZ2VycHJpbnQnOiAnZnBfYTc5ZDhkYWMxZicsICd1c2FnZSc6IHsnY29tcGxldGlvbl90b2tlbnMnOiAyNiwgJ3Byb21wdF90b2tlbnMnOiAxMTYsICd0b3RhbF90b2tlbnMnOiAxNDIsICdjb21wbGV0aW9uX3Rva2Vuc19kZXRhaWxzJzogeydhY2NlcHRlZF9wcmVkaWN0aW9uX3Rva2Vucyc6IDAsICdhdWRpb190b2tlbnMnOiAwLCAncmVhc29uaW5nX3Rva2Vucyc6IDAsICdyZWplY3RlZF9wcmVkaWN0aW9uX3Rva2Vucyc6IDB9LCAncHJvbXB0X3Rva2Vuc19kZXRhaWxzJzogeydhdWRpb190b2tlbnMnOiAwLCAnY2FjaGVkX3Rva2Vucyc6IDB9fX0iLDAsRG9lcyB0aGUgY3VzdG9tZXIgYXNrIGZvciBhIHJlZnVuZCBpbiB0aGlzIHRpY2tldD8gVGlja2V0OiB7eyB0aWNrZXQgfX0sIklmIHRoZSBwcmltYXJ5IGlzc3VlIGluIHRoaXMgdGlja2V0IGlzIHNhZmV0eSwgd2FzIHRoZXJlIGFuIGFjY2lkZW50IHdoZXJlIHNvbWVvbmUgd2FzIGh1cnQ/IFRpY2tldDoge3sgdGlja2V0IH19IixXaGF0IGlzIHRoZSBwcmltYXJ5IGlzc3VlIGluIHRoaXMgdGlja2V0PyBUaWNrZXQ6IHt7IHRpY2tldCB9fSxDaGVjayBhbGwgb2YgdGhlIGlzc3VlcyBtZW50aW9uZWQgaW4gdGhpcyB0aWNrZXQ6IHt7IHRpY2tldCB9fSwiT24gYSBzY2FsZSBmcm9tIDAgdG8gNSwgd2hhdCBpcyB0aGUgcHJpb3JpdHkgbGV2ZWwgb2YgdGhpcyB0aWNrZXQ/IFRpY2tldDoge3sgdGlja2V0IH19IixXaGF0IGlzIHRoZSBzZW50aW1lbnQgb2YgdGhpcyB0aWNrZXQ/IFRpY2tldDoge3sgdGlja2V0IH19LCJbJ3NhZmV0eScsICdjbGVhbmxpbmVzcycsICdkcml2ZXIgcGVyZm9ybWFuY2UnLCAnR1BTL3JvdXRlJywgJ2xvc3QgaXRlbScsICdvdGhlciddIiwiWydWZXJ5IHBvc2l0aXZlJywgJ1NvbWV3aGF0IHBvc2l0aXZlJywgJ05ldXRyYWwnLCAnU29tZXdoYXQgbmVnYXRpdmUnLCAnVmVyeSBuZWdhdGl2ZSddIiwsIlsnTm8nLCAnWWVzJ10iLCJbJ1llcycsICdObycsICdOb3QgYXBwbGljYWJsZSddIiwiWzAsIDEsIDIsIDMsIDQsIDVdIixsaW5lYXJfc2NhbGUsbXVsdGlwbGVfY2hvaWNlLG11bHRpcGxlX2Nob2ljZSx5ZXNfbm8sZnJlZV90ZXh0LGNoZWNrYm94LCxUaGUgdGlja2V0IG1lbnRpb25zIGFuIGlzc3VlIHdpdGggdGhlIGFwcCdzIEdQUyBidXQgZG9lcyBub3QgZXhwbGljaXRseSBzdGF0ZSB0aGF0IHRoZSBjdXN0b21lciBpcyBhc2tpbmcgZm9yIGEgcmVmdW5kLiwiVGhpcyBpc3N1ZSBpbXBhY3RzIHRoZSBjb3JlIGZ1bmN0aW9uYWxpdHkgb2YgdGhlIGFwcCwgcG90ZW50aWFsbHkgbGVhZGluZyB0byBjdXN0b21lciBkaXNzYXRpc2ZhY3Rpb24gYW5kIG9wZXJhdGlvbmFsIGluZWZmaWNpZW5jaWVzLCB0aHVzIHJlcXVpcmluZyBwcm9tcHQgYXR0ZW50aW9uLiIsIlRoZSBpc3N1ZSBtZW50aW9uZWQgaW4gdGhlIHRpY2tldCBpcyByZWxhdGVkIHRvIHRoZSBHUFMvcm91dGUsIGFzIGl0IGRlc2NyaWJlcyB0aGUgYXBwJ3MgR1BTIGRpcmVjdGluZyB0aGUgZHJpdmVyIHRvIHRoZSB3cm9uZyBwaWNrLXVwIGxvY2F0aW9uLiIsIlRoZSBzZW50aW1lbnQgaXMgc29tZXdoYXQgbmVnYXRpdmUgYmVjYXVzZSB0aGUgY3VzdG9tZXIgaXMgZXhwZXJpZW5jaW5nIGEgcHJvYmxlbSB3aXRoIHRoZSBhcHAncyBHUFMsIHdoaWNoIGlzIGxlYWRpbmcgdG8gYW4gaW5jb252ZW5pZW5jZS4iLCJUaGUgaXNzdWUgbWVudGlvbmVkIGlzIGFib3V0IEdQUyBpbmFjY3VyYWN5LCBhbmQgdGhlcmUncyBubyBpbmRpY2F0aW9uIG9mIGFuIGFjY2lkZW50IG9yIGluanVyeSBpbiB0aGUgdGlja2V0IGRlc2NyaXB0aW9uLiIsIlNvbWV3aGF0IG5lZ2F0aXZlICAKVGhlIHNlbnRpbWVudCBpcyBzb21ld2hhdCBuZWdhdGl2ZSBiZWNhdXNlIHRoZSBjdXN0b21lciBpcyBleHBlcmllbmNpbmcgYSBwcm9ibGVtIHdpdGggdGhlIGFwcCdzIEdQUywgd2hpY2ggaXMgbGVhZGluZyB0byBhbiBpbmNvbnZlbmllbmNlLiIsIlszXQoKVGhlIGlzc3VlIG1lbnRpb25lZCBpbiB0aGUgdGlja2V0IGlzIHJlbGF0ZWQgdG8gdGhlIEdQUy9yb3V0ZSwgYXMgaXQgZGVzY3JpYmVzIHRoZSBhcHAncyBHUFMgZGlyZWN0aW5nIHRoZSBkcml2ZXIgdG8gdGhlIHdyb25nIHBpY2stdXAgbG9jYXRpb24uIiwiTm8KClRoZSB0aWNrZXQgbWVudGlvbnMgYW4gaXNzdWUgd2l0aCB0aGUgYXBwJ3MgR1BTIGJ1dCBkb2VzIG5vdCBleHBsaWNpdGx5IHN0YXRlIHRoYXQgdGhlIGN1c3RvbWVyIGlzIGFza2luZyBmb3IgYSByZWZ1bmQuIiwiVGhlIHByaW1hcnkgaXNzdWUgaW4gdGhpcyB0aWNrZXQgaXMgdGhlIGluYWNjdXJhY3kgb2YgdGhlIGFwcCdzIEdQUywgd2hpY2ggcmVzdWx0ZWQgaW4gZGlyZWN0aW5nIHRoZSBkcml2ZXIgdG8gdGhlIHdyb25nIHBpY2stdXAgbG9jYXRpb24uIFRoaXMgY2FuIGxlYWQgdG8gZGVsYXlzIGFuZCBpbmNvbnZlbmllbmNlIGZvciBib3RoIHRoZSBkcml2ZXIgYW5kIHRoZSBjdXN0b21lciwgc28gaXQncyBpbXBvcnRhbnQgdG8gYWRkcmVzcyB0aGUgR1BTIGZ1bmN0aW9uYWxpdHkgdG8gZW5zdXJlIGl0IHByb3ZpZGVzIGFjY3VyYXRlIGRpcmVjdGlvbnMuIiwiTm8gIApUaGUgaXNzdWUgbWVudGlvbmVkIGlzIGFib3V0IEdQUyBpbmFjY3VyYWN5LCBhbmQgdGhlcmUncyBubyBpbmRpY2F0aW9uIG9mIGFuIGFjY2lkZW50IG9yIGluanVyeSBpbiB0aGUgdGlja2V0IGRlc2NyaXB0aW9uLiIsIjQgIApUaGlzIGlzc3VlIGltcGFjdHMgdGhlIGNvcmUgZnVuY3Rpb25hbGl0eSBvZiB0aGUgYXBwLCBwb3RlbnRpYWxseSBsZWFkaW5nIHRvIGN1c3RvbWVyIGRpc3NhdGlzZmFjdGlvbiBhbmQgb3BlcmF0aW9uYWwgaW5lZmZpY2llbmNpZXMsIHRodXMgcmVxdWlyaW5nIHByb21wdCBhdHRlbnRpb24uIg0KTm90IGFwcGxpY2FibGUsVmVyeSBwb3NpdGl2ZSxObywiVGhlIHByaW1hcnkgaXNzdWUgaW4gdGhpcyB0aWNrZXQgaXMgbm90IGEgcHJvYmxlbSBvciBjb21wbGFpbnQsIGJ1dCByYXRoZXIgYSBjb21wbGltZW50LiBUaGUgY3VzdG9tZXIgaXMgZXhwcmVzc2luZyBhcHByZWNpYXRpb24gZm9yIHRoZWlyIGRyaXZlcidzIGV4Y2VsbGVudCBuYXZpZ2F0aW9uIGFuZCB0aW1lIG1hbmFnZW1lbnQgc2tpbGxzIGR1cmluZyBydXNoIGhvdXIuIiwxLCJbJ2RyaXZlciBwZXJmb3JtYW5jZScsICdHUFMvcm91dGUnXSIsSSB3YW50IHRvIGNvbXBsaW1lbnQgbXkgZHJpdmVyJ3MgZXhjZWxsZW50IG5hdmlnYXRpb24gYW5kIHRpbWUgbWFuYWdlbWVudCBkdXJpbmcgcnVzaCBob3VyLixZb3UgYXJlIGFuIGV4cGVydCBjdXN0b21lciBzZXJ2aWNlIGFnZW50LixBZ2VudF8xNywxNSxZb3UgYXJlIGFuc3dlcmluZyBxdWVzdGlvbnMgYXMgaWYgeW91IHdlcmUgYSBodW1hbi4gRG8gbm90IGJyZWFrIGNoYXJhY3Rlci4sMCwxLDAsZ3B0LTRvLDAuNSxGYWxzZSwxMDAwLDMsV2hhdCBpcyB0aGUgcHJpbWFyeSBpc3N1ZSBpbiB0aGlzIHRpY2tldD8gVGlja2V0OiBJIHdhbnQgdG8gY29tcGxpbWVudCBteSBkcml2ZXIncyBleGNlbGxlbnQgbmF2aWdhdGlvbiBhbmQgdGltZSBtYW5hZ2VtZW50IGR1cmluZyBydXNoIGhvdXIuLCJZb3UgYXJlIGFuc3dlcmluZyBxdWVzdGlvbnMgYXMgaWYgeW91IHdlcmUgYSBodW1hbi4gRG8gbm90IGJyZWFrIGNoYXJhY3Rlci4gWW91ciB0cmFpdHM6IHsncGVyc29uYSc6ICdZb3UgYXJlIGFuIGV4cGVydCBjdXN0b21lciBzZXJ2aWNlIGFnZW50LicsICd5ZWFyc19leHBlcmllbmNlJzogMTV9IiwiWW91IGFyZSBhbnN3ZXJpbmcgcXVlc3Rpb25zIGFzIGlmIHlvdSB3ZXJlIGEgaHVtYW4uIERvIG5vdCBicmVhayBjaGFyYWN0ZXIuIFlvdXIgdHJhaXRzOiB7J3BlcnNvbmEnOiAnWW91IGFyZSBhbiBleHBlcnQgY3VzdG9tZXIgc2VydmljZSBhZ2VudC4nLCAneWVhcnNfZXhwZXJpZW5jZSc6IDE1fSIsIkNoZWNrIGFsbCBvZiB0aGUgaXNzdWVzIG1lbnRpb25lZCBpbiB0aGlzIHRpY2tldDogSSB3YW50IHRvIGNvbXBsaW1lbnQgbXkgZHJpdmVyJ3MgZXhjZWxsZW50IG5hdmlnYXRpb24gYW5kIHRpbWUgbWFuYWdlbWVudCBkdXJpbmcgcnVzaCBob3VyLgoKICAgIAowOiBzYWZldHkKICAgIAoxOiBjbGVhbmxpbmVzcwogICAgCjI6IGRyaXZlciBwZXJmb3JtYW5jZQogICAgCjM6IEdQUy9yb3V0ZQogICAgCjQ6IGxvc3QgaXRlbQogICAgCjU6IG90aGVyCiAgICAKCgoKCgoKUGxlYXNlIHJlc3BvbmQgb25seSB3aXRoIGEgY29tbWEtc2VwYXJhdGVkIGxpc3Qgb2YgdGhlIGNvZGUgb2YgdGhlIG9wdGlvbnMgdGhhdCBhcHBseSwgd2l0aCBzcXVhcmUgYnJhY2tldHMuIEUuZy4sIFswLCAxLCAzXQoKCkFmdGVyIHRoZSBhbnN3ZXIsIHlvdSBjYW4gcHV0IGEgY29tbWVudCBleHBsYWluaW5nIHlvdXIgY2hvaWNlIG9uIHRoZSBuZXh0IGxpbmUuIiwiT24gYSBzY2FsZSBmcm9tIDAgdG8gNSwgd2hhdCBpcyB0aGUgcHJpb3JpdHkgbGV2ZWwgb2YgdGhpcyB0aWNrZXQ/IFRpY2tldDogSSB3YW50IHRvIGNvbXBsaW1lbnQgbXkgZHJpdmVyJ3MgZXhjZWxsZW50IG5hdmlnYXRpb24gYW5kIHRpbWUgbWFuYWdlbWVudCBkdXJpbmcgcnVzaCBob3VyLgoKMCA6IExvd2VzdAoKMSA6IAoKMiA6IAoKMyA6IAoKNCA6IAoKNSA6IEhpZ2hlc3QKCk9ubHkgMSBvcHRpb24gbWF5IGJlIHNlbGVjdGVkLgoKUmVzcG9uZCBvbmx5IHdpdGggdGhlIGNvZGUgY29ycmVzcG9uZGluZyB0byBvbmUgb2YgdGhlIG9wdGlvbnMuIEUuZy4sICIiMSIiIG9yICIiNSIiIGJ5IGl0c2VsZi4KCkFmdGVyIHRoZSBhbnN3ZXIsIHlvdSBjYW4gcHV0IGEgY29tbWVudCBleHBsYWluaW5nIHdoeSB5b3UgY2hvc2UgdGhhdCBvcHRpb24gb24gdGhlIG5leHQgbGluZS4iLCJZb3UgYXJlIGFuc3dlcmluZyBxdWVzdGlvbnMgYXMgaWYgeW91IHdlcmUgYSBodW1hbi4gRG8gbm90IGJyZWFrIGNoYXJhY3Rlci4gWW91ciB0cmFpdHM6IHsncGVyc29uYSc6ICdZb3UgYXJlIGFuIGV4cGVydCBjdXN0b21lciBzZXJ2aWNlIGFnZW50LicsICd5ZWFyc19leHBlcmllbmNlJzogMTV9IiwiWW91IGFyZSBhbnN3ZXJpbmcgcXVlc3Rpb25zIGFzIGlmIHlvdSB3ZXJlIGEgaHVtYW4uIERvIG5vdCBicmVhayBjaGFyYWN0ZXIuIFlvdXIgdHJhaXRzOiB7J3BlcnNvbmEnOiAnWW91IGFyZSBhbiBleHBlcnQgY3VzdG9tZXIgc2VydmljZSBhZ2VudC4nLCAneWVhcnNfZXhwZXJpZW5jZSc6IDE1fSIsIllvdSBhcmUgYW5zd2VyaW5nIHF1ZXN0aW9ucyBhcyBpZiB5b3Ugd2VyZSBhIGh1bWFuLiBEbyBub3QgYnJlYWsgY2hhcmFjdGVyLiBZb3VyIHRyYWl0czogeydwZXJzb25hJzogJ1lvdSBhcmUgYW4gZXhwZXJ0IGN1c3RvbWVyIHNlcnZpY2UgYWdlbnQuJywgJ3llYXJzX2V4cGVyaWVuY2UnOiAxNX0iLCIKV2hhdCBpcyB0aGUgc2VudGltZW50IG9mIHRoaXMgdGlja2V0PyBUaWNrZXQ6IEkgd2FudCB0byBjb21wbGltZW50IG15IGRyaXZlcidzIGV4Y2VsbGVudCBuYXZpZ2F0aW9uIGFuZCB0aW1lIG1hbmFnZW1lbnQgZHVyaW5nIHJ1c2ggaG91ci4KCiAgICAKVmVyeSBwb3NpdGl2ZQogICAgClNvbWV3aGF0IHBvc2l0aXZlCiAgICAKTmV1dHJhbAogICAgClNvbWV3aGF0IG5lZ2F0aXZlCiAgICAKVmVyeSBuZWdhdGl2ZQogICAgCgpPbmx5IDEgb3B0aW9uIG1heSBiZSBzZWxlY3RlZC4KClJlc3BvbmQgb25seSB3aXRoIGEgc3RyaW5nIGNvcnJlc3BvbmRpbmcgdG8gb25lIG9mIHRoZSBvcHRpb25zLgoKCkFmdGVyIHRoZSBhbnN3ZXIsIHlvdSBjYW4gcHV0IGEgY29tbWVudCBleHBsYWluaW5nIHdoeSB5b3UgY2hvc2UgdGhhdCBvcHRpb24gb24gdGhlIG5leHQgbGluZS4iLCIKRG9lcyB0aGUgY3VzdG9tZXIgYXNrIGZvciBhIHJlZnVuZCBpbiB0aGlzIHRpY2tldD8gVGlja2V0OiBJIHdhbnQgdG8gY29tcGxpbWVudCBteSBkcml2ZXIncyBleGNlbGxlbnQgbmF2aWdhdGlvbiBhbmQgdGltZSBtYW5hZ2VtZW50IGR1cmluZyBydXNoIGhvdXIuCgogICAgCk5vCiAgICAKWWVzCiAgICAKCk9ubHkgMSBvcHRpb24gbWF5IGJlIHNlbGVjdGVkLgpQbGVhc2UgcmVzcG9uZCB3aXRoIGp1c3QgeW91ciBhbnN3ZXIuIAoKCkFmdGVyIHRoZSBhbnN3ZXIsIHlvdSBjYW4gcHV0IGEgY29tbWVudCBleHBsYWluaW5nIHlvdXIgcmVzcG9uc2UuIiwiWW91IGFyZSBhbnN3ZXJpbmcgcXVlc3Rpb25zIGFzIGlmIHlvdSB3ZXJlIGEgaHVtYW4uIERvIG5vdCBicmVhayBjaGFyYWN0ZXIuIFlvdXIgdHJhaXRzOiB7J3BlcnNvbmEnOiAnWW91IGFyZSBhbiBleHBlcnQgY3VzdG9tZXIgc2VydmljZSBhZ2VudC4nLCAneWVhcnNfZXhwZXJpZW5jZSc6IDE1fSIsIgpJZiB0aGUgcHJpbWFyeSBpc3N1ZSBpbiB0aGlzIHRpY2tldCBpcyBzYWZldHksIHdhcyB0aGVyZSBhbiBhY2NpZGVudCB3aGVyZSBzb21lb25lIHdhcyBodXJ0PyBUaWNrZXQ6IEkgd2FudCB0byBjb21wbGltZW50IG15IGRyaXZlcidzIGV4Y2VsbGVudCBuYXZpZ2F0aW9uIGFuZCB0aW1lIG1hbmFnZW1lbnQgZHVyaW5nIHJ1c2ggaG91ci4KCiAgICAKWWVzCiAgICAKTm8KICAgIApOb3QgYXBwbGljYWJsZQogICAgCgpPbmx5IDEgb3B0aW9uIG1heSBiZSBzZWxlY3RlZC4KClJlc3BvbmQgb25seSB3aXRoIGEgc3RyaW5nIGNvcnJlc3BvbmRpbmcgdG8gb25lIG9mIHRoZSBvcHRpb25zLgoKCkFmdGVyIHRoZSBhbnN3ZXIsIHlvdSBjYW4gcHV0IGEgY29tbWVudCBleHBsYWluaW5nIHdoeSB5b3UgY2hvc2UgdGhhdCBvcHRpb24gb24gdGhlIG5leHQgbGluZS4iLDAuMDAwNTUyNSwieydpZCc6ICdjaGF0Y21wbC1BZU9MQ3NGZlpJT3pFdjFsUkt0cEppck5IUjMweScsICdjaG9pY2VzJzogW3snZmluaXNoX3JlYXNvbic6ICdzdG9wJywgJ2luZGV4JzogMCwgJ2xvZ3Byb2JzJzogTm9uZSwgJ21lc3NhZ2UnOiB7J2NvbnRlbnQnOiAiIk5vdCBhcHBsaWNhYmxlXG5cblRoZSB0aWNrZXQgaXMgYSBjb21wbGltZW50IGFib3V0IHRoZSBkcml2ZXIncyBza2lsbHMgYW5kIGRvZXMgbm90IG1lbnRpb24gYW55IHNhZmV0eSBpc3N1ZXMgb3IgYWNjaWRlbnRzLiIiLCAncmVmdXNhbCc6IE5vbmUsICdyb2xlJzogJ2Fzc2lzdGFudCcsICdhdWRpbyc6IE5vbmUsICdmdW5jdGlvbl9jYWxsJzogTm9uZSwgJ3Rvb2xfY2FsbHMnOiBOb25lfX1dLCAnY3JlYXRlZCc6IDE3MzQxOTAwNTAsICdtb2RlbCc6ICdncHQtNG8tMjAyNC0wOC0wNicsICdvYmplY3QnOiAnY2hhdC5jb21wbGV0aW9uJywgJ3NlcnZpY2VfdGllcic6IE5vbmUsICdzeXN0ZW1fZmluZ2VycHJpbnQnOiAnZnBfOWZhYmE5ZjAzOCcsICd1c2FnZSc6IHsnY29tcGxldGlvbl90b2tlbnMnOiAyMiwgJ3Byb21wdF90b2tlbnMnOiAxMzUsICd0b3RhbF90b2tlbnMnOiAxNTcsICdjb21wbGV0aW9uX3Rva2Vuc19kZXRhaWxzJzogeydhY2NlcHRlZF9wcmVkaWN0aW9uX3Rva2Vucyc6IDAsICdhdWRpb190b2tlbnMnOiAwLCAncmVhc29uaW5nX3Rva2Vucyc6IDAsICdyZWplY3RlZF9wcmVkaWN0aW9uX3Rva2Vucyc6IDB9LCAncHJvbXB0X3Rva2Vuc19kZXRhaWxzJzogeydhdWRpb190b2tlbnMnOiAwLCAnY2FjaGVkX3Rva2Vucyc6IDB9fX0iLCJ7J2lkJzogJ2NoYXRjbXBsLUFlT0xDRXRHcEYzVU9XcXVVWHBqSTF1MDN2QllyJywgJ2Nob2ljZXMnOiBbeydmaW5pc2hfcmVhc29uJzogJ3N0b3AnLCAnaW5kZXgnOiAwLCAnbG9ncHJvYnMnOiBOb25lLCAnbWVzc2FnZSc6IHsnY29udGVudCc6ICIiVmVyeSBwb3NpdGl2ZVxuXG5UaGUgdGlja2V0IGV4cHJlc3NlcyBhIGNvbXBsaW1lbnQgYW5kIGFwcHJlY2lhdGlvbiBmb3IgdGhlIGRyaXZlcidzIGV4Y2VsbGVudCBza2lsbHMsIGluZGljYXRpbmcgYSB2ZXJ5IHBvc2l0aXZlIHNlbnRpbWVudC4iIiwgJ3JlZnVzYWwnOiBOb25lLCAncm9sZSc6ICdhc3Npc3RhbnQnLCAnYXVkaW8nOiBOb25lLCAnZnVuY3Rpb25fY2FsbCc6IE5vbmUsICd0b29sX2NhbGxzJzogTm9uZX19XSwgJ2NyZWF0ZWQnOiAxNzM0MTkwMDUwLCAnbW9kZWwnOiAnZ3B0LTRvLTIwMjQtMDgtMDYnLCAnb2JqZWN0JzogJ2NoYXQuY29tcGxldGlvbicsICdzZXJ2aWNlX3RpZXInOiBOb25lLCAnc3lzdGVtX2ZpbmdlcnByaW50JzogJ2ZwX2E3OWQ4ZGFjMWYnLCAndXNhZ2UnOiB7J2NvbXBsZXRpb25fdG9rZW5zJzogMjIsICdwcm9tcHRfdG9rZW5zJzogMTMzLCAndG90YWxfdG9rZW5zJzogMTU1LCAnY29tcGxldGlvbl90b2tlbnNfZGV0YWlscyc6IHsnYWNjZXB0ZWRfcHJlZGljdGlvbl90b2tlbnMnOiAwLCAnYXVkaW9fdG9rZW5zJzogMCwgJ3JlYXNvbmluZ190b2tlbnMnOiAwLCAncmVqZWN0ZWRfcHJlZGljdGlvbl90b2tlbnMnOiAwfSwgJ3Byb21wdF90b2tlbnNfZGV0YWlscyc6IHsnYXVkaW9fdG9rZW5zJzogMCwgJ2NhY2hlZF90b2tlbnMnOiAwfX19IiwxODA5Ljk1NDc1MTEzMTIyMTcsMTgwOS45NTQ3NTExMzEyMjE3LCJ7J2lkJzogJ2NoYXRjbXBsLUFlT0xDMWtFOFMyYmtheUVWY0VkbUhkNElKOXo1JywgJ2Nob2ljZXMnOiBbeydmaW5pc2hfcmVhc29uJzogJ3N0b3AnLCAnaW5kZXgnOiAwLCAnbG9ncHJvYnMnOiBOb25lLCAnbWVzc2FnZSc6IHsnY29udGVudCc6ICIiWzIsIDNdXG5cblRoZSBjb21wbGltZW50IHNwZWNpZmljYWxseSBtZW50aW9ucyB0aGUgZHJpdmVyJ3MgZXhjZWxsZW50IG5hdmlnYXRpb24sIHdoaWNoIHJlbGF0ZXMgdG8gR1BTL3JvdXRlICgzKSwgYW5kIHRpbWUgbWFuYWdlbWVudCwgd2hpY2ggcmVsYXRlcyB0byBkcml2ZXIgcGVyZm9ybWFuY2UgKDIpLiIiLCAncmVmdXNhbCc6IE5vbmUsICdyb2xlJzogJ2Fzc2lzdGFudCcsICdhdWRpbyc6IE5vbmUsICdmdW5jdGlvbl9jYWxsJzogTm9uZSwgJ3Rvb2xfY2FsbHMnOiBOb25lfX1dLCAnY3JlYXRlZCc6IDE3MzQxOTAwNTAsICdtb2RlbCc6ICdncHQtNG8tMjAyNC0wOC0wNicsICdvYmplY3QnOiAnY2hhdC5jb21wbGV0aW9uJywgJ3NlcnZpY2VfdGllcic6IE5vbmUsICdzeXN0ZW1fZmluZ2VycHJpbnQnOiAnZnBfYTc5ZDhkYWMxZicsICd1c2FnZSc6IHsnY29tcGxldGlvbl90b2tlbnMnOiAzNiwgJ3Byb21wdF90b2tlbnMnOiAxNTYsICd0b3RhbF90b2tlbnMnOiAxOTIsICdjb21wbGV0aW9uX3Rva2Vuc19kZXRhaWxzJzogeydhY2NlcHRlZF9wcmVkaWN0aW9uX3Rva2Vucyc6IDAsICdhdWRpb190b2tlbnMnOiAwLCAncmVhc29uaW5nX3Rva2Vucyc6IDAsICdyZWplY3RlZF9wcmVkaWN0aW9uX3Rva2Vucyc6IDB9LCAncHJvbXB0X3Rva2Vuc19kZXRhaWxzJzogeydhdWRpb190b2tlbnMnOiAwLCAnY2FjaGVkX3Rva2Vucyc6IDB9fX0iLDAuMDAwNzE3NSwxNzkzLjcyMTk3MzA5NDE3MDIsMC4wMDA1NTI1LDAuMDAwNzUsInsnaWQnOiAnY2hhdGNtcGwtQWVPTENUOFNEaHpCWmMzV0p6ekxnczVZUGFGQlAnLCAnY2hvaWNlcyc6IFt7J2ZpbmlzaF9yZWFzb24nOiAnc3RvcCcsICdpbmRleCc6IDAsICdsb2dwcm9icyc6IE5vbmUsICdtZXNzYWdlJzogeydjb250ZW50JzogIiJUaGUgcHJpbWFyeSBpc3N1ZSBpbiB0aGlzIHRpY2tldCBpcyBub3QgYSBwcm9ibGVtIG9yIGNvbXBsYWludCwgYnV0IHJhdGhlciBhIGNvbXBsaW1lbnQuIFRoZSBjdXN0b21lciBpcyBleHByZXNzaW5nIGFwcHJlY2lhdGlvbiBmb3IgdGhlaXIgZHJpdmVyJ3MgZXhjZWxsZW50IG5hdmlnYXRpb24gYW5kIHRpbWUgbWFuYWdlbWVudCBza2lsbHMgZHVyaW5nIHJ1c2ggaG91ci4iIiwgJ3JlZnVzYWwnOiBOb25lLCAncm9sZSc6ICdhc3Npc3RhbnQnLCAnYXVkaW8nOiBOb25lLCAnZnVuY3Rpb25fY2FsbCc6IE5vbmUsICd0b29sX2NhbGxzJzogTm9uZX19XSwgJ2NyZWF0ZWQnOiAxNzM0MTkwMDUwLCAnbW9kZWwnOiAnZ3B0LTRvLTIwMjQtMDgtMDYnLCAnb2JqZWN0JzogJ2NoYXQuY29tcGxldGlvbicsICdzZXJ2aWNlX3RpZXInOiBOb25lLCAnc3lzdGVtX2ZpbmdlcnByaW50JzogJ2ZwXzlmYWJhOWYwMzgnLCAndXNhZ2UnOiB7J2NvbXBsZXRpb25fdG9rZW5zJzogMzYsICdwcm9tcHRfdG9rZW5zJzogNzYsICd0b3RhbF90b2tlbnMnOiAxMTIsICdjb21wbGV0aW9uX3Rva2Vuc19kZXRhaWxzJzogeydhY2NlcHRlZF9wcmVkaWN0aW9uX3Rva2Vucyc6IDAsICdhdWRpb190b2tlbnMnOiAwLCAncmVhc29uaW5nX3Rva2Vucyc6IDAsICdyZWplY3RlZF9wcmVkaWN0aW9uX3Rva2Vucyc6IDB9LCAncHJvbXB0X3Rva2Vuc19kZXRhaWxzJzogeydhdWRpb190b2tlbnMnOiAwLCAnY2FjaGVkX3Rva2Vucyc6IDB9fX0iLDAuMDAwNTUsMTgxOC4xODE4MTgxODE4MTgsInsnaWQnOiAnY2hhdGNtcGwtQWVPTERZQ0lTbWo1MkxWZDB6SlhkQURrcFQwZlknLCAnY2hvaWNlcyc6IFt7J2ZpbmlzaF9yZWFzb24nOiAnc3RvcCcsICdpbmRleCc6IDAsICdsb2dwcm9icyc6IE5vbmUsICdtZXNzYWdlJzogeydjb250ZW50JzogIiIxICBcblRoaXMgdGlja2V0IGlzIGEgcG9zaXRpdmUgZmVlZGJhY2sgb3IgY29tcGxpbWVudCwgd2hpY2ggaXMgaW1wb3J0YW50IGZvciBhY2tub3dsZWRnaW5nIGdvb2Qgc2VydmljZSBidXQgZG9lc24ndCByZXF1aXJlIGltbWVkaWF0ZSBhY3Rpb24gb3IgcmVzb2x1dGlvbiBsaWtlIGEgY29tcGxhaW50IG9yIGlzc3VlIHdvdWxkLiIiLCAncmVmdXNhbCc6IE5vbmUsICdyb2xlJzogJ2Fzc2lzdGFudCcsICdhdWRpbyc6IE5vbmUsICdmdW5jdGlvbl9jYWxsJzogTm9uZSwgJ3Rvb2xfY2FsbHMnOiBOb25lfX1dLCAnY3JlYXRlZCc6IDE3MzQxOTAwNTEsICdtb2RlbCc6ICdncHQtNG8tMjAyNC0wOC0wNicsICdvYmplY3QnOiAnY2hhdC5jb21wbGV0aW9uJywgJ3NlcnZpY2VfdGllcic6IE5vbmUsICdzeXN0ZW1fZmluZ2VycHJpbnQnOiAnZnBfZjc4NWViNWY0NycsICd1c2FnZSc6IHsnY29tcGxldGlvbl90b2tlbnMnOiAzMiwgJ3Byb21wdF90b2tlbnMnOiAxNTksICd0b3RhbF90b2tlbnMnOiAxOTEsICdjb21wbGV0aW9uX3Rva2Vuc19kZXRhaWxzJzogeydhY2NlcHRlZF9wcmVkaWN0aW9uX3Rva2Vucyc6IDAsICdhdWRpb190b2tlbnMnOiAwLCAncmVhc29uaW5nX3Rva2Vucyc6IDAsICdyZWplY3RlZF9wcmVkaWN0aW9uX3Rva2Vucyc6IDB9LCAncHJvbXB0X3Rva2Vuc19kZXRhaWxzJzogeydhdWRpb190b2tlbnMnOiAwLCAnY2FjaGVkX3Rva2Vucyc6IDB9fX0iLDEzMzMuMzMzMzMzMzMzMzMzMywxMzkzLjcyODIyMjk5NjUxNTYsMC4wMDA1NTc1LCJ7J2lkJzogJ2NoYXRjbXBsLUFlT0xDTG16NDliSXdaa3BRM3laNHJHZE95R2lHJywgJ2Nob2ljZXMnOiBbeydmaW5pc2hfcmVhc29uJzogJ3N0b3AnLCAnaW5kZXgnOiAwLCAnbG9ncHJvYnMnOiBOb25lLCAnbWVzc2FnZSc6IHsnY29udGVudCc6ICIiTm9cblxuVGhlIGN1c3RvbWVyIGlzIGNvbXBsaW1lbnRpbmcgdGhlIGRyaXZlcidzIHBlcmZvcm1hbmNlLCBpbmRpY2F0aW5nIHNhdGlzZmFjdGlvbiB3aXRoIHRoZSBzZXJ2aWNlIHJhdGhlciB0aGFuIGRpc3NhdGlzZmFjdGlvbiB0aGF0IHdvdWxkIGxlYWQgdG8gYSByZWZ1bmQgcmVxdWVzdC4iIiwgJ3JlZnVzYWwnOiBOb25lLCAncm9sZSc6ICdhc3Npc3RhbnQnLCAnYXVkaW8nOiBOb25lLCAnZnVuY3Rpb25fY2FsbCc6IE5vbmUsICd0b29sX2NhbGxzJzogTm9uZX19XSwgJ2NyZWF0ZWQnOiAxNzM0MTkwMDUwLCAnbW9kZWwnOiAnZ3B0LTRvLTIwMjQtMDgtMDYnLCAnb2JqZWN0JzogJ2NoYXQuY29tcGxldGlvbicsICdzZXJ2aWNlX3RpZXInOiBOb25lLCAnc3lzdGVtX2ZpbmdlcnByaW50JzogJ2ZwX2E3OWQ4ZGFjMWYnLCAndXNhZ2UnOiB7J2NvbXBsZXRpb25fdG9rZW5zJzogMjcsICdwcm9tcHRfdG9rZW5zJzogMTEzLCAndG90YWxfdG9rZW5zJzogMTQwLCAnY29tcGxldGlvbl90b2tlbnNfZGV0YWlscyc6IHsnYWNjZXB0ZWRfcHJlZGljdGlvbl90b2tlbnMnOiAwLCAnYXVkaW9fdG9rZW5zJzogMCwgJ3JlYXNvbmluZ190b2tlbnMnOiAwLCAncmVqZWN0ZWRfcHJlZGljdGlvbl90b2tlbnMnOiAwfSwgJ3Byb21wdF90b2tlbnNfZGV0YWlscyc6IHsnYXVkaW9fdG9rZW5zJzogMCwgJ2NhY2hlZF90b2tlbnMnOiAwfX19IiwwLERvZXMgdGhlIGN1c3RvbWVyIGFzayBmb3IgYSByZWZ1bmQgaW4gdGhpcyB0aWNrZXQ/IFRpY2tldDoge3sgdGlja2V0IH19LCJJZiB0aGUgcHJpbWFyeSBpc3N1ZSBpbiB0aGlzIHRpY2tldCBpcyBzYWZldHksIHdhcyB0aGVyZSBhbiBhY2NpZGVudCB3aGVyZSBzb21lb25lIHdhcyBodXJ0PyBUaWNrZXQ6IHt7IHRpY2tldCB9fSIsV2hhdCBpcyB0aGUgcHJpbWFyeSBpc3N1ZSBpbiB0aGlzIHRpY2tldD8gVGlja2V0OiB7eyB0aWNrZXQgfX0sQ2hlY2sgYWxsIG9mIHRoZSBpc3N1ZXMgbWVudGlvbmVkIGluIHRoaXMgdGlja2V0OiB7eyB0aWNrZXQgfX0sIk9uIGEgc2NhbGUgZnJvbSAwIHRvIDUsIHdoYXQgaXMgdGhlIHByaW9yaXR5IGxldmVsIG9mIHRoaXMgdGlja2V0PyBUaWNrZXQ6IHt7IHRpY2tldCB9fSIsV2hhdCBpcyB0aGUgc2VudGltZW50IG9mIHRoaXMgdGlja2V0PyBUaWNrZXQ6IHt7IHRpY2tldCB9fSwiWydzYWZldHknLCAnY2xlYW5saW5lc3MnLCAnZHJpdmVyIHBlcmZvcm1hbmNlJywgJ0dQUy9yb3V0ZScsICdsb3N0IGl0ZW0nLCAnb3RoZXInXSIsIlsnVmVyeSBwb3NpdGl2ZScsICdTb21ld2hhdCBwb3NpdGl2ZScsICdOZXV0cmFsJywgJ1NvbWV3aGF0IG5lZ2F0aXZlJywgJ1ZlcnkgbmVnYXRpdmUnXSIsLCJbJ05vJywgJ1llcyddIiwiWydZZXMnLCAnTm8nLCAnTm90IGFwcGxpY2FibGUnXSIsIlswLCAxLCAyLCAzLCA0LCA1XSIsbGluZWFyX3NjYWxlLG11bHRpcGxlX2Nob2ljZSxtdWx0aXBsZV9jaG9pY2UseWVzX25vLGZyZWVfdGV4dCxjaGVja2JveCwsIlRoZSBjdXN0b21lciBpcyBjb21wbGltZW50aW5nIHRoZSBkcml2ZXIncyBwZXJmb3JtYW5jZSwgaW5kaWNhdGluZyBzYXRpc2ZhY3Rpb24gd2l0aCB0aGUgc2VydmljZSByYXRoZXIgdGhhbiBkaXNzYXRpc2ZhY3Rpb24gdGhhdCB3b3VsZCBsZWFkIHRvIGEgcmVmdW5kIHJlcXVlc3QuIiwiVGhpcyB0aWNrZXQgaXMgYSBwb3NpdGl2ZSBmZWVkYmFjayBvciBjb21wbGltZW50LCB3aGljaCBpcyBpbXBvcnRhbnQgZm9yIGFja25vd2xlZGdpbmcgZ29vZCBzZXJ2aWNlIGJ1dCBkb2Vzbid0IHJlcXVpcmUgaW1tZWRpYXRlIGFjdGlvbiBvciByZXNvbHV0aW9uIGxpa2UgYSBjb21wbGFpbnQgb3IgaXNzdWUgd291bGQuIiwiVGhlIGNvbXBsaW1lbnQgc3BlY2lmaWNhbGx5IG1lbnRpb25zIHRoZSBkcml2ZXIncyBleGNlbGxlbnQgbmF2aWdhdGlvbiwgd2hpY2ggcmVsYXRlcyB0byBHUFMvcm91dGUgKDMpLCBhbmQgdGltZSBtYW5hZ2VtZW50LCB3aGljaCByZWxhdGVzIHRvIGRyaXZlciBwZXJmb3JtYW5jZSAoMikuIiwiVGhlIHRpY2tldCBleHByZXNzZXMgYSBjb21wbGltZW50IGFuZCBhcHByZWNpYXRpb24gZm9yIHRoZSBkcml2ZXIncyBleGNlbGxlbnQgc2tpbGxzLCBpbmRpY2F0aW5nIGEgdmVyeSBwb3NpdGl2ZSBzZW50aW1lbnQuIixUaGUgdGlja2V0IGlzIGEgY29tcGxpbWVudCBhYm91dCB0aGUgZHJpdmVyJ3Mgc2tpbGxzIGFuZCBkb2VzIG5vdCBtZW50aW9uIGFueSBzYWZldHkgaXNzdWVzIG9yIGFjY2lkZW50cy4sIlZlcnkgcG9zaXRpdmUKClRoZSB0aWNrZXQgZXhwcmVzc2VzIGEgY29tcGxpbWVudCBhbmQgYXBwcmVjaWF0aW9uIGZvciB0aGUgZHJpdmVyJ3MgZXhjZWxsZW50IHNraWxscywgaW5kaWNhdGluZyBhIHZlcnkgcG9zaXRpdmUgc2VudGltZW50LiIsIlsyLCAzXQoKVGhlIGNvbXBsaW1lbnQgc3BlY2lmaWNhbGx5IG1lbnRpb25zIHRoZSBkcml2ZXIncyBleGNlbGxlbnQgbmF2aWdhdGlvbiwgd2hpY2ggcmVsYXRlcyB0byBHUFMvcm91dGUgKDMpLCBhbmQgdGltZSBtYW5hZ2VtZW50LCB3aGljaCByZWxhdGVzIHRvIGRyaXZlciBwZXJmb3JtYW5jZSAoMikuIiwiTm8KClRoZSBjdXN0b21lciBpcyBjb21wbGltZW50aW5nIHRoZSBkcml2ZXIncyBwZXJmb3JtYW5jZSwgaW5kaWNhdGluZyBzYXRpc2ZhY3Rpb24gd2l0aCB0aGUgc2VydmljZSByYXRoZXIgdGhhbiBkaXNzYXRpc2ZhY3Rpb24gdGhhdCB3b3VsZCBsZWFkIHRvIGEgcmVmdW5kIHJlcXVlc3QuIiwiVGhlIHByaW1hcnkgaXNzdWUgaW4gdGhpcyB0aWNrZXQgaXMgbm90IGEgcHJvYmxlbSBvciBjb21wbGFpbnQsIGJ1dCByYXRoZXIgYSBjb21wbGltZW50LiBUaGUgY3VzdG9tZXIgaXMgZXhwcmVzc2luZyBhcHByZWNpYXRpb24gZm9yIHRoZWlyIGRyaXZlcidzIGV4Y2VsbGVudCBuYXZpZ2F0aW9uIGFuZCB0aW1lIG1hbmFnZW1lbnQgc2tpbGxzIGR1cmluZyBydXNoIGhvdXIuIiwiTm90IGFwcGxpY2FibGUKClRoZSB0aWNrZXQgaXMgYSBjb21wbGltZW50IGFib3V0IHRoZSBkcml2ZXIncyBza2lsbHMgYW5kIGRvZXMgbm90IG1lbnRpb24gYW55IHNhZmV0eSBpc3N1ZXMgb3IgYWNjaWRlbnRzLiIsIjEgIApUaGlzIHRpY2tldCBpcyBhIHBvc2l0aXZlIGZlZWRiYWNrIG9yIGNvbXBsaW1lbnQsIHdoaWNoIGlzIGltcG9ydGFudCBmb3IgYWNrbm93bGVkZ2luZyBnb29kIHNlcnZpY2UgYnV0IGRvZXNuJ3QgcmVxdWlyZSBpbW1lZGlhdGUgYWN0aW9uIG9yIHJlc29sdXRpb24gbGlrZSBhIGNvbXBsYWludCBvciBpc3N1ZSB3b3VsZC4iDQpObyxTb21ld2hhdCBuZWdhdGl2ZSxObywiVGhlIHByaW1hcnkgaXNzdWUgaW4gdGhpcyB0aWNrZXQgaXMgdGhhdCB0aGUgdmVoaWNsZSBwcm92aWRlZCBkaWQgbm90IG1hdGNoIHRoZSBkZXNjcmlwdGlvbiBnaXZlbiBpbiB0aGUgYXBwLiBUaGlzIGRpc2NyZXBhbmN5IGNhdXNlZCBjb25mdXNpb24gYW5kIGNvbmNlcm4gZm9yIHRoZSBjdXN0b21lci4gSXQncyBpbXBvcnRhbnQgdG8gYWRkcmVzcyB0aGlzIGJ5IHZlcmlmeWluZyB0aGUgYWNjdXJhY3kgb2YgdmVoaWNsZSBkZXNjcmlwdGlvbnMgaW4gdGhlIGFwcCB0byBlbnN1cmUgdGhleSBhbGlnbiB3aXRoIHdoYXQgaXMgYWN0dWFsbHkgcHJvdmlkZWQsIHRoZXJlYnkgZW5oYW5jaW5nIGN1c3RvbWVyIHRydXN0IGFuZCBzYXRpc2ZhY3Rpb24uIiwzLFsnb3RoZXInXSxUaGUgdmVoaWNsZSBkaWRuJ3QgbWF0Y2ggdGhlIGRlc2NyaXB0aW9uIGluIHRoZSBhcHAuIEl0IHdhcyBjb25mdXNpbmcgYW5kIGNvbmNlcm5pbmcuLFlvdSBhcmUgYW4gZXhwZXJ0IGN1c3RvbWVyIHNlcnZpY2UgYWdlbnQuLEFnZW50XzE4LDE1LFlvdSBhcmUgYW5zd2VyaW5nIHF1ZXN0aW9ucyBhcyBpZiB5b3Ugd2VyZSBhIGh1bWFuLiBEbyBub3QgYnJlYWsgY2hhcmFjdGVyLiwwLDEsMCxncHQtNG8sMC41LEZhbHNlLDEwMDAsMyxXaGF0IGlzIHRoZSBwcmltYXJ5IGlzc3VlIGluIHRoaXMgdGlja2V0PyBUaWNrZXQ6IFRoZSB2ZWhpY2xlIGRpZG4ndCBtYXRjaCB0aGUgZGVzY3JpcHRpb24gaW4gdGhlIGFwcC4gSXQgd2FzIGNvbmZ1c2luZyBhbmQgY29uY2VybmluZy4sIllvdSBhcmUgYW5zd2VyaW5nIHF1ZXN0aW9ucyBhcyBpZiB5b3Ugd2VyZSBhIGh1bWFuLiBEbyBub3QgYnJlYWsgY2hhcmFjdGVyLiBZb3VyIHRyYWl0czogeydwZXJzb25hJzogJ1lvdSBhcmUgYW4gZXhwZXJ0IGN1c3RvbWVyIHNlcnZpY2UgYWdlbnQuJywgJ3llYXJzX2V4cGVyaWVuY2UnOiAxNX0iLCJZb3UgYXJlIGFuc3dlcmluZyBxdWVzdGlvbnMgYXMgaWYgeW91IHdlcmUgYSBodW1hbi4gRG8gbm90IGJyZWFrIGNoYXJhY3Rlci4gWW91ciB0cmFpdHM6IHsncGVyc29uYSc6ICdZb3UgYXJlIGFuIGV4cGVydCBjdXN0b21lciBzZXJ2aWNlIGFnZW50LicsICd5ZWFyc19leHBlcmllbmNlJzogMTV9IiwiQ2hlY2sgYWxsIG9mIHRoZSBpc3N1ZXMgbWVudGlvbmVkIGluIHRoaXMgdGlja2V0OiBUaGUgdmVoaWNsZSBkaWRuJ3QgbWF0Y2ggdGhlIGRlc2NyaXB0aW9uIGluIHRoZSBhcHAuIEl0IHdhcyBjb25mdXNpbmcgYW5kIGNvbmNlcm5pbmcuCgogICAgCjA6IHNhZmV0eQogICAgCjE6IGNsZWFubGluZXNzCiAgICAKMjogZHJpdmVyIHBlcmZvcm1hbmNlCiAgICAKMzogR1BTL3JvdXRlCiAgICAKNDogbG9zdCBpdGVtCiAgICAKNTogb3RoZXIKICAgIAoKCgoKCgpQbGVhc2UgcmVzcG9uZCBvbmx5IHdpdGggYSBjb21tYS1zZXBhcmF0ZWQgbGlzdCBvZiB0aGUgY29kZSBvZiB0aGUgb3B0aW9ucyB0aGF0IGFwcGx5LCB3aXRoIHNxdWFyZSBicmFja2V0cy4gRS5nLiwgWzAsIDEsIDNdCgoKQWZ0ZXIgdGhlIGFuc3dlciwgeW91IGNhbiBwdXQgYSBjb21tZW50IGV4cGxhaW5pbmcgeW91ciBjaG9pY2Ugb24gdGhlIG5leHQgbGluZS4iLCJPbiBhIHNjYWxlIGZyb20gMCB0byA1LCB3aGF0IGlzIHRoZSBwcmlvcml0eSBsZXZlbCBvZiB0aGlzIHRpY2tldD8gVGlja2V0OiBUaGUgdmVoaWNsZSBkaWRuJ3QgbWF0Y2ggdGhlIGRlc2NyaXB0aW9uIGluIHRoZSBhcHAuIEl0IHdhcyBjb25mdXNpbmcgYW5kIGNvbmNlcm5pbmcuCgowIDogTG93ZXN0CgoxIDogCgoyIDogCgozIDogCgo0IDogCgo1IDogSGlnaGVzdAoKT25seSAxIG9wdGlvbiBtYXkgYmUgc2VsZWN0ZWQuCgpSZXNwb25kIG9ubHkgd2l0aCB0aGUgY29kZSBjb3JyZXNwb25kaW5nIHRvIG9uZSBvZiB0aGUgb3B0aW9ucy4gRS5nLiwgIiIxIiIgb3IgIiI1IiIgYnkgaXRzZWxmLgoKQWZ0ZXIgdGhlIGFuc3dlciwgeW91IGNhbiBwdXQgYSBjb21tZW50IGV4cGxhaW5pbmcgd2h5IHlvdSBjaG9zZSB0aGF0IG9wdGlvbiBvbiB0aGUgbmV4dCBsaW5lLiIsIllvdSBhcmUgYW5zd2VyaW5nIHF1ZXN0aW9ucyBhcyBpZiB5b3Ugd2VyZSBhIGh1bWFuLiBEbyBub3QgYnJlYWsgY2hhcmFjdGVyLiBZb3VyIHRyYWl0czogeydwZXJzb25hJzogJ1lvdSBhcmUgYW4gZXhwZXJ0IGN1c3RvbWVyIHNlcnZpY2UgYWdlbnQuJywgJ3llYXJzX2V4cGVyaWVuY2UnOiAxNX0iLCJZb3UgYXJlIGFuc3dlcmluZyBxdWVzdGlvbnMgYXMgaWYgeW91IHdlcmUgYSBodW1hbi4gRG8gbm90IGJyZWFrIGNoYXJhY3Rlci4gWW91ciB0cmFpdHM6IHsncGVyc29uYSc6ICdZb3UgYXJlIGFuIGV4cGVydCBjdXN0b21lciBzZXJ2aWNlIGFnZW50LicsICd5ZWFyc19leHBlcmllbmNlJzogMTV9IiwiWW91IGFyZSBhbnN3ZXJpbmcgcXVlc3Rpb25zIGFzIGlmIHlvdSB3ZXJlIGEgaHVtYW4uIERvIG5vdCBicmVhayBjaGFyYWN0ZXIuIFlvdXIgdHJhaXRzOiB7J3BlcnNvbmEnOiAnWW91IGFyZSBhbiBleHBlcnQgY3VzdG9tZXIgc2VydmljZSBhZ2VudC4nLCAneWVhcnNfZXhwZXJpZW5jZSc6IDE1fSIsIgpXaGF0IGlzIHRoZSBzZW50aW1lbnQgb2YgdGhpcyB0aWNrZXQ/IFRpY2tldDogVGhlIHZlaGljbGUgZGlkbid0IG1hdGNoIHRoZSBkZXNjcmlwdGlvbiBpbiB0aGUgYXBwLiBJdCB3YXMgY29uZnVzaW5nIGFuZCBjb25jZXJuaW5nLgoKICAgIApWZXJ5IHBvc2l0aXZlCiAgICAKU29tZXdoYXQgcG9zaXRpdmUKICAgIApOZXV0cmFsCiAgICAKU29tZXdoYXQgbmVnYXRpdmUKICAgIApWZXJ5IG5lZ2F0aXZlCiAgICAKCk9ubHkgMSBvcHRpb24gbWF5IGJlIHNlbGVjdGVkLgoKUmVzcG9uZCBvbmx5IHdpdGggYSBzdHJpbmcgY29ycmVzcG9uZGluZyB0byBvbmUgb2YgdGhlIG9wdGlvbnMuCgoKQWZ0ZXIgdGhlIGFuc3dlciwgeW91IGNhbiBwdXQgYSBjb21tZW50IGV4cGxhaW5pbmcgd2h5IHlvdSBjaG9zZSB0aGF0IG9wdGlvbiBvbiB0aGUgbmV4dCBsaW5lLiIsIgpEb2VzIHRoZSBjdXN0b21lciBhc2sgZm9yIGEgcmVmdW5kIGluIHRoaXMgdGlja2V0PyBUaWNrZXQ6IFRoZSB2ZWhpY2xlIGRpZG4ndCBtYXRjaCB0aGUgZGVzY3JpcHRpb24gaW4gdGhlIGFwcC4gSXQgd2FzIGNvbmZ1c2luZyBhbmQgY29uY2VybmluZy4KCiAgICAKTm8KICAgIApZZXMKICAgIAoKT25seSAxIG9wdGlvbiBtYXkgYmUgc2VsZWN0ZWQuClBsZWFzZSByZXNwb25kIHdpdGgganVzdCB5b3VyIGFuc3dlci4gCgoKQWZ0ZXIgdGhlIGFuc3dlciwgeW91IGNhbiBwdXQgYSBjb21tZW50IGV4cGxhaW5pbmcgeW91ciByZXNwb25zZS4iLCJZb3UgYXJlIGFuc3dlcmluZyBxdWVzdGlvbnMgYXMgaWYgeW91IHdlcmUgYSBodW1hbi4gRG8gbm90IGJyZWFrIGNoYXJhY3Rlci4gWW91ciB0cmFpdHM6IHsncGVyc29uYSc6ICdZb3UgYXJlIGFuIGV4cGVydCBjdXN0b21lciBzZXJ2aWNlIGFnZW50LicsICd5ZWFyc19leHBlcmllbmNlJzogMTV9IiwiCklmIHRoZSBwcmltYXJ5IGlzc3VlIGluIHRoaXMgdGlja2V0IGlzIHNhZmV0eSwgd2FzIHRoZXJlIGFuIGFjY2lkZW50IHdoZXJlIHNvbWVvbmUgd2FzIGh1cnQ/IFRpY2tldDogVGhlIHZlaGljbGUgZGlkbid0IG1hdGNoIHRoZSBkZXNjcmlwdGlvbiBpbiB0aGUgYXBwLiBJdCB3YXMgY29uZnVzaW5nIGFuZCBjb25jZXJuaW5nLgoKICAgIApZZXMKICAgIApObwogICAgCk5vdCBhcHBsaWNhYmxlCiAgICAKCk9ubHkgMSBvcHRpb24gbWF5IGJlIHNlbGVjdGVkLgoKUmVzcG9uZCBvbmx5IHdpdGggYSBzdHJpbmcgY29ycmVzcG9uZGluZyB0byBvbmUgb2YgdGhlIG9wdGlvbnMuCgoKQWZ0ZXIgdGhlIGFuc3dlciwgeW91IGNhbiBwdXQgYSBjb21tZW50IGV4cGxhaW5pbmcgd2h5IHlvdSBjaG9zZSB0aGF0IG9wdGlvbiBvbiB0aGUgbmV4dCBsaW5lLiIsMC4wMDA1NDUsInsnaWQnOiAnY2hhdGNtcGwtQWVPTENtT2xuTjF1MnMzdWR3NXQ5V2wxRU51Y3QnLCAnY2hvaWNlcyc6IFt7J2ZpbmlzaF9yZWFzb24nOiAnc3RvcCcsICdpbmRleCc6IDAsICdsb2dwcm9icyc6IE5vbmUsICdtZXNzYWdlJzogeydjb250ZW50JzogIiJObyAgXG5UaGUgdGlja2V0IG1lbnRpb25zIGEgZGlzY3JlcGFuY3kgaW4gdmVoaWNsZSBkZXNjcmlwdGlvbiwgd2hpY2ggaXMgY29uY2VybmluZyBidXQgZG9lc24ndCBpbmRpY2F0ZSBhbiBhY2NpZGVudCBvciBpbmp1cnkuIiIsICdyZWZ1c2FsJzogTm9uZSwgJ3JvbGUnOiAnYXNzaXN0YW50JywgJ2F1ZGlvJzogTm9uZSwgJ2Z1bmN0aW9uX2NhbGwnOiBOb25lLCAndG9vbF9jYWxscyc6IE5vbmV9fV0sICdjcmVhdGVkJzogMTczNDE5MDA1MCwgJ21vZGVsJzogJ2dwdC00by0yMDI0LTA4LTA2JywgJ29iamVjdCc6ICdjaGF0LmNvbXBsZXRpb24nLCAnc2VydmljZV90aWVyJzogTm9uZSwgJ3N5c3RlbV9maW5nZXJwcmludCc6ICdmcF9hNzlkOGRhYzFmJywgJ3VzYWdlJzogeydjb21wbGV0aW9uX3Rva2Vucyc6IDIyLCAncHJvbXB0X3Rva2Vucyc6IDEzNiwgJ3RvdGFsX3Rva2Vucyc6IDE1OCwgJ2NvbXBsZXRpb25fdG9rZW5zX2RldGFpbHMnOiB7J2FjY2VwdGVkX3ByZWRpY3Rpb25fdG9rZW5zJzogMCwgJ2F1ZGlvX3Rva2Vucyc6IDAsICdyZWFzb25pbmdfdG9rZW5zJzogMCwgJ3JlamVjdGVkX3ByZWRpY3Rpb25fdG9rZW5zJzogMH0sICdwcm9tcHRfdG9rZW5zX2RldGFpbHMnOiB7J2F1ZGlvX3Rva2Vucyc6IDAsICdjYWNoZWRfdG9rZW5zJzogMH19fSIsInsnaWQnOiAnY2hhdGNtcGwtQWVPTERKMWhJbmlJMGxJYXlFUlYxUmt3ajFiNDcnLCAnY2hvaWNlcyc6IFt7J2ZpbmlzaF9yZWFzb24nOiAnc3RvcCcsICdpbmRleCc6IDAsICdsb2dwcm9icyc6IE5vbmUsICdtZXNzYWdlJzogeydjb250ZW50JzogJ1NvbWV3aGF0IG5lZ2F0aXZlICBcblRoZSB0aWNrZXQgZXhwcmVzc2VzIGNvbmZ1c2lvbiBhbmQgY29uY2VybiwgaW5kaWNhdGluZyBkaXNzYXRpc2ZhY3Rpb24gd2l0aCB0aGUgdmVoaWNsZSBub3QgbWF0Y2hpbmcgdGhlIGRlc2NyaXB0aW9uLicsICdyZWZ1c2FsJzogTm9uZSwgJ3JvbGUnOiAnYXNzaXN0YW50JywgJ2F1ZGlvJzogTm9uZSwgJ2Z1bmN0aW9uX2NhbGwnOiBOb25lLCAndG9vbF9jYWxscyc6IE5vbmV9fV0sICdjcmVhdGVkJzogMTczNDE5MDA1MSwgJ21vZGVsJzogJ2dwdC00by0yMDI0LTA4LTA2JywgJ29iamVjdCc6ICdjaGF0LmNvbXBsZXRpb24nLCAnc2VydmljZV90aWVyJzogTm9uZSwgJ3N5c3RlbV9maW5nZXJwcmludCc6ICdmcF85ZmFiYTlmMDM4JywgJ3VzYWdlJzogeydjb21wbGV0aW9uX3Rva2Vucyc6IDIxLCAncHJvbXB0X3Rva2Vucyc6IDEzNCwgJ3RvdGFsX3Rva2Vucyc6IDE1NSwgJ2NvbXBsZXRpb25fdG9rZW5zX2RldGFpbHMnOiB7J2FjY2VwdGVkX3ByZWRpY3Rpb25fdG9rZW5zJzogMCwgJ2F1ZGlvX3Rva2Vucyc6IDAsICdyZWFzb25pbmdfdG9rZW5zJzogMCwgJ3JlamVjdGVkX3ByZWRpY3Rpb25fdG9rZW5zJzogMH0sICdwcm9tcHRfdG9rZW5zX2RldGFpbHMnOiB7J2F1ZGlvX3Rva2Vucyc6IDAsICdjYWNoZWRfdG9rZW5zJzogMH19fSIsMTgzNC44NjIzODUzMjExMDA5LDE3MzkuMTMwNDM0NzgyNjA4NywieydpZCc6ICdjaGF0Y21wbC1BZU9MQ2lncFRsaEQ3Q2JxdWIycXlxbUZ6REozaCcsICdjaG9pY2VzJzogW3snZmluaXNoX3JlYXNvbic6ICdzdG9wJywgJ2luZGV4JzogMCwgJ2xvZ3Byb2JzJzogTm9uZSwgJ21lc3NhZ2UnOiB7J2NvbnRlbnQnOiAnWzVdICBcblRoZSBpc3N1ZSBtZW50aW9uZWQgaXMgdGhhdCB0aGUgdmVoaWNsZSBkaWRuXCd0IG1hdGNoIHRoZSBkZXNjcmlwdGlvbiBpbiB0aGUgYXBwLCB3aGljaCBmYWxscyB1bmRlciAiIm90aGVyIiIgY29uY2VybnMuJywgJ3JlZnVzYWwnOiBOb25lLCAncm9sZSc6ICdhc3Npc3RhbnQnLCAnYXVkaW8nOiBOb25lLCAnZnVuY3Rpb25fY2FsbCc6IE5vbmUsICd0b29sX2NhbGxzJzogTm9uZX19XSwgJ2NyZWF0ZWQnOiAxNzM0MTkwMDUwLCAnbW9kZWwnOiAnZ3B0LTRvLTIwMjQtMDgtMDYnLCAnb2JqZWN0JzogJ2NoYXQuY29tcGxldGlvbicsICdzZXJ2aWNlX3RpZXInOiBOb25lLCAnc3lzdGVtX2ZpbmdlcnByaW50JzogJ2ZwX2E3OWQ4ZGFjMWYnLCAndXNhZ2UnOiB7J2NvbXBsZXRpb25fdG9rZW5zJzogMjcsICdwcm9tcHRfdG9rZW5zJzogMTU3LCAndG90YWxfdG9rZW5zJzogMTg0LCAnY29tcGxldGlvbl90b2tlbnNfZGV0YWlscyc6IHsnYWNjZXB0ZWRfcHJlZGljdGlvbl90b2tlbnMnOiAwLCAnYXVkaW9fdG9rZW5zJzogMCwgJ3JlYXNvbmluZ190b2tlbnMnOiAwLCAncmVqZWN0ZWRfcHJlZGljdGlvbl90b2tlbnMnOiAwfSwgJ3Byb21wdF90b2tlbnNfZGV0YWlscyc6IHsnYXVkaW9fdG9rZW5zJzogMCwgJ2NhY2hlZF90b2tlbnMnOiAwfX19IiwwLjAwMDgyLDE3ODUuNzE0Mjg1NzE0Mjg1NiwwLjAwMDU3NSwwLjAwMDY2MjUsInsnaWQnOiAnY2hhdGNtcGwtQWVPTENnMTNGWTJIVnNwWDd4TzRSSlAybXczR2knLCAnY2hvaWNlcyc6IFt7J2ZpbmlzaF9yZWFzb24nOiAnc3RvcCcsICdpbmRleCc6IDAsICdsb2dwcm9icyc6IE5vbmUsICdtZXNzYWdlJzogeydjb250ZW50JzogIiJUaGUgcHJpbWFyeSBpc3N1ZSBpbiB0aGlzIHRpY2tldCBpcyB0aGF0IHRoZSB2ZWhpY2xlIHByb3ZpZGVkIGRpZCBub3QgbWF0Y2ggdGhlIGRlc2NyaXB0aW9uIGdpdmVuIGluIHRoZSBhcHAuIFRoaXMgZGlzY3JlcGFuY3kgY2F1c2VkIGNvbmZ1c2lvbiBhbmQgY29uY2VybiBmb3IgdGhlIGN1c3RvbWVyLiBJdCdzIGltcG9ydGFudCB0byBhZGRyZXNzIHRoaXMgYnkgdmVyaWZ5aW5nIHRoZSBhY2N1cmFjeSBvZiB2ZWhpY2xlIGRlc2NyaXB0aW9ucyBpbiB0aGUgYXBwIHRvIGVuc3VyZSB0aGV5IGFsaWduIHdpdGggd2hhdCBpcyBhY3R1YWxseSBwcm92aWRlZCwgdGhlcmVieSBlbmhhbmNpbmcgY3VzdG9tZXIgdHJ1c3QgYW5kIHNhdGlzZmFjdGlvbi4iIiwgJ3JlZnVzYWwnOiBOb25lLCAncm9sZSc6ICdhc3Npc3RhbnQnLCAnYXVkaW8nOiBOb25lLCAnZnVuY3Rpb25fY2FsbCc6IE5vbmUsICd0b29sX2NhbGxzJzogTm9uZX19XSwgJ2NyZWF0ZWQnOiAxNzM0MTkwMDUwLCAnbW9kZWwnOiAnZ3B0LTRvLTIwMjQtMDgtMDYnLCAnb2JqZWN0JzogJ2NoYXQuY29tcGxldGlvbicsICdzZXJ2aWNlX3RpZXInOiBOb25lLCAnc3lzdGVtX2ZpbmdlcnByaW50JzogJ2ZwX2E3OWQ4ZGFjMWYnLCAndXNhZ2UnOiB7J2NvbXBsZXRpb25fdG9rZW5zJzogNjMsICdwcm9tcHRfdG9rZW5zJzogNzcsICd0b3RhbF90b2tlbnMnOiAxNDAsICdjb21wbGV0aW9uX3Rva2Vuc19kZXRhaWxzJzogeydhY2NlcHRlZF9wcmVkaWN0aW9uX3Rva2Vucyc6IDAsICdhdWRpb190b2tlbnMnOiAwLCAncmVhc29uaW5nX3Rva2Vucyc6IDAsICdyZWplY3RlZF9wcmVkaWN0aW9uX3Rva2Vucyc6IDB9LCAncHJvbXB0X3Rva2Vuc19kZXRhaWxzJzogeydhdWRpb190b2tlbnMnOiAwLCAnY2FjaGVkX3Rva2Vucyc6IDB9fX0iLDAuMDAwODIyNSwxMjE1LjgwNTQ3MTEyNDYyLCJ7J2lkJzogJ2NoYXRjbXBsLUFlT0xEam1haEVmQ0JGYzFTRVRjS25yand6NTN6JywgJ2Nob2ljZXMnOiBbeydmaW5pc2hfcmVhc29uJzogJ3N0b3AnLCAnaW5kZXgnOiAwLCAnbG9ncHJvYnMnOiBOb25lLCAnbWVzc2FnZSc6IHsnY29udGVudCc6ICczICBcblRoaXMgdGlja2V0IGludm9sdmVzIGEgZGlzY3JlcGFuY3kgdGhhdCBjb3VsZCBwb3RlbnRpYWxseSBhZmZlY3QgY3VzdG9tZXIgdHJ1c3QgYW5kIHNhZmV0eSwgc28gaXQgcmVxdWlyZXMgcHJvbXB0IGF0dGVudGlvbi4gSG93ZXZlciwgaXQgZG9lcyBub3QgaW5kaWNhdGUgYW4gaW1tZWRpYXRlIGRhbmdlciBvciBlbWVyZ2VuY3ksIHNvIGl0IGlzIG5vdCB0aGUgaGlnaGVzdCBwcmlvcml0eS4nLCAncmVmdXNhbCc6IE5vbmUsICdyb2xlJzogJ2Fzc2lzdGFudCcsICdhdWRpbyc6IE5vbmUsICdmdW5jdGlvbl9jYWxsJzogTm9uZSwgJ3Rvb2xfY2FsbHMnOiBOb25lfX1dLCAnY3JlYXRlZCc6IDE3MzQxOTAwNTEsICdtb2RlbCc6ICdncHQtNG8tMjAyNC0wOC0wNicsICdvYmplY3QnOiAnY2hhdC5jb21wbGV0aW9uJywgJ3NlcnZpY2VfdGllcic6IE5vbmUsICdzeXN0ZW1fZmluZ2VycHJpbnQnOiAnZnBfYTc5ZDhkYWMxZicsICd1c2FnZSc6IHsnY29tcGxldGlvbl90b2tlbnMnOiA0MiwgJ3Byb21wdF90b2tlbnMnOiAxNjAsICd0b3RhbF90b2tlbnMnOiAyMDIsICdjb21wbGV0aW9uX3Rva2Vuc19kZXRhaWxzJzogeydhY2NlcHRlZF9wcmVkaWN0aW9uX3Rva2Vucyc6IDAsICdhdWRpb190b2tlbnMnOiAwLCAncmVhc29uaW5nX3Rva2Vucyc6IDAsICdyZWplY3RlZF9wcmVkaWN0aW9uX3Rva2Vucyc6IDB9LCAncHJvbXB0X3Rva2Vuc19kZXRhaWxzJzogeydhdWRpb190b2tlbnMnOiAwLCAnY2FjaGVkX3Rva2Vucyc6IDB9fX0iLDE1MDkuNDMzOTYyMjY0MTUxLDEyMTkuNTEyMTk1MTIxOTUxMiwwLjAwMDU2MDAwMDAwMDAwMDAwMDEsInsnaWQnOiAnY2hhdGNtcGwtQWVPTENsa2c1ZUdsV3ZiS3FENzRHQWN5bzVwc00nLCAnY2hvaWNlcyc6IFt7J2ZpbmlzaF9yZWFzb24nOiAnc3RvcCcsICdpbmRleCc6IDAsICdsb2dwcm9icyc6IE5vbmUsICdtZXNzYWdlJzogeydjb250ZW50JzogJ05vXG5cblRoZSBjdXN0b21lciBleHByZXNzZWQgY29uZnVzaW9uIGFuZCBjb25jZXJuIGFib3V0IHRoZSB2ZWhpY2xlIG5vdCBtYXRjaGluZyB0aGUgZGVzY3JpcHRpb24sIGJ1dCB0aGVyZSBpcyBubyBleHBsaWNpdCByZXF1ZXN0IGZvciBhIHJlZnVuZCBpbiB0aGUgdGlja2V0LicsICdyZWZ1c2FsJzogTm9uZSwgJ3JvbGUnOiAnYXNzaXN0YW50JywgJ2F1ZGlvJzogTm9uZSwgJ2Z1bmN0aW9uX2NhbGwnOiBOb25lLCAndG9vbF9jYWxscyc6IE5vbmV9fV0sICdjcmVhdGVkJzogMTczNDE5MDA1MCwgJ21vZGVsJzogJ2dwdC00by0yMDI0LTA4LTA2JywgJ29iamVjdCc6ICdjaGF0LmNvbXBsZXRpb24nLCAnc2VydmljZV90aWVyJzogTm9uZSwgJ3N5c3RlbV9maW5nZXJwcmludCc6ICdmcF9hNzlkOGRhYzFmJywgJ3VzYWdlJzogeydjb21wbGV0aW9uX3Rva2Vucyc6IDI5LCAncHJvbXB0X3Rva2Vucyc6IDExNCwgJ3RvdGFsX3Rva2Vucyc6IDE0MywgJ2NvbXBsZXRpb25fdG9rZW5zX2RldGFpbHMnOiB7J2FjY2VwdGVkX3ByZWRpY3Rpb25fdG9rZW5zJzogMCwgJ2F1ZGlvX3Rva2Vucyc6IDAsICdyZWFzb25pbmdfdG9rZW5zJzogMCwgJ3JlamVjdGVkX3ByZWRpY3Rpb25fdG9rZW5zJzogMH0sICdwcm9tcHRfdG9rZW5zX2RldGFpbHMnOiB7J2F1ZGlvX3Rva2Vucyc6IDAsICdjYWNoZWRfdG9rZW5zJzogMH19fSIsMCxEb2VzIHRoZSBjdXN0b21lciBhc2sgZm9yIGEgcmVmdW5kIGluIHRoaXMgdGlja2V0PyBUaWNrZXQ6IHt7IHRpY2tldCB9fSwiSWYgdGhlIHByaW1hcnkgaXNzdWUgaW4gdGhpcyB0aWNrZXQgaXMgc2FmZXR5LCB3YXMgdGhlcmUgYW4gYWNjaWRlbnQgd2hlcmUgc29tZW9uZSB3YXMgaHVydD8gVGlja2V0OiB7eyB0aWNrZXQgfX0iLFdoYXQgaXMgdGhlIHByaW1hcnkgaXNzdWUgaW4gdGhpcyB0aWNrZXQ/IFRpY2tldDoge3sgdGlja2V0IH19LENoZWNrIGFsbCBvZiB0aGUgaXNzdWVzIG1lbnRpb25lZCBpbiB0aGlzIHRpY2tldDoge3sgdGlja2V0IH19LCJPbiBhIHNjYWxlIGZyb20gMCB0byA1LCB3aGF0IGlzIHRoZSBwcmlvcml0eSBsZXZlbCBvZiB0aGlzIHRpY2tldD8gVGlja2V0OiB7eyB0aWNrZXQgfX0iLFdoYXQgaXMgdGhlIHNlbnRpbWVudCBvZiB0aGlzIHRpY2tldD8gVGlja2V0OiB7eyB0aWNrZXQgfX0sIlsnc2FmZXR5JywgJ2NsZWFubGluZXNzJywgJ2RyaXZlciBwZXJmb3JtYW5jZScsICdHUFMvcm91dGUnLCAnbG9zdCBpdGVtJywgJ290aGVyJ10iLCJbJ1ZlcnkgcG9zaXRpdmUnLCAnU29tZXdoYXQgcG9zaXRpdmUnLCAnTmV1dHJhbCcsICdTb21ld2hhdCBuZWdhdGl2ZScsICdWZXJ5IG5lZ2F0aXZlJ10iLCwiWydObycsICdZZXMnXSIsIlsnWWVzJywgJ05vJywgJ05vdCBhcHBsaWNhYmxlJ10iLCJbMCwgMSwgMiwgMywgNCwgNV0iLGxpbmVhcl9zY2FsZSxtdWx0aXBsZV9jaG9pY2UsbXVsdGlwbGVfY2hvaWNlLHllc19ubyxmcmVlX3RleHQsY2hlY2tib3gsLCJUaGUgY3VzdG9tZXIgZXhwcmVzc2VkIGNvbmZ1c2lvbiBhbmQgY29uY2VybiBhYm91dCB0aGUgdmVoaWNsZSBub3QgbWF0Y2hpbmcgdGhlIGRlc2NyaXB0aW9uLCBidXQgdGhlcmUgaXMgbm8gZXhwbGljaXQgcmVxdWVzdCBmb3IgYSByZWZ1bmQgaW4gdGhlIHRpY2tldC4iLCJUaGlzIHRpY2tldCBpbnZvbHZlcyBhIGRpc2NyZXBhbmN5IHRoYXQgY291bGQgcG90ZW50aWFsbHkgYWZmZWN0IGN1c3RvbWVyIHRydXN0IGFuZCBzYWZldHksIHNvIGl0IHJlcXVpcmVzIHByb21wdCBhdHRlbnRpb24uIEhvd2V2ZXIsIGl0IGRvZXMgbm90IGluZGljYXRlIGFuIGltbWVkaWF0ZSBkYW5nZXIgb3IgZW1lcmdlbmN5LCBzbyBpdCBpcyBub3QgdGhlIGhpZ2hlc3QgcHJpb3JpdHkuIiwiVGhlIGlzc3VlIG1lbnRpb25lZCBpcyB0aGF0IHRoZSB2ZWhpY2xlIGRpZG4ndCBtYXRjaCB0aGUgZGVzY3JpcHRpb24gaW4gdGhlIGFwcCwgd2hpY2ggZmFsbHMgdW5kZXIgIiJvdGhlciIiIGNvbmNlcm5zLiIsIlRoZSB0aWNrZXQgZXhwcmVzc2VzIGNvbmZ1c2lvbiBhbmQgY29uY2VybiwgaW5kaWNhdGluZyBkaXNzYXRpc2ZhY3Rpb24gd2l0aCB0aGUgdmVoaWNsZSBub3QgbWF0Y2hpbmcgdGhlIGRlc2NyaXB0aW9uLiIsIlRoZSB0aWNrZXQgbWVudGlvbnMgYSBkaXNjcmVwYW5jeSBpbiB2ZWhpY2xlIGRlc2NyaXB0aW9uLCB3aGljaCBpcyBjb25jZXJuaW5nIGJ1dCBkb2Vzbid0IGluZGljYXRlIGFuIGFjY2lkZW50IG9yIGluanVyeS4iLCJTb21ld2hhdCBuZWdhdGl2ZSAgClRoZSB0aWNrZXQgZXhwcmVzc2VzIGNvbmZ1c2lvbiBhbmQgY29uY2VybiwgaW5kaWNhdGluZyBkaXNzYXRpc2ZhY3Rpb24gd2l0aCB0aGUgdmVoaWNsZSBub3QgbWF0Y2hpbmcgdGhlIGRlc2NyaXB0aW9uLiIsIls1XSAgClRoZSBpc3N1ZSBtZW50aW9uZWQgaXMgdGhhdCB0aGUgdmVoaWNsZSBkaWRuJ3QgbWF0Y2ggdGhlIGRlc2NyaXB0aW9uIGluIHRoZSBhcHAsIHdoaWNoIGZhbGxzIHVuZGVyICIib3RoZXIiIiBjb25jZXJucy4iLCJObwoKVGhlIGN1c3RvbWVyIGV4cHJlc3NlZCBjb25mdXNpb24gYW5kIGNvbmNlcm4gYWJvdXQgdGhlIHZlaGljbGUgbm90IG1hdGNoaW5nIHRoZSBkZXNjcmlwdGlvbiwgYnV0IHRoZXJlIGlzIG5vIGV4cGxpY2l0IHJlcXVlc3QgZm9yIGEgcmVmdW5kIGluIHRoZSB0aWNrZXQuIiwiVGhlIHByaW1hcnkgaXNzdWUgaW4gdGhpcyB0aWNrZXQgaXMgdGhhdCB0aGUgdmVoaWNsZSBwcm92aWRlZCBkaWQgbm90IG1hdGNoIHRoZSBkZXNjcmlwdGlvbiBnaXZlbiBpbiB0aGUgYXBwLiBUaGlzIGRpc2NyZXBhbmN5IGNhdXNlZCBjb25mdXNpb24gYW5kIGNvbmNlcm4gZm9yIHRoZSBjdXN0b21lci4gSXQncyBpbXBvcnRhbnQgdG8gYWRkcmVzcyB0aGlzIGJ5IHZlcmlmeWluZyB0aGUgYWNjdXJhY3kgb2YgdmVoaWNsZSBkZXNjcmlwdGlvbnMgaW4gdGhlIGFwcCB0byBlbnN1cmUgdGhleSBhbGlnbiB3aXRoIHdoYXQgaXMgYWN0dWFsbHkgcHJvdmlkZWQsIHRoZXJlYnkgZW5oYW5jaW5nIGN1c3RvbWVyIHRydXN0IGFuZCBzYXRpc2ZhY3Rpb24uIiwiTm8gIApUaGUgdGlja2V0IG1lbnRpb25zIGEgZGlzY3JlcGFuY3kgaW4gdmVoaWNsZSBkZXNjcmlwdGlvbiwgd2hpY2ggaXMgY29uY2VybmluZyBidXQgZG9lc24ndCBpbmRpY2F0ZSBhbiBhY2NpZGVudCBvciBpbmp1cnkuIiwiMyAgClRoaXMgdGlja2V0IGludm9sdmVzIGEgZGlzY3JlcGFuY3kgdGhhdCBjb3VsZCBwb3RlbnRpYWxseSBhZmZlY3QgY3VzdG9tZXIgdHJ1c3QgYW5kIHNhZmV0eSwgc28gaXQgcmVxdWlyZXMgcHJvbXB0IGF0dGVudGlvbi4gSG93ZXZlciwgaXQgZG9lcyBub3QgaW5kaWNhdGUgYW4gaW1tZWRpYXRlIGRhbmdlciBvciBlbWVyZ2VuY3ksIHNvIGl0IGlzIG5vdCB0aGUgaGlnaGVzdCBwcmlvcml0eS4iDQpOb3QgYXBwbGljYWJsZSxOZXV0cmFsLE5vLFRoZSBwcmltYXJ5IGlzc3VlIGluIHRoaXMgdGlja2V0IGlzIGEgcHJvYmxlbSB3aXRoIHBheW1lbnQgcHJvY2Vzc2luZyBhZnRlciB0aGUgY3VzdG9tZXIncyBsYXN0IHJpZGUuIFRoZSBjdXN0b21lciBpcyByZXF1ZXN0aW5nIGFzc2lzdGFuY2UgdG8gaW52ZXN0aWdhdGUgYW5kIHJlc29sdmUgdGhlIHBheW1lbnQgaXNzdWUuLDMsWydvdGhlciddLEkgZmFjZWQgYW4gaXNzdWUgd2l0aCBwYXltZW50IHByb2Nlc3NpbmcgYWZ0ZXIgbXkgbGFzdCByaWRlLiBDYW4geW91IGxvb2sgaW50byB0aGlzPyxZb3UgYXJlIGFuIGV4cGVydCBjdXN0b21lciBzZXJ2aWNlIGFnZW50LixBZ2VudF8xOSwxNSxZb3UgYXJlIGFuc3dlcmluZyBxdWVzdGlvbnMgYXMgaWYgeW91IHdlcmUgYSBodW1hbi4gRG8gbm90IGJyZWFrIGNoYXJhY3Rlci4sMCwxLDAsZ3B0LTRvLDAuNSxGYWxzZSwxMDAwLDMsV2hhdCBpcyB0aGUgcHJpbWFyeSBpc3N1ZSBpbiB0aGlzIHRpY2tldD8gVGlja2V0OiBJIGZhY2VkIGFuIGlzc3VlIHdpdGggcGF5bWVudCBwcm9jZXNzaW5nIGFmdGVyIG15IGxhc3QgcmlkZS4gQ2FuIHlvdSBsb29rIGludG8gdGhpcz8sIllvdSBhcmUgYW5zd2VyaW5nIHF1ZXN0aW9ucyBhcyBpZiB5b3Ugd2VyZSBhIGh1bWFuLiBEbyBub3QgYnJlYWsgY2hhcmFjdGVyLiBZb3VyIHRyYWl0czogeydwZXJzb25hJzogJ1lvdSBhcmUgYW4gZXhwZXJ0IGN1c3RvbWVyIHNlcnZpY2UgYWdlbnQuJywgJ3llYXJzX2V4cGVyaWVuY2UnOiAxNX0iLCJZb3UgYXJlIGFuc3dlcmluZyBxdWVzdGlvbnMgYXMgaWYgeW91IHdlcmUgYSBodW1hbi4gRG8gbm90IGJyZWFrIGNoYXJhY3Rlci4gWW91ciB0cmFpdHM6IHsncGVyc29uYSc6ICdZb3UgYXJlIGFuIGV4cGVydCBjdXN0b21lciBzZXJ2aWNlIGFnZW50LicsICd5ZWFyc19leHBlcmllbmNlJzogMTV9IiwiQ2hlY2sgYWxsIG9mIHRoZSBpc3N1ZXMgbWVudGlvbmVkIGluIHRoaXMgdGlja2V0OiBJIGZhY2VkIGFuIGlzc3VlIHdpdGggcGF5bWVudCBwcm9jZXNzaW5nIGFmdGVyIG15IGxhc3QgcmlkZS4gQ2FuIHlvdSBsb29rIGludG8gdGhpcz8KCiAgICAKMDogc2FmZXR5CiAgICAKMTogY2xlYW5saW5lc3MKICAgIAoyOiBkcml2ZXIgcGVyZm9ybWFuY2UKICAgIAozOiBHUFMvcm91dGUKICAgIAo0OiBsb3N0IGl0ZW0KICAgIAo1OiBvdGhlcgogICAgCgoKCgoKClBsZWFzZSByZXNwb25kIG9ubHkgd2l0aCBhIGNvbW1hLXNlcGFyYXRlZCBsaXN0IG9mIHRoZSBjb2RlIG9mIHRoZSBvcHRpb25zIHRoYXQgYXBwbHksIHdpdGggc3F1YXJlIGJyYWNrZXRzLiBFLmcuLCBbMCwgMSwgM10KCgpBZnRlciB0aGUgYW5zd2VyLCB5b3UgY2FuIHB1dCBhIGNvbW1lbnQgZXhwbGFpbmluZyB5b3VyIGNob2ljZSBvbiB0aGUgbmV4dCBsaW5lLiIsIk9uIGEgc2NhbGUgZnJvbSAwIHRvIDUsIHdoYXQgaXMgdGhlIHByaW9yaXR5IGxldmVsIG9mIHRoaXMgdGlja2V0PyBUaWNrZXQ6IEkgZmFjZWQgYW4gaXNzdWUgd2l0aCBwYXltZW50IHByb2Nlc3NpbmcgYWZ0ZXIgbXkgbGFzdCByaWRlLiBDYW4geW91IGxvb2sgaW50byB0aGlzPwoKMCA6IExvd2VzdAoKMSA6IAoKMiA6IAoKMyA6IAoKNCA6IAoKNSA6IEhpZ2hlc3QKCk9ubHkgMSBvcHRpb24gbWF5IGJlIHNlbGVjdGVkLgoKUmVzcG9uZCBvbmx5IHdpdGggdGhlIGNvZGUgY29ycmVzcG9uZGluZyB0byBvbmUgb2YgdGhlIG9wdGlvbnMuIEUuZy4sICIiMSIiIG9yICIiNSIiIGJ5IGl0c2VsZi4KCkFmdGVyIHRoZSBhbnN3ZXIsIHlvdSBjYW4gcHV0IGEgY29tbWVudCBleHBsYWluaW5nIHdoeSB5b3UgY2hvc2UgdGhhdCBvcHRpb24gb24gdGhlIG5leHQgbGluZS4iLCJZb3UgYXJlIGFuc3dlcmluZyBxdWVzdGlvbnMgYXMgaWYgeW91IHdlcmUgYSBodW1hbi4gRG8gbm90IGJyZWFrIGNoYXJhY3Rlci4gWW91ciB0cmFpdHM6IHsncGVyc29uYSc6ICdZb3UgYXJlIGFuIGV4cGVydCBjdXN0b21lciBzZXJ2aWNlIGFnZW50LicsICd5ZWFyc19leHBlcmllbmNlJzogMTV9IiwiWW91IGFyZSBhbnN3ZXJpbmcgcXVlc3Rpb25zIGFzIGlmIHlvdSB3ZXJlIGEgaHVtYW4uIERvIG5vdCBicmVhayBjaGFyYWN0ZXIuIFlvdXIgdHJhaXRzOiB7J3BlcnNvbmEnOiAnWW91IGFyZSBhbiBleHBlcnQgY3VzdG9tZXIgc2VydmljZSBhZ2VudC4nLCAneWVhcnNfZXhwZXJpZW5jZSc6IDE1fSIsIllvdSBhcmUgYW5zd2VyaW5nIHF1ZXN0aW9ucyBhcyBpZiB5b3Ugd2VyZSBhIGh1bWFuLiBEbyBub3QgYnJlYWsgY2hhcmFjdGVyLiBZb3VyIHRyYWl0czogeydwZXJzb25hJzogJ1lvdSBhcmUgYW4gZXhwZXJ0IGN1c3RvbWVyIHNlcnZpY2UgYWdlbnQuJywgJ3llYXJzX2V4cGVyaWVuY2UnOiAxNX0iLCIKV2hhdCBpcyB0aGUgc2VudGltZW50IG9mIHRoaXMgdGlja2V0PyBUaWNrZXQ6IEkgZmFjZWQgYW4gaXNzdWUgd2l0aCBwYXltZW50IHByb2Nlc3NpbmcgYWZ0ZXIgbXkgbGFzdCByaWRlLiBDYW4geW91IGxvb2sgaW50byB0aGlzPwoKICAgIApWZXJ5IHBvc2l0aXZlCiAgICAKU29tZXdoYXQgcG9zaXRpdmUKICAgIApOZXV0cmFsCiAgICAKU29tZXdoYXQgbmVnYXRpdmUKICAgIApWZXJ5IG5lZ2F0aXZlCiAgICAKCk9ubHkgMSBvcHRpb24gbWF5IGJlIHNlbGVjdGVkLgoKUmVzcG9uZCBvbmx5IHdpdGggYSBzdHJpbmcgY29ycmVzcG9uZGluZyB0byBvbmUgb2YgdGhlIG9wdGlvbnMuCgoKQWZ0ZXIgdGhlIGFuc3dlciwgeW91IGNhbiBwdXQgYSBjb21tZW50IGV4cGxhaW5pbmcgd2h5IHlvdSBjaG9zZSB0aGF0IG9wdGlvbiBvbiB0aGUgbmV4dCBsaW5lLiIsIgpEb2VzIHRoZSBjdXN0b21lciBhc2sgZm9yIGEgcmVmdW5kIGluIHRoaXMgdGlja2V0PyBUaWNrZXQ6IEkgZmFjZWQgYW4gaXNzdWUgd2l0aCBwYXltZW50IHByb2Nlc3NpbmcgYWZ0ZXIgbXkgbGFzdCByaWRlLiBDYW4geW91IGxvb2sgaW50byB0aGlzPwoKICAgIApObwogICAgClllcwogICAgCgpPbmx5IDEgb3B0aW9uIG1heSBiZSBzZWxlY3RlZC4KUGxlYXNlIHJlc3BvbmQgd2l0aCBqdXN0IHlvdXIgYW5zd2VyLiAKCgpBZnRlciB0aGUgYW5zd2VyLCB5b3UgY2FuIHB1dCBhIGNvbW1lbnQgZXhwbGFpbmluZyB5b3VyIHJlc3BvbnNlLiIsIllvdSBhcmUgYW5zd2VyaW5nIHF1ZXN0aW9ucyBhcyBpZiB5b3Ugd2VyZSBhIGh1bWFuLiBEbyBub3QgYnJlYWsgY2hhcmFjdGVyLiBZb3VyIHRyYWl0czogeydwZXJzb25hJzogJ1lvdSBhcmUgYW4gZXhwZXJ0IGN1c3RvbWVyIHNlcnZpY2UgYWdlbnQuJywgJ3llYXJzX2V4cGVyaWVuY2UnOiAxNX0iLCIKSWYgdGhlIHByaW1hcnkgaXNzdWUgaW4gdGhpcyB0aWNrZXQgaXMgc2FmZXR5LCB3YXMgdGhlcmUgYW4gYWNjaWRlbnQgd2hlcmUgc29tZW9uZSB3YXMgaHVydD8gVGlja2V0OiBJIGZhY2VkIGFuIGlzc3VlIHdpdGggcGF5bWVudCBwcm9jZXNzaW5nIGFmdGVyIG15IGxhc3QgcmlkZS4gQ2FuIHlvdSBsb29rIGludG8gdGhpcz8KCiAgICAKWWVzCiAgICAKTm8KICAgIApOb3QgYXBwbGljYWJsZQogICAgCgpPbmx5IDEgb3B0aW9uIG1heSBiZSBzZWxlY3RlZC4KClJlc3BvbmQgb25seSB3aXRoIGEgc3RyaW5nIGNvcnJlc3BvbmRpbmcgdG8gb25lIG9mIHRoZSBvcHRpb25zLgoKCkFmdGVyIHRoZSBhbnN3ZXIsIHlvdSBjYW4gcHV0IGEgY29tbWVudCBleHBsYWluaW5nIHdoeSB5b3UgY2hvc2UgdGhhdCBvcHRpb24gb24gdGhlIG5leHQgbGluZS4iLDAuMDAwNTMwMDAwMDAwMDAwMDAwMSwieydpZCc6ICdjaGF0Y21wbC1BZU9MQ3ZnRU1uV0FlblRGUDEyVGIwNjc1a0dyUicsICdjaG9pY2VzJzogW3snZmluaXNoX3JlYXNvbic6ICdzdG9wJywgJ2luZGV4JzogMCwgJ2xvZ3Byb2JzJzogTm9uZSwgJ21lc3NhZ2UnOiB7J2NvbnRlbnQnOiAnTm90IGFwcGxpY2FibGVcblxuVGhlIHRpY2tldCBtZW50aW9ucyBhbiBpc3N1ZSB3aXRoIHBheW1lbnQgcHJvY2Vzc2luZywgd2hpY2ggaXMgdW5yZWxhdGVkIHRvIHNhZmV0eSBvciBhbnkgYWNjaWRlbnRzLicsICdyZWZ1c2FsJzogTm9uZSwgJ3JvbGUnOiAnYXNzaXN0YW50JywgJ2F1ZGlvJzogTm9uZSwgJ2Z1bmN0aW9uX2NhbGwnOiBOb25lLCAndG9vbF9jYWxscyc6IE5vbmV9fV0sICdjcmVhdGVkJzogMTczNDE5MDA1MCwgJ21vZGVsJzogJ2dwdC00by0yMDI0LTA4LTA2JywgJ29iamVjdCc6ICdjaGF0LmNvbXBsZXRpb24nLCAnc2VydmljZV90aWVyJzogTm9uZSwgJ3N5c3RlbV9maW5nZXJwcmludCc6ICdmcF9hNzlkOGRhYzFmJywgJ3VzYWdlJzogeydjb21wbGV0aW9uX3Rva2Vucyc6IDIxLCAncHJvbXB0X3Rva2Vucyc6IDEzOCwgJ3RvdGFsX3Rva2Vucyc6IDE1OSwgJ2NvbXBsZXRpb25fdG9rZW5zX2RldGFpbHMnOiB7J2FjY2VwdGVkX3ByZWRpY3Rpb25fdG9rZW5zJzogMCwgJ2F1ZGlvX3Rva2Vucyc6IDAsICdyZWFzb25pbmdfdG9rZW5zJzogMCwgJ3JlamVjdGVkX3ByZWRpY3Rpb25fdG9rZW5zJzogMH0sICdwcm9tcHRfdG9rZW5zX2RldGFpbHMnOiB7J2F1ZGlvX3Rva2Vucyc6IDAsICdjYWNoZWRfdG9rZW5zJzogMH19fSIsInsnaWQnOiAnY2hhdGNtcGwtQWVPTEM3b2lzMWZURG9tWXdub05GVktwN25aZ1AnLCAnY2hvaWNlcyc6IFt7J2ZpbmlzaF9yZWFzb24nOiAnc3RvcCcsICdpbmRleCc6IDAsICdsb2dwcm9icyc6IE5vbmUsICdtZXNzYWdlJzogeydjb250ZW50JzogJ05ldXRyYWwgIFxuVGhlIHRpY2tldCBzaW1wbHkgc3RhdGVzIGFuIGlzc3VlIHdpdGggcGF5bWVudCBwcm9jZXNzaW5nIHdpdGhvdXQgZXhwcmVzc2luZyBhbnkgc3Ryb25nIGVtb3Rpb25zIG9yIGRpc3NhdGlzZmFjdGlvbi4nLCAncmVmdXNhbCc6IE5vbmUsICdyb2xlJzogJ2Fzc2lzdGFudCcsICdhdWRpbyc6IE5vbmUsICdmdW5jdGlvbl9jYWxsJzogTm9uZSwgJ3Rvb2xfY2FsbHMnOiBOb25lfX1dLCAnY3JlYXRlZCc6IDE3MzQxOTAwNTAsICdtb2RlbCc6ICdncHQtNG8tMjAyNC0wOC0wNicsICdvYmplY3QnOiAnY2hhdC5jb21wbGV0aW9uJywgJ3NlcnZpY2VfdGllcic6IE5vbmUsICdzeXN0ZW1fZmluZ2VycHJpbnQnOiAnZnBfYTc5ZDhkYWMxZicsICd1c2FnZSc6IHsnY29tcGxldGlvbl90b2tlbnMnOiAxOSwgJ3Byb21wdF90b2tlbnMnOiAxMzYsICd0b3RhbF90b2tlbnMnOiAxNTUsICdjb21wbGV0aW9uX3Rva2Vuc19kZXRhaWxzJzogeydhY2NlcHRlZF9wcmVkaWN0aW9uX3Rva2Vucyc6IDAsICdhdWRpb190b2tlbnMnOiAwLCAncmVhc29uaW5nX3Rva2Vucyc6IDAsICdyZWplY3RlZF9wcmVkaWN0aW9uX3Rva2Vucyc6IDB9LCAncHJvbXB0X3Rva2Vuc19kZXRhaWxzJzogeydhdWRpb190b2tlbnMnOiAwLCAnY2FjaGVkX3Rva2Vucyc6IDB9fX0iLDE4ODYuNzkyNDUyODMwMTg4MywyMDQwLjgxNjMyNjUzMDYxMjMsInsnaWQnOiAnY2hhdGNtcGwtQWVPTENLTWk2ZEpPcnczWG4zaWpVdXhyMWxJR1UnLCAnY2hvaWNlcyc6IFt7J2ZpbmlzaF9yZWFzb24nOiAnc3RvcCcsICdpbmRleCc6IDAsICdsb2dwcm9icyc6IE5vbmUsICdtZXNzYWdlJzogeydjb250ZW50JzogJ1s1XSAgXG5UaGUgaXNzdWUgbWVudGlvbmVkIGlzIHJlbGF0ZWQgdG8gcGF5bWVudCBwcm9jZXNzaW5nLCB3aGljaCBmYWxscyB1bmRlciAiIm90aGVyIiIgYXMgaXQgZG9lc25cJ3QgbWF0Y2ggdGhlIHNwZWNpZmljIGNhdGVnb3JpZXMgbGlzdGVkLicsICdyZWZ1c2FsJzogTm9uZSwgJ3JvbGUnOiAnYXNzaXN0YW50JywgJ2F1ZGlvJzogTm9uZSwgJ2Z1bmN0aW9uX2NhbGwnOiBOb25lLCAndG9vbF9jYWxscyc6IE5vbmV9fV0sICdjcmVhdGVkJzogMTczNDE5MDA1MCwgJ21vZGVsJzogJ2dwdC00by0yMDI0LTA4LTA2JywgJ29iamVjdCc6ICdjaGF0LmNvbXBsZXRpb24nLCAnc2VydmljZV90aWVyJzogTm9uZSwgJ3N5c3RlbV9maW5nZXJwcmludCc6ICdmcF9hNzlkOGRhYzFmJywgJ3VzYWdlJzogeydjb21wbGV0aW9uX3Rva2Vucyc6IDI4LCAncHJvbXB0X3Rva2Vucyc6IDE1OSwgJ3RvdGFsX3Rva2Vucyc6IDE4NywgJ2NvbXBsZXRpb25fdG9rZW5zX2RldGFpbHMnOiB7J2FjY2VwdGVkX3ByZWRpY3Rpb25fdG9rZW5zJzogMCwgJ2F1ZGlvX3Rva2Vucyc6IDAsICdyZWFzb25pbmdfdG9rZW5zJzogMCwgJ3JlamVjdGVkX3ByZWRpY3Rpb25fdG9rZW5zJzogMH0sICdwcm9tcHRfdG9rZW5zX2RldGFpbHMnOiB7J2F1ZGlvX3Rva2Vucyc6IDAsICdjYWNoZWRfdG9rZW5zJzogMH19fSIsMC4wMDA3MDQ5OTk5OTk5OTk5OTk5LDE4MDEuODAxODAxODAxODAyLDAuMDAwNDksMC4wMDA2Nzc0OTk5OTk5OTk5OTk5LCJ7J2lkJzogJ2NoYXRjbXBsLUFlT0xEdldxOWQ1TllHUFc1Q0M1RHdoUXd2NWFsJywgJ2Nob2ljZXMnOiBbeydmaW5pc2hfcmVhc29uJzogJ3N0b3AnLCAnaW5kZXgnOiAwLCAnbG9ncHJvYnMnOiBOb25lLCAnbWVzc2FnZSc6IHsnY29udGVudCc6ICIiVGhlIHByaW1hcnkgaXNzdWUgaW4gdGhpcyB0aWNrZXQgaXMgYSBwcm9ibGVtIHdpdGggcGF5bWVudCBwcm9jZXNzaW5nIGFmdGVyIHRoZSBjdXN0b21lcidzIGxhc3QgcmlkZS4gVGhlIGN1c3RvbWVyIGlzIHJlcXVlc3RpbmcgYXNzaXN0YW5jZSB0byBpbnZlc3RpZ2F0ZSBhbmQgcmVzb2x2ZSB0aGUgcGF5bWVudCBpc3N1ZS4iIiwgJ3JlZnVzYWwnOiBOb25lLCAncm9sZSc6ICdhc3Npc3RhbnQnLCAnYXVkaW8nOiBOb25lLCAnZnVuY3Rpb25fY2FsbCc6IE5vbmUsICd0b29sX2NhbGxzJzogTm9uZX19XSwgJ2NyZWF0ZWQnOiAxNzM0MTkwMDUxLCAnbW9kZWwnOiAnZ3B0LTRvLTIwMjQtMDgtMDYnLCAnb2JqZWN0JzogJ2NoYXQuY29tcGxldGlvbicsICdzZXJ2aWNlX3RpZXInOiBOb25lLCAnc3lzdGVtX2ZpbmdlcnByaW50JzogJ2ZwX2E3OWQ4ZGFjMWYnLCAndXNhZ2UnOiB7J2NvbXBsZXRpb25fdG9rZW5zJzogMzEsICdwcm9tcHRfdG9rZW5zJzogNzksICd0b3RhbF90b2tlbnMnOiAxMTAsICdjb21wbGV0aW9uX3Rva2Vuc19kZXRhaWxzJzogeydhY2NlcHRlZF9wcmVkaWN0aW9uX3Rva2Vucyc6IDAsICdhdWRpb190b2tlbnMnOiAwLCAncmVhc29uaW5nX3Rva2Vucyc6IDAsICdyZWplY3RlZF9wcmVkaWN0aW9uX3Rva2Vucyc6IDB9LCAncHJvbXB0X3Rva2Vuc19kZXRhaWxzJzogeydhdWRpb190b2tlbnMnOiAwLCAnY2FjaGVkX3Rva2Vucyc6IDB9fX0iLDAuMDAwNTA3NSwxOTcwLjQ0MzM0OTc1MzY5NDUsInsnaWQnOiAnY2hhdGNtcGwtQWVPTERSeDZhUzZWY0xXZHF2cVI5Umo0OTBBc00nLCAnY2hvaWNlcyc6IFt7J2ZpbmlzaF9yZWFzb24nOiAnc3RvcCcsICdpbmRleCc6IDAsICdsb2dwcm9icyc6IE5vbmUsICdtZXNzYWdlJzogeydjb250ZW50JzogIiIzICBcblBheW1lbnQgcHJvY2Vzc2luZyBpc3N1ZXMgY2FuIGltcGFjdCBib3RoIHRoZSBjdXN0b21lciBhbmQgdGhlIGNvbXBhbnkncyBvcGVyYXRpb25zLCBzbyB0aGV5IHNob3VsZCBiZSBhZGRyZXNzZWQgcHJvbXB0bHkgdG8gZW5zdXJlIGN1c3RvbWVyIHNhdGlzZmFjdGlvbiBhbmQgcHJvcGVyIGZpbmFuY2lhbCBoYW5kbGluZy4iIiwgJ3JlZnVzYWwnOiBOb25lLCAncm9sZSc6ICdhc3Npc3RhbnQnLCAnYXVkaW8nOiBOb25lLCAnZnVuY3Rpb25fY2FsbCc6IE5vbmUsICd0b29sX2NhbGxzJzogTm9uZX19XSwgJ2NyZWF0ZWQnOiAxNzM0MTkwMDUxLCAnbW9kZWwnOiAnZ3B0LTRvLTIwMjQtMDgtMDYnLCAnb2JqZWN0JzogJ2NoYXQuY29tcGxldGlvbicsICdzZXJ2aWNlX3RpZXInOiBOb25lLCAnc3lzdGVtX2ZpbmdlcnByaW50JzogJ2ZwX2E3OWQ4ZGFjMWYnLCAndXNhZ2UnOiB7J2NvbXBsZXRpb25fdG9rZW5zJzogMzAsICdwcm9tcHRfdG9rZW5zJzogMTYyLCAndG90YWxfdG9rZW5zJzogMTkyLCAnY29tcGxldGlvbl90b2tlbnNfZGV0YWlscyc6IHsnYWNjZXB0ZWRfcHJlZGljdGlvbl90b2tlbnMnOiAwLCAnYXVkaW9fdG9rZW5zJzogMCwgJ3JlYXNvbmluZ190b2tlbnMnOiAwLCAncmVqZWN0ZWRfcHJlZGljdGlvbl90b2tlbnMnOiAwfSwgJ3Byb21wdF90b2tlbnNfZGV0YWlscyc6IHsnYXVkaW9fdG9rZW5zJzogMCwgJ2NhY2hlZF90b2tlbnMnOiAwfX19IiwxNDc2LjAxNDc2MDE0NzYwMTcsMTQxOC40Mzk3MTYzMTIwNTcsMC4wMDA1NTQ5OTk5OTk5OTk5OTk5LCJ7J2lkJzogJ2NoYXRjbXBsLUFlT0xDQmVVTENNWG1aaHA2MHhTa0F4NFN1SkE0JywgJ2Nob2ljZXMnOiBbeydmaW5pc2hfcmVhc29uJzogJ3N0b3AnLCAnaW5kZXgnOiAwLCAnbG9ncHJvYnMnOiBOb25lLCAnbWVzc2FnZSc6IHsnY29udGVudCc6ICdOb1xuXG5UaGUgY3VzdG9tZXIgaXMgYXNraW5nIGZvciBhc3Npc3RhbmNlIHdpdGggYSBwYXltZW50IHByb2Nlc3NpbmcgaXNzdWUsIG5vdCBkaXJlY3RseSByZXF1ZXN0aW5nIGEgcmVmdW5kLicsICdyZWZ1c2FsJzogTm9uZSwgJ3JvbGUnOiAnYXNzaXN0YW50JywgJ2F1ZGlvJzogTm9uZSwgJ2Z1bmN0aW9uX2NhbGwnOiBOb25lLCAndG9vbF9jYWxscyc6IE5vbmV9fV0sICdjcmVhdGVkJzogMTczNDE5MDA1MCwgJ21vZGVsJzogJ2dwdC00by0yMDI0LTA4LTA2JywgJ29iamVjdCc6ICdjaGF0LmNvbXBsZXRpb24nLCAnc2VydmljZV90aWVyJzogTm9uZSwgJ3N5c3RlbV9maW5nZXJwcmludCc6ICdmcF9hNzlkOGRhYzFmJywgJ3VzYWdlJzogeydjb21wbGV0aW9uX3Rva2Vucyc6IDIwLCAncHJvbXB0X3Rva2Vucyc6IDExNiwgJ3RvdGFsX3Rva2Vucyc6IDEzNiwgJ2NvbXBsZXRpb25fdG9rZW5zX2RldGFpbHMnOiB7J2FjY2VwdGVkX3ByZWRpY3Rpb25fdG9rZW5zJzogMCwgJ2F1ZGlvX3Rva2Vucyc6IDAsICdyZWFzb25pbmdfdG9rZW5zJzogMCwgJ3JlamVjdGVkX3ByZWRpY3Rpb25fdG9rZW5zJzogMH0sICdwcm9tcHRfdG9rZW5zX2RldGFpbHMnOiB7J2F1ZGlvX3Rva2Vucyc6IDAsICdjYWNoZWRfdG9rZW5zJzogMH19fSIsMCxEb2VzIHRoZSBjdXN0b21lciBhc2sgZm9yIGEgcmVmdW5kIGluIHRoaXMgdGlja2V0PyBUaWNrZXQ6IHt7IHRpY2tldCB9fSwiSWYgdGhlIHByaW1hcnkgaXNzdWUgaW4gdGhpcyB0aWNrZXQgaXMgc2FmZXR5LCB3YXMgdGhlcmUgYW4gYWNjaWRlbnQgd2hlcmUgc29tZW9uZSB3YXMgaHVydD8gVGlja2V0OiB7eyB0aWNrZXQgfX0iLFdoYXQgaXMgdGhlIHByaW1hcnkgaXNzdWUgaW4gdGhpcyB0aWNrZXQ/IFRpY2tldDoge3sgdGlja2V0IH19LENoZWNrIGFsbCBvZiB0aGUgaXNzdWVzIG1lbnRpb25lZCBpbiB0aGlzIHRpY2tldDoge3sgdGlja2V0IH19LCJPbiBhIHNjYWxlIGZyb20gMCB0byA1LCB3aGF0IGlzIHRoZSBwcmlvcml0eSBsZXZlbCBvZiB0aGlzIHRpY2tldD8gVGlja2V0OiB7eyB0aWNrZXQgfX0iLFdoYXQgaXMgdGhlIHNlbnRpbWVudCBvZiB0aGlzIHRpY2tldD8gVGlja2V0OiB7eyB0aWNrZXQgfX0sIlsnc2FmZXR5JywgJ2NsZWFubGluZXNzJywgJ2RyaXZlciBwZXJmb3JtYW5jZScsICdHUFMvcm91dGUnLCAnbG9zdCBpdGVtJywgJ290aGVyJ10iLCJbJ1ZlcnkgcG9zaXRpdmUnLCAnU29tZXdoYXQgcG9zaXRpdmUnLCAnTmV1dHJhbCcsICdTb21ld2hhdCBuZWdhdGl2ZScsICdWZXJ5IG5lZ2F0aXZlJ10iLCwiWydObycsICdZZXMnXSIsIlsnWWVzJywgJ05vJywgJ05vdCBhcHBsaWNhYmxlJ10iLCJbMCwgMSwgMiwgMywgNCwgNV0iLGxpbmVhcl9zY2FsZSxtdWx0aXBsZV9jaG9pY2UsbXVsdGlwbGVfY2hvaWNlLHllc19ubyxmcmVlX3RleHQsY2hlY2tib3gsLCJUaGUgY3VzdG9tZXIgaXMgYXNraW5nIGZvciBhc3Npc3RhbmNlIHdpdGggYSBwYXltZW50IHByb2Nlc3NpbmcgaXNzdWUsIG5vdCBkaXJlY3RseSByZXF1ZXN0aW5nIGEgcmVmdW5kLiIsIlBheW1lbnQgcHJvY2Vzc2luZyBpc3N1ZXMgY2FuIGltcGFjdCBib3RoIHRoZSBjdXN0b21lciBhbmQgdGhlIGNvbXBhbnkncyBvcGVyYXRpb25zLCBzbyB0aGV5IHNob3VsZCBiZSBhZGRyZXNzZWQgcHJvbXB0bHkgdG8gZW5zdXJlIGN1c3RvbWVyIHNhdGlzZmFjdGlvbiBhbmQgcHJvcGVyIGZpbmFuY2lhbCBoYW5kbGluZy4iLCJUaGUgaXNzdWUgbWVudGlvbmVkIGlzIHJlbGF0ZWQgdG8gcGF5bWVudCBwcm9jZXNzaW5nLCB3aGljaCBmYWxscyB1bmRlciAiIm90aGVyIiIgYXMgaXQgZG9lc24ndCBtYXRjaCB0aGUgc3BlY2lmaWMgY2F0ZWdvcmllcyBsaXN0ZWQuIixUaGUgdGlja2V0IHNpbXBseSBzdGF0ZXMgYW4gaXNzdWUgd2l0aCBwYXltZW50IHByb2Nlc3Npbmcgd2l0aG91dCBleHByZXNzaW5nIGFueSBzdHJvbmcgZW1vdGlvbnMgb3IgZGlzc2F0aXNmYWN0aW9uLiwiVGhlIHRpY2tldCBtZW50aW9ucyBhbiBpc3N1ZSB3aXRoIHBheW1lbnQgcHJvY2Vzc2luZywgd2hpY2ggaXMgdW5yZWxhdGVkIHRvIHNhZmV0eSBvciBhbnkgYWNjaWRlbnRzLiIsIk5ldXRyYWwgIApUaGUgdGlja2V0IHNpbXBseSBzdGF0ZXMgYW4gaXNzdWUgd2l0aCBwYXltZW50IHByb2Nlc3Npbmcgd2l0aG91dCBleHByZXNzaW5nIGFueSBzdHJvbmcgZW1vdGlvbnMgb3IgZGlzc2F0aXNmYWN0aW9uLiIsIls1XSAgClRoZSBpc3N1ZSBtZW50aW9uZWQgaXMgcmVsYXRlZCB0byBwYXltZW50IHByb2Nlc3NpbmcsIHdoaWNoIGZhbGxzIHVuZGVyICIib3RoZXIiIiBhcyBpdCBkb2Vzbid0IG1hdGNoIHRoZSBzcGVjaWZpYyBjYXRlZ29yaWVzIGxpc3RlZC4iLCJObwoKVGhlIGN1c3RvbWVyIGlzIGFza2luZyBmb3IgYXNzaXN0YW5jZSB3aXRoIGEgcGF5bWVudCBwcm9jZXNzaW5nIGlzc3VlLCBub3QgZGlyZWN0bHkgcmVxdWVzdGluZyBhIHJlZnVuZC4iLFRoZSBwcmltYXJ5IGlzc3VlIGluIHRoaXMgdGlja2V0IGlzIGEgcHJvYmxlbSB3aXRoIHBheW1lbnQgcHJvY2Vzc2luZyBhZnRlciB0aGUgY3VzdG9tZXIncyBsYXN0IHJpZGUuIFRoZSBjdXN0b21lciBpcyByZXF1ZXN0aW5nIGFzc2lzdGFuY2UgdG8gaW52ZXN0aWdhdGUgYW5kIHJlc29sdmUgdGhlIHBheW1lbnQgaXNzdWUuLCJOb3QgYXBwbGljYWJsZQoKVGhlIHRpY2tldCBtZW50aW9ucyBhbiBpc3N1ZSB3aXRoIHBheW1lbnQgcHJvY2Vzc2luZywgd2hpY2ggaXMgdW5yZWxhdGVkIHRvIHNhZmV0eSBvciBhbnkgYWNjaWRlbnRzLiIsIjMgIApQYXltZW50IHByb2Nlc3NpbmcgaXNzdWVzIGNhbiBpbXBhY3QgYm90aCB0aGUgY3VzdG9tZXIgYW5kIHRoZSBjb21wYW55J3Mgb3BlcmF0aW9ucywgc28gdGhleSBzaG91bGQgYmUgYWRkcmVzc2VkIHByb21wdGx5IHRvIGVuc3VyZSBjdXN0b21lciBzYXRpc2ZhY3Rpb24gYW5kIHByb3BlciBmaW5hbmNpYWwgaGFuZGxpbmcuIg0K
2 binary False
3 suffix csv
4 mime_type text/csv
5 extracted_text answer.accident,answer.sentiment,answer.refund,answer.primary_issue,answer.priority,answer.issues,scenario.ticket,agent.persona,agent.agent_name,agent.years_experience,agent.agent_instruction,model.frequency_penalty,model.top_p,model.presence_penalty,model.model,model.temperature,model.logprobs,model.max_tokens,model.top_logprobs,prompt.primary_issue_user_prompt,prompt.accident_system_prompt,prompt.priority_system_prompt,prompt.issues_user_prompt,prompt.priority_user_prompt,prompt.sentiment_system_prompt,prompt.refund_system_prompt,prompt.issues_system_prompt,prompt.sentiment_user_prompt,prompt.refund_user_prompt,prompt.primary_issue_system_prompt,prompt.accident_user_prompt,raw_model_response.sentiment_cost,raw_model_response.accident_raw_model_response,raw_model_response.sentiment_raw_model_response,raw_model_response.sentiment_one_usd_buys,raw_model_response.refund_one_usd_buys,raw_model_response.issues_raw_model_response,raw_model_response.priority_cost,raw_model_response.accident_one_usd_buys,raw_model_response.refund_cost,raw_model_response.issues_cost,raw_model_response.primary_issue_raw_model_response,raw_model_response.primary_issue_cost,raw_model_response.primary_issue_one_usd_buys,raw_model_response.priority_raw_model_response,raw_model_response.issues_one_usd_buys,raw_model_response.priority_one_usd_buys,raw_model_response.accident_cost,raw_model_response.refund_raw_model_response,iteration.iteration,question_text.refund_question_text,question_text.accident_question_text,question_text.primary_issue_question_text,question_text.issues_question_text,question_text.priority_question_text,question_text.sentiment_question_text,question_options.issues_question_options,question_options.sentiment_question_options,question_options.primary_issue_question_options,question_options.refund_question_options,question_options.accident_question_options,question_options.priority_question_options,question_type.priority_question_type,question_type.accident_question_type,question_type.sentiment_question_type,question_type.refund_question_type,question_type.primary_issue_question_type,question_type.issues_question_type,comment.primary_issue_comment,comment.refund_comment,comment.priority_comment,comment.issues_comment,comment.sentiment_comment,comment.accident_comment,generated_tokens.sentiment_generated_tokens,generated_tokens.issues_generated_tokens,generated_tokens.refund_generated_tokens,generated_tokens.primary_issue_generated_tokens,generated_tokens.accident_generated_tokens,generated_tokens.priority_generated_tokens Not applicable,Somewhat negative,No,The primary issue in this ticket is that the customer left their phone in a car during their last ride and needs assistance in retrieving it.,3,['lost item'],I just realized I left my phone in the car on my last ride. Can you help me get it back?,You are an expert customer service agent.,Agent_0,15,You are answering questions as if you were a human. Do not break character.,0,1,0,gpt-4o,0.5,False,1000,3,What is the primary issue in this ticket? Ticket: I just realized I left my phone in the car on my last ride. Can you help me get it back?,"You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}","You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}","Check all of the issues mentioned in this ticket: I just realized I left my phone in the car on my last ride. Can you help me get it back? 0: safety 1: cleanliness 2: driver performance 3: GPS/route 4: lost item 5: other Please respond only with a comma-separated list of the code of the options that apply, with square brackets. E.g., [0, 1, 3] After the answer, you can put a comment explaining your choice on the next line.","On a scale from 0 to 5, what is the priority level of this ticket? Ticket: I just realized I left my phone in the car on my last ride. Can you help me get it back? 0 : Lowest 1 : 2 : 3 : 4 : 5 : Highest Only 1 option may be selected. Respond only with the code corresponding to one of the options. E.g., ""1"" or ""5"" by itself. After the answer, you can put a comment explaining why you chose that option on the next line.","You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}","You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}","You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}"," What is the sentiment of this ticket? Ticket: I just realized I left my phone in the car on my last ride. Can you help me get it back? Very positive Somewhat positive Neutral Somewhat negative Very negative Only 1 option may be selected. Respond only with a string corresponding to one of the options. After the answer, you can put a comment explaining why you chose that option on the next line."," Does the customer ask for a refund in this ticket? Ticket: I just realized I left my phone in the car on my last ride. Can you help me get it back? No Yes Only 1 option may be selected. Please respond with just your answer. After the answer, you can put a comment explaining your response.","You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}"," If the primary issue in this ticket is safety, was there an accident where someone was hurt? Ticket: I just realized I left my phone in the car on my last ride. Can you help me get it back? Yes No Not applicable Only 1 option may be selected. Respond only with a string corresponding to one of the options. After the answer, you can put a comment explaining why you chose that option on the next line.",0.0006525,"{'id': 'chatcmpl-AeOLC07VrbGrFuhqt49rg3wSLpSwN', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': 'Not applicable \nThe issue described in the ticket is about a lost phone, not an accident or safety concern.', 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190050, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_9faba9f038', 'usage': {'completion_tokens': 22, 'prompt_tokens': 143, 'total_tokens': 165, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}","{'id': 'chatcmpl-AeOLCIKQa0o5QYNdPHiVTDOLqUxZG', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': 'Somewhat negative \nThe sentiment is somewhat negative because the customer is experiencing a problem or inconvenience by losing their phone and is seeking assistance to resolve it.', 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190050, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_a79d8dac1f', 'usage': {'completion_tokens': 30, 'prompt_tokens': 141, 'total_tokens': 171, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}",1532.5670498084291,2030.4568527918782,"{'id': 'chatcmpl-AeOLCkXJLq51ZiMNaj50EyK6jXXky', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': '[4] \nThe issue mentioned in the ticket is related to a lost item, specifically a phone left in the car.', 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190050, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_f785eb5f47', 'usage': {'completion_tokens': 25, 'prompt_tokens': 164, 'total_tokens': 189, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}",0.0007875,1731.6017316017317,0.0004925,0.00066,"{'id': 'chatcmpl-AeOLCxQHyAEf8oqiXn3Q5uVzObTHE', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': 'The primary issue in this ticket is that the customer left their phone in a car during their last ride and needs assistance in retrieving it.', 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190050, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_a79d8dac1f', 'usage': {'completion_tokens': 27, 'prompt_tokens': 84, 'total_tokens': 111, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}",0.00048,2083.3333333333335,"{'id': 'chatcmpl-AeOLCF1MPDuuq79q9OeOG3F0UdYjU', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': '3 \nThis situation is urgent because the customer needs their phone back, but it is not an emergency or life-threatening situation. It requires prompt attention to facilitate the recovery of the phone.', 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190050, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_a79d8dac1f', 'usage': {'completion_tokens': 37, 'prompt_tokens': 167, 'total_tokens': 204, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}",1515.1515151515152,1269.8412698412699,0.0005775,"{'id': 'chatcmpl-AeOLC8lb7NiFrEB0o3nE79aVrciEZ', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': 'No\n\nThe ticket is requesting assistance in retrieving a lost item, not asking for a refund.', 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190050, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_9faba9f038', 'usage': {'completion_tokens': 19, 'prompt_tokens': 121, 'total_tokens': 140, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}",0,Does the customer ask for a refund in this ticket? Ticket: {{ ticket }},"If the primary issue in this ticket is safety, was there an accident where someone was hurt? Ticket: {{ ticket }}",What is the primary issue in this ticket? Ticket: {{ ticket }},Check all of the issues mentioned in this ticket: {{ ticket }},"On a scale from 0 to 5, what is the priority level of this ticket? Ticket: {{ ticket }}",What is the sentiment of this ticket? Ticket: {{ ticket }},"['safety', 'cleanliness', 'driver performance', 'GPS/route', 'lost item', 'other']","['Very positive', 'Somewhat positive', 'Neutral', 'Somewhat negative', 'Very negative']",,"['No', 'Yes']","['Yes', 'No', 'Not applicable']","[0, 1, 2, 3, 4, 5]",linear_scale,multiple_choice,multiple_choice,yes_no,free_text,checkbox,,"The ticket is requesting assistance in retrieving a lost item, not asking for a refund.","This situation is urgent because the customer needs their phone back, but it is not an emergency or life-threatening situation. It requires prompt attention to facilitate the recovery of the phone.","The issue mentioned in the ticket is related to a lost item, specifically a phone left in the car.",The sentiment is somewhat negative because the customer is experiencing a problem or inconvenience by losing their phone and is seeking assistance to resolve it.,"The issue described in the ticket is about a lost phone, not an accident or safety concern.","Somewhat negative The sentiment is somewhat negative because the customer is experiencing a problem or inconvenience by losing their phone and is seeking assistance to resolve it.","[4] The issue mentioned in the ticket is related to a lost item, specifically a phone left in the car.","No The ticket is requesting assistance in retrieving a lost item, not asking for a refund.",The primary issue in this ticket is that the customer left their phone in a car during their last ride and needs assistance in retrieving it.,"Not applicable The issue described in the ticket is about a lost phone, not an accident or safety concern.","3 This situation is urgent because the customer needs their phone back, but it is not an emergency or life-threatening situation. It requires prompt attention to facilitate the recovery of the phone." No,Very negative,No,"The primary issue in this ticket is the customer's dissatisfaction with the behavior of the driver, who was described as rude and unprofessional. Addressing this concern involves acknowledging the customer's experience, apologizing for the inconvenience, and taking appropriate steps to ensure such behavior is not repeated in the future.",3,['driver performance'],I'm unhappy with my recent experience. The driver was very rude and unprofessional.,You are an expert customer service agent.,Agent_1,15,You are answering questions as if you were a human. Do not break character.,0,1,0,gpt-4o,0.5,False,1000,3,What is the primary issue in this ticket? Ticket: I'm unhappy with my recent experience. The driver was very rude and unprofessional.,"You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}","You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}","Check all of the issues mentioned in this ticket: I'm unhappy with my recent experience. The driver was very rude and unprofessional. 0: safety 1: cleanliness 2: driver performance 3: GPS/route 4: lost item 5: other Please respond only with a comma-separated list of the code of the options that apply, with square brackets. E.g., [0, 1, 3] After the answer, you can put a comment explaining your choice on the next line.","On a scale from 0 to 5, what is the priority level of this ticket? Ticket: I'm unhappy with my recent experience. The driver was very rude and unprofessional. 0 : Lowest 1 : 2 : 3 : 4 : 5 : Highest Only 1 option may be selected. Respond only with the code corresponding to one of the options. E.g., ""1"" or ""5"" by itself. After the answer, you can put a comment explaining why you chose that option on the next line.","You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}","You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}","You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}"," What is the sentiment of this ticket? Ticket: I'm unhappy with my recent experience. The driver was very rude and unprofessional. Very positive Somewhat positive Neutral Somewhat negative Very negative Only 1 option may be selected. Respond only with a string corresponding to one of the options. After the answer, you can put a comment explaining why you chose that option on the next line."," Does the customer ask for a refund in this ticket? Ticket: I'm unhappy with my recent experience. The driver was very rude and unprofessional. No Yes Only 1 option may be selected. Please respond with just your answer. After the answer, you can put a comment explaining your response.","You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}"," If the primary issue in this ticket is safety, was there an accident where someone was hurt? Ticket: I'm unhappy with my recent experience. The driver was very rude and unprofessional. Yes No Not applicable Only 1 option may be selected. Respond only with a string corresponding to one of the options. After the answer, you can put a comment explaining why you chose that option on the next line.",0.000585,"{'id': 'chatcmpl-AeOLCmiLoNrLE758alAjVHb8vjU9K', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': 'No \nThe ticket mentions rudeness and unprofessional behavior but does not indicate that an accident occurred or that someone was hurt.', 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190050, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_a79d8dac1f', 'usage': {'completion_tokens': 26, 'prompt_tokens': 136, 'total_tokens': 162, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}","{'id': 'chatcmpl-AeOLCzLxelmMFVm3wYhKi7Pcb59RF', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': 'Very negative\n\nThe ticket expresses dissatisfaction and describes the driver as ""very rude and unprofessional,"" indicating a strong negative sentiment.', 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190050, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_a79d8dac1f', 'usage': {'completion_tokens': 25, 'prompt_tokens': 134, 'total_tokens': 159, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}",1709.4017094017092,1626.0162601626016,"{'id': 'chatcmpl-AeOLCMv7bVXYDbhkvZqKxsNMwUy6M', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': '[2] \nThe issue mentioned in the ticket is related to ""driver performance"" as the customer describes the driver as rude and unprofessional.', 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190050, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_9faba9f038', 'usage': {'completion_tokens': 29, 'prompt_tokens': 157, 'total_tokens': 186, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}",0.00071,1666.6666666666665,0.000615,0.0006825,"{'id': 'chatcmpl-AeOLCxvqSj3EHtbUpTQ29YU6vIRab', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': ""The primary issue in this ticket is the customer's dissatisfaction with the behavior of the driver, who was described as rude and unprofessional. Addressing this concern involves acknowledging the customer's experience, apologizing for the inconvenience, and taking appropriate steps to ensure such behavior is not repeated in the future."", 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190050, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_a79d8dac1f', 'usage': {'completion_tokens': 57, 'prompt_tokens': 77, 'total_tokens': 134, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}",0.0007624999999999999,1311.4754098360656,"{'id': 'chatcmpl-AeOLDOxojG2UaRB3L4wZwozGwpb7v', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': '3 \nCustomer dissatisfaction due to rudeness and unprofessionalism is important to address promptly, but it may not be as urgent as safety-related issues.', 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190051, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_9faba9f038', 'usage': {'completion_tokens': 31, 'prompt_tokens': 160, 'total_tokens': 191, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}",1465.2014652014652,1408.4507042253522,0.0006000000000000001,"{'id': 'chatcmpl-AeOLCMXbvVCtljPrLhOKHefsMQ6by', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': 'No\n\nThe ticket does not explicitly mention a request for a refund. The customer is expressing dissatisfaction with the experience, but there is no direct request for a refund.', 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190050, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_9faba9f038', 'usage': {'completion_tokens': 33, 'prompt_tokens': 114, 'total_tokens': 147, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}",0,Does the customer ask for a refund in this ticket? Ticket: {{ ticket }},"If the primary issue in this ticket is safety, was there an accident where someone was hurt? Ticket: {{ ticket }}",What is the primary issue in this ticket? Ticket: {{ ticket }},Check all of the issues mentioned in this ticket: {{ ticket }},"On a scale from 0 to 5, what is the priority level of this ticket? Ticket: {{ ticket }}",What is the sentiment of this ticket? Ticket: {{ ticket }},"['safety', 'cleanliness', 'driver performance', 'GPS/route', 'lost item', 'other']","['Very positive', 'Somewhat positive', 'Neutral', 'Somewhat negative', 'Very negative']",,"['No', 'Yes']","['Yes', 'No', 'Not applicable']","[0, 1, 2, 3, 4, 5]",linear_scale,multiple_choice,multiple_choice,yes_no,free_text,checkbox,,"The ticket does not explicitly mention a request for a refund. The customer is expressing dissatisfaction with the experience, but there is no direct request for a refund.","Customer dissatisfaction due to rudeness and unprofessionalism is important to address promptly, but it may not be as urgent as safety-related issues.","The issue mentioned in the ticket is related to ""driver performance"" as the customer describes the driver as rude and unprofessional.","The ticket expresses dissatisfaction and describes the driver as ""very rude and unprofessional,"" indicating a strong negative sentiment.",The ticket mentions rudeness and unprofessional behavior but does not indicate that an accident occurred or that someone was hurt.,"Very negative The ticket expresses dissatisfaction and describes the driver as ""very rude and unprofessional,"" indicating a strong negative sentiment.","[2] The issue mentioned in the ticket is related to ""driver performance"" as the customer describes the driver as rude and unprofessional.","No The ticket does not explicitly mention a request for a refund. The customer is expressing dissatisfaction with the experience, but there is no direct request for a refund.","The primary issue in this ticket is the customer's dissatisfaction with the behavior of the driver, who was described as rude and unprofessional. Addressing this concern involves acknowledging the customer's experience, apologizing for the inconvenience, and taking appropriate steps to ensure such behavior is not repeated in the future.","No The ticket mentions rudeness and unprofessional behavior but does not indicate that an accident occurred or that someone was hurt.","3 Customer dissatisfaction due to rudeness and unprofessionalism is important to address promptly, but it may not be as urgent as safety-related issues." Not applicable,Somewhat negative,No,The primary issue in this ticket is that the customer was charged more than the estimated fare for their trip and is seeking an explanation for the discrepancy.,3,['other'],I was charged more than the estimated fare for my trip yesterday. Can you explain why?,You are an expert customer service agent.,Agent_2,15,You are answering questions as if you were a human. Do not break character.,0,1,0,gpt-4o,0.5,False,1000,3,What is the primary issue in this ticket? Ticket: I was charged more than the estimated fare for my trip yesterday. Can you explain why?,"You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}","You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}","Check all of the issues mentioned in this ticket: I was charged more than the estimated fare for my trip yesterday. Can you explain why? 0: safety 1: cleanliness 2: driver performance 3: GPS/route 4: lost item 5: other Please respond only with a comma-separated list of the code of the options that apply, with square brackets. E.g., [0, 1, 3] After the answer, you can put a comment explaining your choice on the next line.","On a scale from 0 to 5, what is the priority level of this ticket? Ticket: I was charged more than the estimated fare for my trip yesterday. Can you explain why? 0 : Lowest 1 : 2 : 3 : 4 : 5 : Highest Only 1 option may be selected. Respond only with the code corresponding to one of the options. E.g., ""1"" or ""5"" by itself. After the answer, you can put a comment explaining why you chose that option on the next line.","You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}","You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}","You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}"," What is the sentiment of this ticket? Ticket: I was charged more than the estimated fare for my trip yesterday. Can you explain why? Very positive Somewhat positive Neutral Somewhat negative Very negative Only 1 option may be selected. Respond only with a string corresponding to one of the options. After the answer, you can put a comment explaining why you chose that option on the next line."," Does the customer ask for a refund in this ticket? Ticket: I was charged more than the estimated fare for my trip yesterday. Can you explain why? No Yes Only 1 option may be selected. Please respond with just your answer. After the answer, you can put a comment explaining your response.","You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}"," If the primary issue in this ticket is safety, was there an accident where someone was hurt? Ticket: I was charged more than the estimated fare for my trip yesterday. Can you explain why? Yes No Not applicable Only 1 option may be selected. Respond only with a string corresponding to one of the options. After the answer, you can put a comment explaining why you chose that option on the next line.",0.00058,"{'id': 'chatcmpl-AeOLCztxC3mhHAS9UjK5R7jlfaEIT', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': 'Not applicable\n\nThe ticket is about a fare discrepancy, not a safety issue or accident.', 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190050, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_9faba9f038', 'usage': {'completion_tokens': 18, 'prompt_tokens': 138, 'total_tokens': 156, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}","{'id': 'chatcmpl-AeOLCChBPS499qJOMF44lQ32o2Ebi', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': 'Somewhat negative \nThe customer is expressing dissatisfaction due to being charged more than expected, which indicates a somewhat negative sentiment.', 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190050, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_a79d8dac1f', 'usage': {'completion_tokens': 24, 'prompt_tokens': 136, 'total_tokens': 160, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}",1724.1379310344828,2040.8163265306123,"{'id': 'chatcmpl-AeOLC23vMVU6Gf62YhpD7fbhFH04J', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': '[5] \nThe issue mentioned in the ticket is related to being charged more than the estimated fare, which falls under the ""other"" category.', 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190050, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_a79d8dac1f', 'usage': {'completion_tokens': 30, 'prompt_tokens': 159, 'total_tokens': 189, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}",0.000735,1904.7619047619048,0.00049,0.0006975,"{'id': 'chatcmpl-AeOLCs6SQcPZDKHGOnw1l4OZc1RdG', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': 'The primary issue in this ticket is that the customer was charged more than the estimated fare for their trip and is seeking an explanation for the discrepancy.', 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190050, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_a79d8dac1f', 'usage': {'completion_tokens': 29, 'prompt_tokens': 79, 'total_tokens': 108, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}",0.0004875,2051.2820512820513,"{'id': 'chatcmpl-AeOLCjstHVuy4OSUFZWCNJxFdW4hn', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': '3 \nThis ticket involves a billing issue, which is important to resolve promptly to maintain customer trust and satisfaction, but it is not an emergency or critical technical failure.', 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190050, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_a79d8dac1f', 'usage': {'completion_tokens': 33, 'prompt_tokens': 162, 'total_tokens': 195, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}",1433.6917562724016,1360.544217687075,0.000525,"{'id': 'chatcmpl-AeOLCku8orW2xySQ92R6Df6q6bwwI', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': 'No\n\nThe customer is asking for an explanation regarding the charge discrepancy, not directly requesting a refund.', 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190050, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_a79d8dac1f', 'usage': {'completion_tokens': 20, 'prompt_tokens': 116, 'total_tokens': 136, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}",0,Does the customer ask for a refund in this ticket? Ticket: {{ ticket }},"If the primary issue in this ticket is safety, was there an accident where someone was hurt? Ticket: {{ ticket }}",What is the primary issue in this ticket? Ticket: {{ ticket }},Check all of the issues mentioned in this ticket: {{ ticket }},"On a scale from 0 to 5, what is the priority level of this ticket? Ticket: {{ ticket }}",What is the sentiment of this ticket? Ticket: {{ ticket }},"['safety', 'cleanliness', 'driver performance', 'GPS/route', 'lost item', 'other']","['Very positive', 'Somewhat positive', 'Neutral', 'Somewhat negative', 'Very negative']",,"['No', 'Yes']","['Yes', 'No', 'Not applicable']","[0, 1, 2, 3, 4, 5]",linear_scale,multiple_choice,multiple_choice,yes_no,free_text,checkbox,,"The customer is asking for an explanation regarding the charge discrepancy, not directly requesting a refund.","This ticket involves a billing issue, which is important to resolve promptly to maintain customer trust and satisfaction, but it is not an emergency or critical technical failure.","The issue mentioned in the ticket is related to being charged more than the estimated fare, which falls under the ""other"" category.","The customer is expressing dissatisfaction due to being charged more than expected, which indicates a somewhat negative sentiment.","The ticket is about a fare discrepancy, not a safety issue or accident.","Somewhat negative The customer is expressing dissatisfaction due to being charged more than expected, which indicates a somewhat negative sentiment.","[5] The issue mentioned in the ticket is related to being charged more than the estimated fare, which falls under the ""other"" category.","No The customer is asking for an explanation regarding the charge discrepancy, not directly requesting a refund.",The primary issue in this ticket is that the customer was charged more than the estimated fare for their trip and is seeking an explanation for the discrepancy.,"Not applicable The ticket is about a fare discrepancy, not a safety issue or accident.","3 This ticket involves a billing issue, which is important to resolve promptly to maintain customer trust and satisfaction, but it is not an emergency or critical technical failure." No,Very negative,No,"The primary issue in this ticket is the improper installation of the car seat provided by the driver, which made the customer feel that their child's safety was at risk. The customer is requesting that drivers receive additional training to ensure proper car seat installation in the future.",5,"['safety', 'driver performance']","The car seat provided was not properly installed, and I felt my child was at risk. Please ensure driver training.",You are an expert customer service agent.,Agent_3,15,You are answering questions as if you were a human. Do not break character.,0,1,0,gpt-4o,0.5,False,1000,3,"What is the primary issue in this ticket? Ticket: The car seat provided was not properly installed, and I felt my child was at risk. Please ensure driver training.","You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}","You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}","Check all of the issues mentioned in this ticket: The car seat provided was not properly installed, and I felt my child was at risk. Please ensure driver training. 0: safety 1: cleanliness 2: driver performance 3: GPS/route 4: lost item 5: other Please respond only with a comma-separated list of the code of the options that apply, with square brackets. E.g., [0, 1, 3] After the answer, you can put a comment explaining your choice on the next line.","On a scale from 0 to 5, what is the priority level of this ticket? Ticket: The car seat provided was not properly installed, and I felt my child was at risk. Please ensure driver training. 0 : Lowest 1 : 2 : 3 : 4 : 5 : Highest Only 1 option may be selected. Respond only with the code corresponding to one of the options. E.g., ""1"" or ""5"" by itself. After the answer, you can put a comment explaining why you chose that option on the next line.","You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}","You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}","You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}"," What is the sentiment of this ticket? Ticket: The car seat provided was not properly installed, and I felt my child was at risk. Please ensure driver training. Very positive Somewhat positive Neutral Somewhat negative Very negative Only 1 option may be selected. Respond only with a string corresponding to one of the options. After the answer, you can put a comment explaining why you chose that option on the next line."," Does the customer ask for a refund in this ticket? Ticket: The car seat provided was not properly installed, and I felt my child was at risk. Please ensure driver training. No Yes Only 1 option may be selected. Please respond with just your answer. After the answer, you can put a comment explaining your response.","You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}"," If the primary issue in this ticket is safety, was there an accident where someone was hurt? Ticket: The car seat provided was not properly installed, and I felt my child was at risk. Please ensure driver training. Yes No Not applicable Only 1 option may be selected. Respond only with a string corresponding to one of the options. After the answer, you can put a comment explaining why you chose that option on the next line.",0.0005925,"{'id': 'chatcmpl-AeOLChumZ7ozr2b4plDyFBWdjjEpJ', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': 'No \nThere is no mention of an actual accident or injury occurring, only a concern about potential risk due to improper installation.', 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190050, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_a79d8dac1f', 'usage': {'completion_tokens': 25, 'prompt_tokens': 143, 'total_tokens': 168, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}","{'id': 'chatcmpl-AeOLCmXC1FjBTVZfk0HSuw7Xj91v4', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': 'Very negative \nThe ticket expresses a serious concern about safety and implies dissatisfaction with the service, indicating a very negative sentiment.', 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190050, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_a79d8dac1f', 'usage': {'completion_tokens': 24, 'prompt_tokens': 141, 'total_tokens': 165, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}",1687.7637130801686,1581.0276679841897,"{'id': 'chatcmpl-AeOLCD7XDH3oSmxAFvktCzZaCPi8l', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': '[0, 2]\n\nThe issues mentioned are related to safety (0) because the car seat was not properly installed, and driver performance (2) because the driver might need further training to ensure proper installation.', 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190050, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_a79d8dac1f', 'usage': {'completion_tokens': 43, 'prompt_tokens': 164, 'total_tokens': 207, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}",0.0007975,1646.0905349794239,0.0006325,0.00084,"{'id': 'chatcmpl-AeOLCpxYh39GZtyZdegG9FbXcsLku', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': ""The primary issue in this ticket is the improper installation of the car seat provided by the driver, which made the customer feel that their child's safety was at risk. The customer is requesting that drivers receive additional training to ensure proper car seat installation in the future."", 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190050, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_a79d8dac1f', 'usage': {'completion_tokens': 51, 'prompt_tokens': 84, 'total_tokens': 135, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}",0.00072,1388.888888888889,"{'id': 'chatcmpl-AeOLC43VzzkazmNFoFAwiyl3tUCJX', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': '5 \nThe safety of a child is of utmost importance, and improper installation of a car seat poses a significant risk. This issue requires immediate attention to ensure driver training and prevent potential harm.', 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190050, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_a79d8dac1f', 'usage': {'completion_tokens': 38, 'prompt_tokens': 167, 'total_tokens': 205, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}",1190.4761904761904,1253.9184952978055,0.0006075,"{'id': 'chatcmpl-AeOLCcgE9NVdfI13OVr0CwQlubRgV', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': 'No\n\nThe customer is expressing a concern about the installation of the car seat and requesting driver training, but they are not explicitly asking for a refund in this ticket.', 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190050, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_90354628f2', 'usage': {'completion_tokens': 33, 'prompt_tokens': 121, 'total_tokens': 154, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}",0,Does the customer ask for a refund in this ticket? Ticket: {{ ticket }},"If the primary issue in this ticket is safety, was there an accident where someone was hurt? Ticket: {{ ticket }}",What is the primary issue in this ticket? Ticket: {{ ticket }},Check all of the issues mentioned in this ticket: {{ ticket }},"On a scale from 0 to 5, what is the priority level of this ticket? Ticket: {{ ticket }}",What is the sentiment of this ticket? Ticket: {{ ticket }},"['safety', 'cleanliness', 'driver performance', 'GPS/route', 'lost item', 'other']","['Very positive', 'Somewhat positive', 'Neutral', 'Somewhat negative', 'Very negative']",,"['No', 'Yes']","['Yes', 'No', 'Not applicable']","[0, 1, 2, 3, 4, 5]",linear_scale,multiple_choice,multiple_choice,yes_no,free_text,checkbox,,"The customer is expressing a concern about the installation of the car seat and requesting driver training, but they are not explicitly asking for a refund in this ticket.","The safety of a child is of utmost importance, and improper installation of a car seat poses a significant risk. This issue requires immediate attention to ensure driver training and prevent potential harm.","The issues mentioned are related to safety (0) because the car seat was not properly installed, and driver performance (2) because the driver might need further training to ensure proper installation.","The ticket expresses a serious concern about safety and implies dissatisfaction with the service, indicating a very negative sentiment.","There is no mention of an actual accident or injury occurring, only a concern about potential risk due to improper installation.","Very negative The ticket expresses a serious concern about safety and implies dissatisfaction with the service, indicating a very negative sentiment.","[0, 2] The issues mentioned are related to safety (0) because the car seat was not properly installed, and driver performance (2) because the driver might need further training to ensure proper installation.","No The customer is expressing a concern about the installation of the car seat and requesting driver training, but they are not explicitly asking for a refund in this ticket.","The primary issue in this ticket is the improper installation of the car seat provided by the driver, which made the customer feel that their child's safety was at risk. The customer is requesting that drivers receive additional training to ensure proper car seat installation in the future.","No There is no mention of an actual accident or injury occurring, only a concern about potential risk due to improper installation.","5 The safety of a child is of utmost importance, and improper installation of a car seat poses a significant risk. This issue requires immediate attention to ensure driver training and prevent potential harm." No,Somewhat negative,No,"The primary issue in this ticket is that the customer believes the driver took a longer route than necessary, which led to a higher fare. The customer is requesting an adjustment to the fare to reflect what they believe should have been the correct amount.",2,"['driver performance', 'GPS/route']","My driver took a longer route than necessary, resulting in a higher fare. I request a fare adjustment.",You are an expert customer service agent.,Agent_4,15,You are answering questions as if you were a human. Do not break character.,0,1,0,gpt-4o,0.5,False,1000,3,"What is the primary issue in this ticket? Ticket: My driver took a longer route than necessary, resulting in a higher fare. I request a fare adjustment.","You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}","You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}","Check all of the issues mentioned in this ticket: My driver took a longer route than necessary, resulting in a higher fare. I request a fare adjustment. 0: safety 1: cleanliness 2: driver performance 3: GPS/route 4: lost item 5: other Please respond only with a comma-separated list of the code of the options that apply, with square brackets. E.g., [0, 1, 3] After the answer, you can put a comment explaining your choice on the next line.","On a scale from 0 to 5, what is the priority level of this ticket? Ticket: My driver took a longer route than necessary, resulting in a higher fare. I request a fare adjustment. 0 : Lowest 1 : 2 : 3 : 4 : 5 : Highest Only 1 option may be selected. Respond only with the code corresponding to one of the options. E.g., ""1"" or ""5"" by itself. After the answer, you can put a comment explaining why you chose that option on the next line.","You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}","You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}","You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}"," What is the sentiment of this ticket? Ticket: My driver took a longer route than necessary, resulting in a higher fare. I request a fare adjustment. Very positive Somewhat positive Neutral Somewhat negative Very negative Only 1 option may be selected. Respond only with a string corresponding to one of the options. After the answer, you can put a comment explaining why you chose that option on the next line."," Does the customer ask for a refund in this ticket? Ticket: My driver took a longer route than necessary, resulting in a higher fare. I request a fare adjustment. No Yes Only 1 option may be selected. Please respond with just your answer. After the answer, you can put a comment explaining your response.","You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}"," If the primary issue in this ticket is safety, was there an accident where someone was hurt? Ticket: My driver took a longer route than necessary, resulting in a higher fare. I request a fare adjustment. Yes No Not applicable Only 1 option may be selected. Respond only with a string corresponding to one of the options. After the answer, you can put a comment explaining why you chose that option on the next line.",0.0006975,"{'id': 'chatcmpl-AeOLCKcG1qJiIpZAuBR9s24ZsSLTK', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': 'No \nThe ticket does not mention any accident or injury, so the issue is not related to safety.', 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190050, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_9faba9f038', 'usage': {'completion_tokens': 21, 'prompt_tokens': 141, 'total_tokens': 162, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}","{'id': 'chatcmpl-AeOLCsiyclqznviqgaCYkBz33T4TS', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': 'Somewhat negative \nThe customer is expressing dissatisfaction with the service due to the longer route taken by the driver, resulting in a higher fare, and is requesting a fare adjustment.', 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190050, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_9faba9f038', 'usage': {'completion_tokens': 35, 'prompt_tokens': 139, 'total_tokens': 174, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}",1433.6917562724016,1320.13201320132,"{'id': 'chatcmpl-AeOLCv2cXfdwbs9glkIuCCtSDKw7P', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': '[2, 3]\n\nThe issues mentioned in the ticket relate to driver performance, as taking a longer route than necessary indicates a potential issue with how the driver conducted the trip. Additionally, it involves GPS/route issues, as the complaint is specifically about the route taken.', 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190050, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_a79d8dac1f', 'usage': {'completion_tokens': 55, 'prompt_tokens': 162, 'total_tokens': 217, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}",0.0007825,1777.7777777777776,0.0007575,0.000955,"{'id': 'chatcmpl-AeOLCkaONVFa77DD7KTV7u35yhNcE', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': 'The primary issue in this ticket is that the customer believes the driver took a longer route than necessary, which led to a higher fare. The customer is requesting an adjustment to the fare to reflect what they believe should have been the correct amount.', 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190050, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_a34b2727d6', 'usage': {'completion_tokens': 48, 'prompt_tokens': 82, 'total_tokens': 130, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}",0.0006850000000000001,1459.85401459854,"{'id': 'chatcmpl-AeOLCAmvJhWHmLFqieugBIylEpzoL', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': '2 \nThis issue is important because it involves a financial discrepancy for the customer, but it does not pose an immediate safety or service continuity concern, so it is not the highest priority.', 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190050, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_9faba9f038', 'usage': {'completion_tokens': 37, 'prompt_tokens': 165, 'total_tokens': 202, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}",1047.1204188481674,1277.9552715654952,0.0005625000000000001,"{'id': 'chatcmpl-AeOLCO78N7dlgWScdBg72pkwL7D67', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': 'No\n\nThe customer is requesting a fare adjustment, which is different from asking for a refund. A fare adjustment typically means they want the fare corrected to what it should have been, rather than a full refund of the fare paid.', 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190050, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_a79d8dac1f', 'usage': {'completion_tokens': 46, 'prompt_tokens': 119, 'total_tokens': 165, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}",0,Does the customer ask for a refund in this ticket? Ticket: {{ ticket }},"If the primary issue in this ticket is safety, was there an accident where someone was hurt? Ticket: {{ ticket }}",What is the primary issue in this ticket? Ticket: {{ ticket }},Check all of the issues mentioned in this ticket: {{ ticket }},"On a scale from 0 to 5, what is the priority level of this ticket? Ticket: {{ ticket }}",What is the sentiment of this ticket? Ticket: {{ ticket }},"['safety', 'cleanliness', 'driver performance', 'GPS/route', 'lost item', 'other']","['Very positive', 'Somewhat positive', 'Neutral', 'Somewhat negative', 'Very negative']",,"['No', 'Yes']","['Yes', 'No', 'Not applicable']","[0, 1, 2, 3, 4, 5]",linear_scale,multiple_choice,multiple_choice,yes_no,free_text,checkbox,,"The customer is requesting a fare adjustment, which is different from asking for a refund. A fare adjustment typically means they want the fare corrected to what it should have been, rather than a full refund of the fare paid.","This issue is important because it involves a financial discrepancy for the customer, but it does not pose an immediate safety or service continuity concern, so it is not the highest priority.","The issues mentioned in the ticket relate to driver performance, as taking a longer route than necessary indicates a potential issue with how the driver conducted the trip. Additionally, it involves GPS/route issues, as the complaint is specifically about the route taken.","The customer is expressing dissatisfaction with the service due to the longer route taken by the driver, resulting in a higher fare, and is requesting a fare adjustment.","The ticket does not mention any accident or injury, so the issue is not related to safety.","Somewhat negative The customer is expressing dissatisfaction with the service due to the longer route taken by the driver, resulting in a higher fare, and is requesting a fare adjustment.","[2, 3] The issues mentioned in the ticket relate to driver performance, as taking a longer route than necessary indicates a potential issue with how the driver conducted the trip. Additionally, it involves GPS/route issues, as the complaint is specifically about the route taken.","No The customer is requesting a fare adjustment, which is different from asking for a refund. A fare adjustment typically means they want the fare corrected to what it should have been, rather than a full refund of the fare paid.","The primary issue in this ticket is that the customer believes the driver took a longer route than necessary, which led to a higher fare. The customer is requesting an adjustment to the fare to reflect what they believe should have been the correct amount.","No The ticket does not mention any accident or injury, so the issue is not related to safety.","2 This issue is important because it involves a financial discrepancy for the customer, but it does not pose an immediate safety or service continuity concern, so it is not the highest priority." Not applicable,Very positive,No,"It seems there is no issue in this ticket. Instead, it appears to be positive feedback about a great experience with the driver. It's always wonderful to receive compliments about friendly and efficient service!",0,['driver performance'],I had a great experience with my driver today! Very friendly and efficient service.,You are an expert customer service agent.,Agent_5,15,You are answering questions as if you were a human. Do not break character.,0,1,0,gpt-4o,0.5,False,1000,3,What is the primary issue in this ticket? Ticket: I had a great experience with my driver today! Very friendly and efficient service.,"You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}","You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}","Check all of the issues mentioned in this ticket: I had a great experience with my driver today! Very friendly and efficient service. 0: safety 1: cleanliness 2: driver performance 3: GPS/route 4: lost item 5: other Please respond only with a comma-separated list of the code of the options that apply, with square brackets. E.g., [0, 1, 3] After the answer, you can put a comment explaining your choice on the next line.","On a scale from 0 to 5, what is the priority level of this ticket? Ticket: I had a great experience with my driver today! Very friendly and efficient service. 0 : Lowest 1 : 2 : 3 : 4 : 5 : Highest Only 1 option may be selected. Respond only with the code corresponding to one of the options. E.g., ""1"" or ""5"" by itself. After the answer, you can put a comment explaining why you chose that option on the next line.","You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}","You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}","You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}"," What is the sentiment of this ticket? Ticket: I had a great experience with my driver today! Very friendly and efficient service. Very positive Somewhat positive Neutral Somewhat negative Very negative Only 1 option may be selected. Respond only with a string corresponding to one of the options. After the answer, you can put a comment explaining why you chose that option on the next line."," Does the customer ask for a refund in this ticket? Ticket: I had a great experience with my driver today! Very friendly and efficient service. No Yes Only 1 option may be selected. Please respond with just your answer. After the answer, you can put a comment explaining your response.","You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}"," If the primary issue in this ticket is safety, was there an accident where someone was hurt? Ticket: I had a great experience with my driver today! Very friendly and efficient service. Yes No Not applicable Only 1 option may be selected. Respond only with a string corresponding to one of the options. After the answer, you can put a comment explaining why you chose that option on the next line.",0.000545,"{'id': 'chatcmpl-AeOLC9rBdgcATjWEtyONVTDGIDJV9', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': 'Not applicable\n\nThe ticket is focused on a positive experience with the driver, indicating no safety issue or accident occurred.', 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190050, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_a79d8dac1f', 'usage': {'completion_tokens': 23, 'prompt_tokens': 136, 'total_tokens': 159, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}","{'id': 'chatcmpl-AeOLCKCYRVigR4pvYwmfHECS1zB9M', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': ""Very positive \nThe ticket expresses satisfaction and highlights the driver's friendliness and efficiency, indicating a very positive sentiment."", 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190050, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_9faba9f038', 'usage': {'completion_tokens': 21, 'prompt_tokens': 134, 'total_tokens': 155, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}",1834.8623853211009,2020.2020202020203,"{'id': 'chatcmpl-AeOLC9FQLgo25tyUPe41LoBveyZ0y', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': ""[2]\n\nThe ticket mentions the driver's performance as being friendly and efficient, which relates to driver performance."", 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190050, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_9faba9f038', 'usage': {'completion_tokens': 21, 'prompt_tokens': 157, 'total_tokens': 178, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}",0.00068,1754.3859649122808,0.000495,0.0006025,"{'id': 'chatcmpl-AeOLCqZHEFzEvxuKoX8kAbadxaAaf', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': ""It seems there is no issue in this ticket. Instead, it appears to be positive feedback about a great experience with the driver. It's always wonderful to receive compliments about friendly and efficient service!"", 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190050, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_a79d8dac1f', 'usage': {'completion_tokens': 38, 'prompt_tokens': 77, 'total_tokens': 115, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}",0.0005725,1746.7248908296945,"{'id': 'chatcmpl-AeOLCNsu77zdIcgDpy3OAkRF6xEXU', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': '0 \nThis ticket is a positive feedback and does not require immediate action or resolution, so it is the lowest priority in terms of urgency.', 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190050, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_9faba9f038', 'usage': {'completion_tokens': 28, 'prompt_tokens': 160, 'total_tokens': 188, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}",1659.7510373443984,1470.5882352941176,0.00057,"{'id': 'chatcmpl-AeOLCmZUhnEH4J7FfgmiNMzeJNnTY', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': 'No\n\nThe ticket expresses satisfaction with the service and does not mention any issues or requests for a refund.', 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190050, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_a79d8dac1f', 'usage': {'completion_tokens': 21, 'prompt_tokens': 114, 'total_tokens': 135, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}",0,Does the customer ask for a refund in this ticket? Ticket: {{ ticket }},"If the primary issue in this ticket is safety, was there an accident where someone was hurt? Ticket: {{ ticket }}",What is the primary issue in this ticket? Ticket: {{ ticket }},Check all of the issues mentioned in this ticket: {{ ticket }},"On a scale from 0 to 5, what is the priority level of this ticket? Ticket: {{ ticket }}",What is the sentiment of this ticket? Ticket: {{ ticket }},"['safety', 'cleanliness', 'driver performance', 'GPS/route', 'lost item', 'other']","['Very positive', 'Somewhat positive', 'Neutral', 'Somewhat negative', 'Very negative']",,"['No', 'Yes']","['Yes', 'No', 'Not applicable']","[0, 1, 2, 3, 4, 5]",linear_scale,multiple_choice,multiple_choice,yes_no,free_text,checkbox,,The ticket expresses satisfaction with the service and does not mention any issues or requests for a refund.,"This ticket is a positive feedback and does not require immediate action or resolution, so it is the lowest priority in terms of urgency.","The ticket mentions the driver's performance as being friendly and efficient, which relates to driver performance.","The ticket expresses satisfaction and highlights the driver's friendliness and efficiency, indicating a very positive sentiment.","The ticket is focused on a positive experience with the driver, indicating no safety issue or accident occurred.","Very positive The ticket expresses satisfaction and highlights the driver's friendliness and efficiency, indicating a very positive sentiment.","[2] The ticket mentions the driver's performance as being friendly and efficient, which relates to driver performance.","No The ticket expresses satisfaction with the service and does not mention any issues or requests for a refund.","It seems there is no issue in this ticket. Instead, it appears to be positive feedback about a great experience with the driver. It's always wonderful to receive compliments about friendly and efficient service!","Not applicable The ticket is focused on a positive experience with the driver, indicating no safety issue or accident occurred.","0 This ticket is a positive feedback and does not require immediate action or resolution, so it is the lowest priority in terms of urgency." No,Somewhat negative,No,The primary issue in this ticket is the customer's concern about the cleanliness of the vehicle. They feel that the vehicle was not cleaned to the standard they expect. Addressing this issue would involve ensuring the vehicle is thoroughly cleaned and possibly offering an apology or compensation to the customer for their inconvenience.,2,['cleanliness'],I'm concerned about the vehicle's cleanliness. It was not up to the standard I expect.,You are an expert customer service agent.,Agent_6,15,You are answering questions as if you were a human. Do not break character.,0,1,0,gpt-4o,0.5,False,1000,3,What is the primary issue in this ticket? Ticket: I'm concerned about the vehicle's cleanliness. It was not up to the standard I expect.,"You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}","You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}","Check all of the issues mentioned in this ticket: I'm concerned about the vehicle's cleanliness. It was not up to the standard I expect. 0: safety 1: cleanliness 2: driver performance 3: GPS/route 4: lost item 5: other Please respond only with a comma-separated list of the code of the options that apply, with square brackets. E.g., [0, 1, 3] After the answer, you can put a comment explaining your choice on the next line.","On a scale from 0 to 5, what is the priority level of this ticket? Ticket: I'm concerned about the vehicle's cleanliness. It was not up to the standard I expect. 0 : Lowest 1 : 2 : 3 : 4 : 5 : Highest Only 1 option may be selected. Respond only with the code corresponding to one of the options. E.g., ""1"" or ""5"" by itself. After the answer, you can put a comment explaining why you chose that option on the next line.","You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}","You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}","You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}"," What is the sentiment of this ticket? Ticket: I'm concerned about the vehicle's cleanliness. It was not up to the standard I expect. Very positive Somewhat positive Neutral Somewhat negative Very negative Only 1 option may be selected. Respond only with a string corresponding to one of the options. After the answer, you can put a comment explaining why you chose that option on the next line."," Does the customer ask for a refund in this ticket? Ticket: I'm concerned about the vehicle's cleanliness. It was not up to the standard I expect. No Yes Only 1 option may be selected. Please respond with just your answer. After the answer, you can put a comment explaining your response.","You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}"," If the primary issue in this ticket is safety, was there an accident where someone was hurt? Ticket: I'm concerned about the vehicle's cleanliness. It was not up to the standard I expect. Yes No Not applicable Only 1 option may be selected. Respond only with a string corresponding to one of the options. After the answer, you can put a comment explaining why you chose that option on the next line.",0.00065,"{'id': 'chatcmpl-AeOLDZlv2c2bgEbtuH2Sq8k5x9imD', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': 'No \nThe ticket mentions concerns about cleanliness, not safety or any accidents involving injury.', 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190051, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_a79d8dac1f', 'usage': {'completion_tokens': 17, 'prompt_tokens': 138, 'total_tokens': 155, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}","{'id': 'chatcmpl-AeOLCIWYM0O7LNPRDNcK0RSY8TynI', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': 'Somewhat negative \nThe customer expresses dissatisfaction with the cleanliness of the vehicle, indicating a concern and expectation not being met, which suggests a somewhat negative sentiment.', 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190050, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_9faba9f038', 'usage': {'completion_tokens': 31, 'prompt_tokens': 136, 'total_tokens': 167, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}",1538.4615384615386,1886.7924528301887,"{'id': 'chatcmpl-AeOLC9TNQVn6pxQlmwRnbgE3flVSk', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': '[1]\n\nThe issue mentioned in the ticket is specifically about cleanliness, which corresponds to option 1.', 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190050, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_a79d8dac1f', 'usage': {'completion_tokens': 21, 'prompt_tokens': 159, 'total_tokens': 180, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}",0.000685,1941.7475728155339,0.00053,0.0006075,"{'id': 'chatcmpl-AeOLC5Iroi76WqjGrqJMxvu2nDcqY', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': ""The primary issue in this ticket is the customer's concern about the cleanliness of the vehicle. They feel that the vehicle was not cleaned to the standard they expect. Addressing this issue would involve ensuring the vehicle is thoroughly cleaned and possibly offering an apology or compensation to the customer for their inconvenience."", 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190050, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_a79d8dac1f', 'usage': {'completion_tokens': 57, 'prompt_tokens': 79, 'total_tokens': 136, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}",0.0007675,1302.9315960912054,"{'id': 'chatcmpl-AeOLCIktqxFVXGnD4Tz9K2pmBdepJ', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': ""2 \nWhile cleanliness is important for customer satisfaction, it typically doesn't pose an immediate operational or safety issue, thus assigning a moderate priority level."", 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190050, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_a79d8dac1f', 'usage': {'completion_tokens': 28, 'prompt_tokens': 162, 'total_tokens': 190, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}",1646.0905349794239,1459.8540145985403,0.000515,"{'id': 'chatcmpl-AeOLDcCaWF7nBTNM8AeatcjX2vcsT', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': ""No\n\nThe customer expresses a concern about the vehicle's cleanliness but does not explicitly ask for a refund in the ticket."", 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190051, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_a79d8dac1f', 'usage': {'completion_tokens': 24, 'prompt_tokens': 116, 'total_tokens': 140, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}",0,Does the customer ask for a refund in this ticket? Ticket: {{ ticket }},"If the primary issue in this ticket is safety, was there an accident where someone was hurt? Ticket: {{ ticket }}",What is the primary issue in this ticket? Ticket: {{ ticket }},Check all of the issues mentioned in this ticket: {{ ticket }},"On a scale from 0 to 5, what is the priority level of this ticket? Ticket: {{ ticket }}",What is the sentiment of this ticket? Ticket: {{ ticket }},"['safety', 'cleanliness', 'driver performance', 'GPS/route', 'lost item', 'other']","['Very positive', 'Somewhat positive', 'Neutral', 'Somewhat negative', 'Very negative']",,"['No', 'Yes']","['Yes', 'No', 'Not applicable']","[0, 1, 2, 3, 4, 5]",linear_scale,multiple_choice,multiple_choice,yes_no,free_text,checkbox,,The customer expresses a concern about the vehicle's cleanliness but does not explicitly ask for a refund in the ticket.,"While cleanliness is important for customer satisfaction, it typically doesn't pose an immediate operational or safety issue, thus assigning a moderate priority level.","The issue mentioned in the ticket is specifically about cleanliness, which corresponds to option 1.","The customer expresses dissatisfaction with the cleanliness of the vehicle, indicating a concern and expectation not being met, which suggests a somewhat negative sentiment.","The ticket mentions concerns about cleanliness, not safety or any accidents involving injury.","Somewhat negative The customer expresses dissatisfaction with the cleanliness of the vehicle, indicating a concern and expectation not being met, which suggests a somewhat negative sentiment.","[1] The issue mentioned in the ticket is specifically about cleanliness, which corresponds to option 1.","No The customer expresses a concern about the vehicle's cleanliness but does not explicitly ask for a refund in the ticket.",The primary issue in this ticket is the customer's concern about the cleanliness of the vehicle. They feel that the vehicle was not cleaned to the standard they expect. Addressing this issue would involve ensuring the vehicle is thoroughly cleaned and possibly offering an apology or compensation to the customer for their inconvenience.,"No The ticket mentions concerns about cleanliness, not safety or any accidents involving injury.","2 While cleanliness is important for customer satisfaction, it typically doesn't pose an immediate operational or safety issue, thus assigning a moderate priority level." Not applicable,Somewhat negative,No,The primary issue in this ticket is that the app crashes whenever the user attempts to book a ride. The user is requesting a fix for this problem.,5,['other'],The app keeps crashing every time I try to book a ride. Please fix this issue.,You are an expert customer service agent.,Agent_7,15,You are answering questions as if you were a human. Do not break character.,0,1,0,gpt-4o,0.5,False,1000,3,What is the primary issue in this ticket? Ticket: The app keeps crashing every time I try to book a ride. Please fix this issue.,"You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}","You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}","Check all of the issues mentioned in this ticket: The app keeps crashing every time I try to book a ride. Please fix this issue. 0: safety 1: cleanliness 2: driver performance 3: GPS/route 4: lost item 5: other Please respond only with a comma-separated list of the code of the options that apply, with square brackets. E.g., [0, 1, 3] After the answer, you can put a comment explaining your choice on the next line.","On a scale from 0 to 5, what is the priority level of this ticket? Ticket: The app keeps crashing every time I try to book a ride. Please fix this issue. 0 : Lowest 1 : 2 : 3 : 4 : 5 : Highest Only 1 option may be selected. Respond only with the code corresponding to one of the options. E.g., ""1"" or ""5"" by itself. After the answer, you can put a comment explaining why you chose that option on the next line.","You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}","You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}","You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}"," What is the sentiment of this ticket? Ticket: The app keeps crashing every time I try to book a ride. Please fix this issue. Very positive Somewhat positive Neutral Somewhat negative Very negative Only 1 option may be selected. Respond only with a string corresponding to one of the options. After the answer, you can put a comment explaining why you chose that option on the next line."," Does the customer ask for a refund in this ticket? Ticket: The app keeps crashing every time I try to book a ride. Please fix this issue. No Yes Only 1 option may be selected. Please respond with just your answer. After the answer, you can put a comment explaining your response.","You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}"," If the primary issue in this ticket is safety, was there an accident where someone was hurt? Ticket: The app keeps crashing every time I try to book a ride. Please fix this issue. Yes No Not applicable Only 1 option may be selected. Respond only with a string corresponding to one of the options. After the answer, you can put a comment explaining why you chose that option on the next line.",0.00073,"{'id': 'chatcmpl-AeOLCLTGCZbqJTv2j2Yd7WIn4qyPt', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': 'Not applicable\n\nThe ticket does not mention any accident or injury, only an app functionality issue.', 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190050, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_9faba9f038', 'usage': {'completion_tokens': 19, 'prompt_tokens': 138, 'total_tokens': 157, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}","{'id': 'chatcmpl-AeOLC8hVMqiECOyYcDQw56OO8WiFg', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': 'Somewhat negative\n\nThe sentiment is somewhat negative because the customer is experiencing frustration with the app crashing, but they are still politely asking for the issue to be fixed rather than expressing anger or dissatisfaction.', 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190050, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_a79d8dac1f', 'usage': {'completion_tokens': 39, 'prompt_tokens': 136, 'total_tokens': 175, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}",1369.8630136986303,2173.913043478261,"{'id': 'chatcmpl-AeOLCevg56I8nPivQqwMUnysatyzD', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': '[5] \nThe issue mentioned in the ticket is related to the app crashing, which fits under ""other"" as it doesn\'t relate to the specific categories like safety, cleanliness, driver performance, GPS/route, or lost item.', 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190050, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_9faba9f038', 'usage': {'completion_tokens': 47, 'prompt_tokens': 159, 'total_tokens': 206, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}",0.000735,1869.1588785046729,0.00046,0.0008675,"{'id': 'chatcmpl-AeOLDgEEwCOXm7TRUAkulODJpHJKz', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': 'The primary issue in this ticket is that the app crashes whenever the user attempts to book a ride. The user is requesting a fix for this problem.', 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190051, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_a34b2727d6', 'usage': {'completion_tokens': 30, 'prompt_tokens': 79, 'total_tokens': 109, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}",0.0004975,2010.0502512562814,"{'id': 'chatcmpl-AeOLCNePJ7CXAWIWrUJIUft3v4EH5', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': '5 \nThis issue directly affects the core functionality of the app, preventing users from booking rides, which is likely to result in significant user dissatisfaction and potential revenue loss.', 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190050, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_f785eb5f47', 'usage': {'completion_tokens': 33, 'prompt_tokens': 162, 'total_tokens': 195, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}",1152.7377521613832,1360.544217687075,0.000535,"{'id': 'chatcmpl-AeOLCjNK1fN9zEusiWvucrfEX4vEE', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': 'No\n\nThe customer is requesting a fix for the app issue, not a refund.', 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190050, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_9faba9f038', 'usage': {'completion_tokens': 17, 'prompt_tokens': 116, 'total_tokens': 133, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}",0,Does the customer ask for a refund in this ticket? Ticket: {{ ticket }},"If the primary issue in this ticket is safety, was there an accident where someone was hurt? Ticket: {{ ticket }}",What is the primary issue in this ticket? Ticket: {{ ticket }},Check all of the issues mentioned in this ticket: {{ ticket }},"On a scale from 0 to 5, what is the priority level of this ticket? Ticket: {{ ticket }}",What is the sentiment of this ticket? Ticket: {{ ticket }},"['safety', 'cleanliness', 'driver performance', 'GPS/route', 'lost item', 'other']","['Very positive', 'Somewhat positive', 'Neutral', 'Somewhat negative', 'Very negative']",,"['No', 'Yes']","['Yes', 'No', 'Not applicable']","[0, 1, 2, 3, 4, 5]",linear_scale,multiple_choice,multiple_choice,yes_no,free_text,checkbox,,"The customer is requesting a fix for the app issue, not a refund.","This issue directly affects the core functionality of the app, preventing users from booking rides, which is likely to result in significant user dissatisfaction and potential revenue loss.","The issue mentioned in the ticket is related to the app crashing, which fits under ""other"" as it doesn't relate to the specific categories like safety, cleanliness, driver performance, GPS/route, or lost item.","The sentiment is somewhat negative because the customer is experiencing frustration with the app crashing, but they are still politely asking for the issue to be fixed rather than expressing anger or dissatisfaction.","The ticket does not mention any accident or injury, only an app functionality issue.","Somewhat negative The sentiment is somewhat negative because the customer is experiencing frustration with the app crashing, but they are still politely asking for the issue to be fixed rather than expressing anger or dissatisfaction.","[5] The issue mentioned in the ticket is related to the app crashing, which fits under ""other"" as it doesn't relate to the specific categories like safety, cleanliness, driver performance, GPS/route, or lost item.","No The customer is requesting a fix for the app issue, not a refund.",The primary issue in this ticket is that the app crashes whenever the user attempts to book a ride. The user is requesting a fix for this problem.,"Not applicable The ticket does not mention any accident or injury, only an app functionality issue.","5 This issue directly affects the core functionality of the app, preventing users from booking rides, which is likely to result in significant user dissatisfaction and potential revenue loss." Not applicable,Very positive,No,"The primary issue in this ticket is not a complaint or problem, but rather positive feedback. The customer is expressing satisfaction with their driver, highlighting the driver's safe driving, politeness, and the cleanliness of the car. This is a commendation rather than an issue.",0,"['safety', 'cleanliness', 'driver performance']","My driver was exceptional - safe driving, polite, and the car was spotless. Kudos!",You are an expert customer service agent.,Agent_8,15,You are answering questions as if you were a human. Do not break character.,0,1,0,gpt-4o,0.5,False,1000,3,"What is the primary issue in this ticket? Ticket: My driver was exceptional - safe driving, polite, and the car was spotless. Kudos!","You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}","You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}","Check all of the issues mentioned in this ticket: My driver was exceptional - safe driving, polite, and the car was spotless. Kudos! 0: safety 1: cleanliness 2: driver performance 3: GPS/route 4: lost item 5: other Please respond only with a comma-separated list of the code of the options that apply, with square brackets. E.g., [0, 1, 3] After the answer, you can put a comment explaining your choice on the next line.","On a scale from 0 to 5, what is the priority level of this ticket? Ticket: My driver was exceptional - safe driving, polite, and the car was spotless. Kudos! 0 : Lowest 1 : 2 : 3 : 4 : 5 : Highest Only 1 option may be selected. Respond only with the code corresponding to one of the options. E.g., ""1"" or ""5"" by itself. After the answer, you can put a comment explaining why you chose that option on the next line.","You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}","You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}","You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}"," What is the sentiment of this ticket? Ticket: My driver was exceptional - safe driving, polite, and the car was spotless. Kudos! Very positive Somewhat positive Neutral Somewhat negative Very negative Only 1 option may be selected. Respond only with a string corresponding to one of the options. After the answer, you can put a comment explaining why you chose that option on the next line."," Does the customer ask for a refund in this ticket? Ticket: My driver was exceptional - safe driving, polite, and the car was spotless. Kudos! No Yes Only 1 option may be selected. Please respond with just your answer. After the answer, you can put a comment explaining your response.","You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}"," If the primary issue in this ticket is safety, was there an accident where someone was hurt? Ticket: My driver was exceptional - safe driving, polite, and the car was spotless. Kudos! Yes No Not applicable Only 1 option may be selected. Respond only with a string corresponding to one of the options. After the answer, you can put a comment explaining why you chose that option on the next line.",0.00063,"{'id': 'chatcmpl-AeOLDiFEmrhZK8gGPJ2LL0SKjb5Bz', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': ""Not applicable\n\nThe ticket is a compliment highlighting the driver's exceptional service, with no mention of an accident or injury."", 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190051, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_a79d8dac1f', 'usage': {'completion_tokens': 23, 'prompt_tokens': 138, 'total_tokens': 161, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}","{'id': 'chatcmpl-AeOLC6Ggy21c7DpG1EFsMgJzNWqCO', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': 'Very positive \nThe ticket expresses high praise for the driver, highlighting safe driving, politeness, and cleanliness, which indicates a very positive sentiment.', 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190050, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_9faba9f038', 'usage': {'completion_tokens': 29, 'prompt_tokens': 136, 'total_tokens': 165, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}",1587.3015873015872,2083.3333333333335,"{'id': 'chatcmpl-AeOLCwwo7rl5zMFCQoHSpCTNusZL6', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': ""[0, 1, 2]\n\nThe ticket mentions safe driving (safety), a spotless car (cleanliness), and the driver's polite behavior (driver performance)."", 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190050, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_a79d8dac1f', 'usage': {'completion_tokens': 34, 'prompt_tokens': 159, 'total_tokens': 193, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}",0.000615,1739.1304347826087,0.00048,0.0007375000000000001,"{'id': 'chatcmpl-AeOLCgOo6vkWt6QZXeBV47UYRKYHh', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': ""The primary issue in this ticket is not a complaint or problem, but rather positive feedback. The customer is expressing satisfaction with their driver, highlighting the driver's safe driving, politeness, and the cleanliness of the car. This is a commendation rather than an issue."", 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190050, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_a79d8dac1f', 'usage': {'completion_tokens': 53, 'prompt_tokens': 79, 'total_tokens': 132, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}",0.0007275,1374.5704467353953,"{'id': 'chatcmpl-AeOLCrpaawXS3jvGQg7iQ3mGhqMaJ', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': ""0 \nThis ticket is a positive feedback and doesn't require immediate action, so it is the lowest priority."", 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190050, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_9faba9f038', 'usage': {'completion_tokens': 21, 'prompt_tokens': 162, 'total_tokens': 183, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}",1355.9322033898304,1626.0162601626016,0.000575,"{'id': 'chatcmpl-AeOLDs1ZEA2Zrf5UGdX2p2XDzbFas', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': ""No\n\nThe ticket is a compliment about the driver's service, not a request for a refund."", 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190051, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_a79d8dac1f', 'usage': {'completion_tokens': 19, 'prompt_tokens': 116, 'total_tokens': 135, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}",0,Does the customer ask for a refund in this ticket? Ticket: {{ ticket }},"If the primary issue in this ticket is safety, was there an accident where someone was hurt? Ticket: {{ ticket }}",What is the primary issue in this ticket? Ticket: {{ ticket }},Check all of the issues mentioned in this ticket: {{ ticket }},"On a scale from 0 to 5, what is the priority level of this ticket? Ticket: {{ ticket }}",What is the sentiment of this ticket? Ticket: {{ ticket }},"['safety', 'cleanliness', 'driver performance', 'GPS/route', 'lost item', 'other']","['Very positive', 'Somewhat positive', 'Neutral', 'Somewhat negative', 'Very negative']",,"['No', 'Yes']","['Yes', 'No', 'Not applicable']","[0, 1, 2, 3, 4, 5]",linear_scale,multiple_choice,multiple_choice,yes_no,free_text,checkbox,,"The ticket is a compliment about the driver's service, not a request for a refund.","This ticket is a positive feedback and doesn't require immediate action, so it is the lowest priority.","The ticket mentions safe driving (safety), a spotless car (cleanliness), and the driver's polite behavior (driver performance).","The ticket expresses high praise for the driver, highlighting safe driving, politeness, and cleanliness, which indicates a very positive sentiment.","The ticket is a compliment highlighting the driver's exceptional service, with no mention of an accident or injury.","Very positive The ticket expresses high praise for the driver, highlighting safe driving, politeness, and cleanliness, which indicates a very positive sentiment.","[0, 1, 2] The ticket mentions safe driving (safety), a spotless car (cleanliness), and the driver's polite behavior (driver performance).","No The ticket is a compliment about the driver's service, not a request for a refund.","The primary issue in this ticket is not a complaint or problem, but rather positive feedback. The customer is expressing satisfaction with their driver, highlighting the driver's safe driving, politeness, and the cleanliness of the car. This is a commendation rather than an issue.","Not applicable The ticket is a compliment highlighting the driver's exceptional service, with no mention of an accident or injury.","0 This ticket is a positive feedback and doesn't require immediate action, so it is the lowest priority." Not applicable,Very negative,No,The primary issue in this ticket is the customer's feeling of being unsafe due to the driver's erratic behavior. This is a serious concern that requires immediate attention to ensure the safety of passengers and to address any potential misconduct by the driver.,5,"['safety', 'driver performance']",I felt unsafe during my ride due to the driver's erratic behavior. This needs to be addressed immediately.,You are an expert customer service agent.,Agent_9,15,You are answering questions as if you were a human. Do not break character.,0,1,0,gpt-4o,0.5,False,1000,3,What is the primary issue in this ticket? Ticket: I felt unsafe during my ride due to the driver's erratic behavior. This needs to be addressed immediately.,"You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}","You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}","Check all of the issues mentioned in this ticket: I felt unsafe during my ride due to the driver's erratic behavior. This needs to be addressed immediately. 0: safety 1: cleanliness 2: driver performance 3: GPS/route 4: lost item 5: other Please respond only with a comma-separated list of the code of the options that apply, with square brackets. E.g., [0, 1, 3] After the answer, you can put a comment explaining your choice on the next line.","On a scale from 0 to 5, what is the priority level of this ticket? Ticket: I felt unsafe during my ride due to the driver's erratic behavior. This needs to be addressed immediately. 0 : Lowest 1 : 2 : 3 : 4 : 5 : Highest Only 1 option may be selected. Respond only with the code corresponding to one of the options. E.g., ""1"" or ""5"" by itself. After the answer, you can put a comment explaining why you chose that option on the next line.","You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}","You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}","You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}"," What is the sentiment of this ticket? Ticket: I felt unsafe during my ride due to the driver's erratic behavior. This needs to be addressed immediately. Very positive Somewhat positive Neutral Somewhat negative Very negative Only 1 option may be selected. Respond only with a string corresponding to one of the options. After the answer, you can put a comment explaining why you chose that option on the next line."," Does the customer ask for a refund in this ticket? Ticket: I felt unsafe during my ride due to the driver's erratic behavior. This needs to be addressed immediately. No Yes Only 1 option may be selected. Please respond with just your answer. After the answer, you can put a comment explaining your response.","You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}"," If the primary issue in this ticket is safety, was there an accident where someone was hurt? Ticket: I felt unsafe during my ride due to the driver's erratic behavior. This needs to be addressed immediately. Yes No Not applicable Only 1 option may be selected. Respond only with a string corresponding to one of the options. After the answer, you can put a comment explaining why you chose that option on the next line.",0.0006175,"{'id': 'chatcmpl-AeOLDsSVfAzsqBa3JAISUGj6dpaVr', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': ""Not applicable\n\nThe ticket mentions feeling unsafe due to the driver's behavior but does not specify that an accident occurred or that someone was hurt."", 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190051, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_9faba9f038', 'usage': {'completion_tokens': 27, 'prompt_tokens': 141, 'total_tokens': 168, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}","{'id': 'chatcmpl-AeOLCok03ybme8mb2MGnPFVgHbmcz', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': ""Very negative \nThe customer expresses feeling unsafe and describes the driver's behavior as erratic, which indicates a significant level of concern and dissatisfaction."", 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190050, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_a79d8dac1f', 'usage': {'completion_tokens': 27, 'prompt_tokens': 139, 'total_tokens': 166, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}",1619.4331983805669,1646.0905349794239,"{'id': 'chatcmpl-AeOLCkeRw3vCr3xmo8HRqYOyRo2ke', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': ""[0, 2]\n\nSafety and driver performance are the issues mentioned, as the customer felt unsafe due to the driver's erratic behavior."", 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190050, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_9faba9f038', 'usage': {'completion_tokens': 28, 'prompt_tokens': 162, 'total_tokens': 190, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}",0.0008025,1606.425702811245,0.0006075,0.000685,"{'id': 'chatcmpl-AeOLDteGBIM35pXvdEBfViAuPPP1z', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': ""The primary issue in this ticket is the customer's feeling of being unsafe due to the driver's erratic behavior. This is a serious concern that requires immediate attention to ensure the safety of passengers and to address any potential misconduct by the driver."", 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190051, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_9faba9f038', 'usage': {'completion_tokens': 46, 'prompt_tokens': 82, 'total_tokens': 128, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}",0.000665,1503.7593984962407,"{'id': 'chatcmpl-AeOLCB4fIT7pjorO6rQar3FjwxB1Y', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': ""5 \nThis ticket should be prioritized at the highest level because it involves a safety concern, which requires immediate attention to ensure the safety of passengers and address any potential risks associated with the driver's behavior."", 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190050, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_9faba9f038', 'usage': {'completion_tokens': 39, 'prompt_tokens': 165, 'total_tokens': 204, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}",1459.8540145985403,1246.105919003115,0.0006225,"{'id': 'chatcmpl-AeOLCjn69cdgnvQrIKrOtZUfUZTWD', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': ""No\n\nThe customer expresses concern about the driver's behavior and requests that the issue be addressed, but they do not explicitly ask for a refund in their message."", 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190050, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_9faba9f038', 'usage': {'completion_tokens': 31, 'prompt_tokens': 119, 'total_tokens': 150, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}",0,Does the customer ask for a refund in this ticket? Ticket: {{ ticket }},"If the primary issue in this ticket is safety, was there an accident where someone was hurt? Ticket: {{ ticket }}",What is the primary issue in this ticket? Ticket: {{ ticket }},Check all of the issues mentioned in this ticket: {{ ticket }},"On a scale from 0 to 5, what is the priority level of this ticket? Ticket: {{ ticket }}",What is the sentiment of this ticket? Ticket: {{ ticket }},"['safety', 'cleanliness', 'driver performance', 'GPS/route', 'lost item', 'other']","['Very positive', 'Somewhat positive', 'Neutral', 'Somewhat negative', 'Very negative']",,"['No', 'Yes']","['Yes', 'No', 'Not applicable']","[0, 1, 2, 3, 4, 5]",linear_scale,multiple_choice,multiple_choice,yes_no,free_text,checkbox,,"The customer expresses concern about the driver's behavior and requests that the issue be addressed, but they do not explicitly ask for a refund in their message.","This ticket should be prioritized at the highest level because it involves a safety concern, which requires immediate attention to ensure the safety of passengers and address any potential risks associated with the driver's behavior.","Safety and driver performance are the issues mentioned, as the customer felt unsafe due to the driver's erratic behavior.","The customer expresses feeling unsafe and describes the driver's behavior as erratic, which indicates a significant level of concern and dissatisfaction.",The ticket mentions feeling unsafe due to the driver's behavior but does not specify that an accident occurred or that someone was hurt.,"Very negative The customer expresses feeling unsafe and describes the driver's behavior as erratic, which indicates a significant level of concern and dissatisfaction.","[0, 2] Safety and driver performance are the issues mentioned, as the customer felt unsafe due to the driver's erratic behavior.","No The customer expresses concern about the driver's behavior and requests that the issue be addressed, but they do not explicitly ask for a refund in their message.",The primary issue in this ticket is the customer's feeling of being unsafe due to the driver's erratic behavior. This is a serious concern that requires immediate attention to ensure the safety of passengers and to address any potential misconduct by the driver.,"Not applicable The ticket mentions feeling unsafe due to the driver's behavior but does not specify that an accident occurred or that someone was hurt.","5 This ticket should be prioritized at the highest level because it involves a safety concern, which requires immediate attention to ensure the safety of passengers and address any potential risks associated with the driver's behavior." No,Very negative,No,"The primary issue in this ticket is that the driver did not follow the customer's preferred route, which the customer believes is shorter, leading to dissatisfaction with the service. As an expert customer service agent, I would address the customer's concern by acknowledging their frustration, explaining any possible reasons for the driver's decision (such as traffic conditions or company policy), and offering a resolution or compensation if appropriate.",2,"['driver performance', 'GPS/route']","The driver refused to follow my preferred route, which is shorter. I'm not satisfied with the service.",You are an expert customer service agent.,Agent_10,15,You are answering questions as if you were a human. Do not break character.,0,1,0,gpt-4o,0.5,False,1000,3,"What is the primary issue in this ticket? Ticket: The driver refused to follow my preferred route, which is shorter. I'm not satisfied with the service.","You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}","You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}","Check all of the issues mentioned in this ticket: The driver refused to follow my preferred route, which is shorter. I'm not satisfied with the service. 0: safety 1: cleanliness 2: driver performance 3: GPS/route 4: lost item 5: other Please respond only with a comma-separated list of the code of the options that apply, with square brackets. E.g., [0, 1, 3] After the answer, you can put a comment explaining your choice on the next line.","On a scale from 0 to 5, what is the priority level of this ticket? Ticket: The driver refused to follow my preferred route, which is shorter. I'm not satisfied with the service. 0 : Lowest 1 : 2 : 3 : 4 : 5 : Highest Only 1 option may be selected. Respond only with the code corresponding to one of the options. E.g., ""1"" or ""5"" by itself. After the answer, you can put a comment explaining why you chose that option on the next line.","You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}","You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}","You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}"," What is the sentiment of this ticket? Ticket: The driver refused to follow my preferred route, which is shorter. I'm not satisfied with the service. Very positive Somewhat positive Neutral Somewhat negative Very negative Only 1 option may be selected. Respond only with a string corresponding to one of the options. After the answer, you can put a comment explaining why you chose that option on the next line."," Does the customer ask for a refund in this ticket? Ticket: The driver refused to follow my preferred route, which is shorter. I'm not satisfied with the service. No Yes Only 1 option may be selected. Please respond with just your answer. After the answer, you can put a comment explaining your response.","You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}"," If the primary issue in this ticket is safety, was there an accident where someone was hurt? Ticket: The driver refused to follow my preferred route, which is shorter. I'm not satisfied with the service. Yes No Not applicable Only 1 option may be selected. Respond only with a string corresponding to one of the options. After the answer, you can put a comment explaining why you chose that option on the next line.",0.000615,"{'id': 'chatcmpl-AeOLCZPfd0sbnJ2o5ozNh5KoviSij', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': ""No \nThe ticket does not mention any accident or injury, only dissatisfaction with the driver's route choice."", 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190050, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_a79d8dac1f', 'usage': {'completion_tokens': 20, 'prompt_tokens': 140, 'total_tokens': 160, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}","{'id': 'chatcmpl-AeOLCJGGWd2T4ExC2hqaWXkT4uOWO', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': 'Very negative \nThe customer expresses dissatisfaction with the service and mentions that the driver refused to accommodate their request, indicating a strong negative sentiment.', 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190050, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_a79d8dac1f', 'usage': {'completion_tokens': 27, 'prompt_tokens': 138, 'total_tokens': 165, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}",1626.0162601626016,1600.0,"{'id': 'chatcmpl-AeOLDWJMzJLVEgYyL1hh16nxBZ3gd', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': '[2, 3]\n\nThe issues mentioned in the ticket relate to driver performance (the driver refused to follow the preferred route) and GPS/route (the mention of a preferred route being shorter).', 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190051, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_a79d8dac1f', 'usage': {'completion_tokens': 40, 'prompt_tokens': 161, 'total_tokens': 201, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}",0.0007700000000000001,1818.181818181818,0.000625,0.0008025,"{'id': 'chatcmpl-AeOLCBekeTf7HGYGZB6xgFVZrryWT', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': ""The primary issue in this ticket is that the driver did not follow the customer's preferred route, which the customer believes is shorter, leading to dissatisfaction with the service. As an expert customer service agent, I would address the customer's concern by acknowledging their frustration, explaining any possible reasons for the driver's decision (such as traffic conditions or company policy), and offering a resolution or compensation if appropriate."", 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190050, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_9faba9f038', 'usage': {'completion_tokens': 76, 'prompt_tokens': 81, 'total_tokens': 157, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}",0.0009625,1038.9610389610389,"{'id': 'chatcmpl-AeOLCCcqnpOt5kULdxmRtsDIDmbTP', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': '2 \nThis issue is important as it pertains to customer satisfaction and service quality, but it is not an urgent safety or operational issue. Addressing it will help improve customer experience.', 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190050, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_a79d8dac1f', 'usage': {'completion_tokens': 36, 'prompt_tokens': 164, 'total_tokens': 200, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}",1246.105919003115,1298.7012987012986,0.00055,"{'id': 'chatcmpl-AeOLCcwva93KAx6mrbR1t4ePoxugS', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': 'No\n\nThe ticket does not explicitly mention a request for a refund. The customer is expressing dissatisfaction with the service, but they have not directly asked for a refund.', 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190050, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_a79d8dac1f', 'usage': {'completion_tokens': 33, 'prompt_tokens': 118, 'total_tokens': 151, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}",0,Does the customer ask for a refund in this ticket? Ticket: {{ ticket }},"If the primary issue in this ticket is safety, was there an accident where someone was hurt? Ticket: {{ ticket }}",What is the primary issue in this ticket? Ticket: {{ ticket }},Check all of the issues mentioned in this ticket: {{ ticket }},"On a scale from 0 to 5, what is the priority level of this ticket? Ticket: {{ ticket }}",What is the sentiment of this ticket? Ticket: {{ ticket }},"['safety', 'cleanliness', 'driver performance', 'GPS/route', 'lost item', 'other']","['Very positive', 'Somewhat positive', 'Neutral', 'Somewhat negative', 'Very negative']",,"['No', 'Yes']","['Yes', 'No', 'Not applicable']","[0, 1, 2, 3, 4, 5]",linear_scale,multiple_choice,multiple_choice,yes_no,free_text,checkbox,,"The ticket does not explicitly mention a request for a refund. The customer is expressing dissatisfaction with the service, but they have not directly asked for a refund.","This issue is important as it pertains to customer satisfaction and service quality, but it is not an urgent safety or operational issue. Addressing it will help improve customer experience.",The issues mentioned in the ticket relate to driver performance (the driver refused to follow the preferred route) and GPS/route (the mention of a preferred route being shorter).,"The customer expresses dissatisfaction with the service and mentions that the driver refused to accommodate their request, indicating a strong negative sentiment.","The ticket does not mention any accident or injury, only dissatisfaction with the driver's route choice.","Very negative The customer expresses dissatisfaction with the service and mentions that the driver refused to accommodate their request, indicating a strong negative sentiment.","[2, 3] The issues mentioned in the ticket relate to driver performance (the driver refused to follow the preferred route) and GPS/route (the mention of a preferred route being shorter).","No The ticket does not explicitly mention a request for a refund. The customer is expressing dissatisfaction with the service, but they have not directly asked for a refund.","The primary issue in this ticket is that the driver did not follow the customer's preferred route, which the customer believes is shorter, leading to dissatisfaction with the service. As an expert customer service agent, I would address the customer's concern by acknowledging their frustration, explaining any possible reasons for the driver's decision (such as traffic conditions or company policy), and offering a resolution or compensation if appropriate.","No The ticket does not mention any accident or injury, only dissatisfaction with the driver's route choice.","2 This issue is important as it pertains to customer satisfaction and service quality, but it is not an urgent safety or operational issue. Addressing it will help improve customer experience." Not applicable,Very positive,No,"Based on the content of the ticket, it appears that there is no issue being reported. Instead, the ticket contains positive feedback regarding the quick response to a ride request and the professionalism of the driver. This is a commendation rather than a complaint or issue that needs resolution.",0,"['driver performance', 'other']",Impressed with the quick response to my ride request and the driver's professionalism.,You are an expert customer service agent.,Agent_11,15,You are answering questions as if you were a human. Do not break character.,0,1,0,gpt-4o,0.5,False,1000,3,What is the primary issue in this ticket? Ticket: Impressed with the quick response to my ride request and the driver's professionalism.,"You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}","You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}","Check all of the issues mentioned in this ticket: Impressed with the quick response to my ride request and the driver's professionalism. 0: safety 1: cleanliness 2: driver performance 3: GPS/route 4: lost item 5: other Please respond only with a comma-separated list of the code of the options that apply, with square brackets. E.g., [0, 1, 3] After the answer, you can put a comment explaining your choice on the next line.","On a scale from 0 to 5, what is the priority level of this ticket? Ticket: Impressed with the quick response to my ride request and the driver's professionalism. 0 : Lowest 1 : 2 : 3 : 4 : 5 : Highest Only 1 option may be selected. Respond only with the code corresponding to one of the options. E.g., ""1"" or ""5"" by itself. After the answer, you can put a comment explaining why you chose that option on the next line.","You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}","You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}","You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}"," What is the sentiment of this ticket? Ticket: Impressed with the quick response to my ride request and the driver's professionalism. Very positive Somewhat positive Neutral Somewhat negative Very negative Only 1 option may be selected. Respond only with a string corresponding to one of the options. After the answer, you can put a comment explaining why you chose that option on the next line."," Does the customer ask for a refund in this ticket? Ticket: Impressed with the quick response to my ride request and the driver's professionalism. No Yes Only 1 option may be selected. Please respond with just your answer. After the answer, you can put a comment explaining your response.","You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}"," If the primary issue in this ticket is safety, was there an accident where someone was hurt? Ticket: Impressed with the quick response to my ride request and the driver's professionalism. Yes No Not applicable Only 1 option may be selected. Respond only with a string corresponding to one of the options. After the answer, you can put a comment explaining why you chose that option on the next line.",0.0005825,"{'id': 'chatcmpl-AeOLCLUW9o6IGI0JWTnJxoHWPOQS1', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': ""Not applicable\n\nThe ticket does not indicate any safety issue or accident; it praises the driver's professionalism and the quick response to the ride request."", 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190050, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_a79d8dac1f', 'usage': {'completion_tokens': 28, 'prompt_tokens': 135, 'total_tokens': 163, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}","{'id': 'chatcmpl-AeOLCRSuUIKWqNoon4c7iHdF14Ndc', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': 'Very positive\n\nThe ticket expresses satisfaction with both the quick response and the professionalism of the driver, indicating a very positive sentiment.', 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190050, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_a79d8dac1f', 'usage': {'completion_tokens': 25, 'prompt_tokens': 133, 'total_tokens': 158, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}",1716.7381974248926,1659.7510373443984,"{'id': 'chatcmpl-AeOLDimvg4EExuHkD2JnyH5T0euAu', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': '[2, 5] \nThe ticket mentions the driver\'s professionalism, which relates to driver performance. ""Other"" is selected for the quick response to the ride request, as it doesn\'t fit the other categories.', 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190051, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_9faba9f038', 'usage': {'completion_tokens': 42, 'prompt_tokens': 156, 'total_tokens': 198, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}",0.0006375,1619.4331983805669,0.0006025,0.00081,"{'id': 'chatcmpl-AeOLCLscXFDvtm7IyW12BB2867tJe', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': 'Based on the content of the ticket, it appears that there is no issue being reported. Instead, the ticket contains positive feedback regarding the quick response to a ride request and the professionalism of the driver. This is a commendation rather than a complaint or issue that needs resolution.', 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190050, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_9faba9f038', 'usage': {'completion_tokens': 55, 'prompt_tokens': 76, 'total_tokens': 131, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}",0.00074,1351.3513513513515,"{'id': 'chatcmpl-AeOLCseD0saokcKXX33MgIhDxal1B', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': '0 \nThis ticket reflects positive feedback and does not indicate an issue requiring resolution, so it has the lowest priority level.', 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190050, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_a79d8dac1f', 'usage': {'completion_tokens': 24, 'prompt_tokens': 159, 'total_tokens': 183, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}",1234.567901234568,1568.627450980392,0.0006175,"{'id': 'chatcmpl-AeOLC72GAMEKlEmWBaz2XoLI7GaTz', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': ""No\n\nThe ticket expresses satisfaction with the service, specifically mentioning the quick response and the driver's professionalism. There is no indication that the customer is seeking a refund."", 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190050, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_9faba9f038', 'usage': {'completion_tokens': 32, 'prompt_tokens': 113, 'total_tokens': 145, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}",0,Does the customer ask for a refund in this ticket? Ticket: {{ ticket }},"If the primary issue in this ticket is safety, was there an accident where someone was hurt? Ticket: {{ ticket }}",What is the primary issue in this ticket? Ticket: {{ ticket }},Check all of the issues mentioned in this ticket: {{ ticket }},"On a scale from 0 to 5, what is the priority level of this ticket? Ticket: {{ ticket }}",What is the sentiment of this ticket? Ticket: {{ ticket }},"['safety', 'cleanliness', 'driver performance', 'GPS/route', 'lost item', 'other']","['Very positive', 'Somewhat positive', 'Neutral', 'Somewhat negative', 'Very negative']",,"['No', 'Yes']","['Yes', 'No', 'Not applicable']","[0, 1, 2, 3, 4, 5]",linear_scale,multiple_choice,multiple_choice,yes_no,free_text,checkbox,,"The ticket expresses satisfaction with the service, specifically mentioning the quick response and the driver's professionalism. There is no indication that the customer is seeking a refund.","This ticket reflects positive feedback and does not indicate an issue requiring resolution, so it has the lowest priority level.","The ticket mentions the driver's professionalism, which relates to driver performance. ""Other"" is selected for the quick response to the ride request, as it doesn't fit the other categories.","The ticket expresses satisfaction with both the quick response and the professionalism of the driver, indicating a very positive sentiment.",The ticket does not indicate any safety issue or accident; it praises the driver's professionalism and the quick response to the ride request.,"Very positive The ticket expresses satisfaction with both the quick response and the professionalism of the driver, indicating a very positive sentiment.","[2, 5] The ticket mentions the driver's professionalism, which relates to driver performance. ""Other"" is selected for the quick response to the ride request, as it doesn't fit the other categories.","No The ticket expresses satisfaction with the service, specifically mentioning the quick response and the driver's professionalism. There is no indication that the customer is seeking a refund.","Based on the content of the ticket, it appears that there is no issue being reported. Instead, the ticket contains positive feedback regarding the quick response to a ride request and the professionalism of the driver. This is a commendation rather than a complaint or issue that needs resolution.","Not applicable The ticket does not indicate any safety issue or accident; it praises the driver's professionalism and the quick response to the ride request.","0 This ticket reflects positive feedback and does not indicate an issue requiring resolution, so it has the lowest priority level." Not applicable,Somewhat negative,Yes,The primary issue in this ticket is an incorrect charge for a ride that the customer claims they did not take. The customer is requesting a refund for this charge.,3,['other'],I was charged for a ride I never took. Please refund me as soon as possible.,You are an expert customer service agent.,Agent_12,15,You are answering questions as if you were a human. Do not break character.,0,1,0,gpt-4o,0.5,False,1000,3,What is the primary issue in this ticket? Ticket: I was charged for a ride I never took. Please refund me as soon as possible.,"You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}","You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}","Check all of the issues mentioned in this ticket: I was charged for a ride I never took. Please refund me as soon as possible. 0: safety 1: cleanliness 2: driver performance 3: GPS/route 4: lost item 5: other Please respond only with a comma-separated list of the code of the options that apply, with square brackets. E.g., [0, 1, 3] After the answer, you can put a comment explaining your choice on the next line.","On a scale from 0 to 5, what is the priority level of this ticket? Ticket: I was charged for a ride I never took. Please refund me as soon as possible. 0 : Lowest 1 : 2 : 3 : 4 : 5 : Highest Only 1 option may be selected. Respond only with the code corresponding to one of the options. E.g., ""1"" or ""5"" by itself. After the answer, you can put a comment explaining why you chose that option on the next line.","You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}","You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}","You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}"," What is the sentiment of this ticket? Ticket: I was charged for a ride I never took. Please refund me as soon as possible. Very positive Somewhat positive Neutral Somewhat negative Very negative Only 1 option may be selected. Respond only with a string corresponding to one of the options. After the answer, you can put a comment explaining why you chose that option on the next line."," Does the customer ask for a refund in this ticket? Ticket: I was charged for a ride I never took. Please refund me as soon as possible. No Yes Only 1 option may be selected. Please respond with just your answer. After the answer, you can put a comment explaining your response.","You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}"," If the primary issue in this ticket is safety, was there an accident where someone was hurt? Ticket: I was charged for a ride I never took. Please refund me as soon as possible. Yes No Not applicable Only 1 option may be selected. Respond only with a string corresponding to one of the options. After the answer, you can put a comment explaining why you chose that option on the next line.",0.0005600000000000001,"{'id': 'chatcmpl-AeOLCtyCkRRFuNg9PpeDWOU38WN1r', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': 'Not applicable\n\nThe ticket is about a billing issue, not a safety concern.', 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190050, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_a79d8dac1f', 'usage': {'completion_tokens': 16, 'prompt_tokens': 138, 'total_tokens': 154, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}","{'id': 'chatcmpl-AeOLCnzEHgubdsib4XoXjTEsZsQJp', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': 'Somewhat negative\n\nThe ticket expresses dissatisfaction and urgency due to an incorrect charge, indicating a somewhat negative sentiment.', 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190050, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_9faba9f038', 'usage': {'completion_tokens': 22, 'prompt_tokens': 136, 'total_tokens': 158, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}",1785.7142857142856,2040.8163265306123,"{'id': 'chatcmpl-AeOLCGqJ2TvqgmvuLtfUZldpCjXwg', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': '[5] \nThe issue mentioned in the ticket is related to a charge for a ride that was not taken, which doesn\'t fit into the predefined categories except for ""other.""', 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190050, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_a79d8dac1f', 'usage': {'completion_tokens': 35, 'prompt_tokens': 159, 'total_tokens': 194, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}",0.0008049999999999999,1980.19801980198,0.00049,0.0007475,"{'id': 'chatcmpl-AeOLC7JDbPaFjqSb0nd5UaLQhWZxu', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': 'The primary issue in this ticket is an incorrect charge for a ride that the customer claims they did not take. The customer is requesting a refund for this charge.', 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190050, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_9faba9f038', 'usage': {'completion_tokens': 32, 'prompt_tokens': 79, 'total_tokens': 111, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}",0.0005175000000000001,1932.367149758454,"{'id': 'chatcmpl-AeOLC12jZkMsxn4Q9Rlh7rqYOKKl8', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': '3 \nThis situation involves a financial discrepancy, which is important to resolve promptly to maintain customer trust and satisfaction, but it does not involve immediate safety or security concerns, which would warrant a higher priority.', 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190050, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_a34b2727d6', 'usage': {'completion_tokens': 40, 'prompt_tokens': 162, 'total_tokens': 202, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}",1337.7926421404682,1242.2360248447205,0.000505,"{'id': 'chatcmpl-AeOLCaurE2AMIlUBZQu3pDo5ygeCH', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': 'Yes\n\nThe customer explicitly requests a refund by stating, ""Please refund me as soon as possible.""', 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190050, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_9faba9f038', 'usage': {'completion_tokens': 20, 'prompt_tokens': 116, 'total_tokens': 136, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}",0,Does the customer ask for a refund in this ticket? Ticket: {{ ticket }},"If the primary issue in this ticket is safety, was there an accident where someone was hurt? Ticket: {{ ticket }}",What is the primary issue in this ticket? Ticket: {{ ticket }},Check all of the issues mentioned in this ticket: {{ ticket }},"On a scale from 0 to 5, what is the priority level of this ticket? Ticket: {{ ticket }}",What is the sentiment of this ticket? Ticket: {{ ticket }},"['safety', 'cleanliness', 'driver performance', 'GPS/route', 'lost item', 'other']","['Very positive', 'Somewhat positive', 'Neutral', 'Somewhat negative', 'Very negative']",,"['No', 'Yes']","['Yes', 'No', 'Not applicable']","[0, 1, 2, 3, 4, 5]",linear_scale,multiple_choice,multiple_choice,yes_no,free_text,checkbox,,"The customer explicitly requests a refund by stating, ""Please refund me as soon as possible.""","This situation involves a financial discrepancy, which is important to resolve promptly to maintain customer trust and satisfaction, but it does not involve immediate safety or security concerns, which would warrant a higher priority.","The issue mentioned in the ticket is related to a charge for a ride that was not taken, which doesn't fit into the predefined categories except for ""other.""","The ticket expresses dissatisfaction and urgency due to an incorrect charge, indicating a somewhat negative sentiment.","The ticket is about a billing issue, not a safety concern.","Somewhat negative The ticket expresses dissatisfaction and urgency due to an incorrect charge, indicating a somewhat negative sentiment.","[5] The issue mentioned in the ticket is related to a charge for a ride that was not taken, which doesn't fit into the predefined categories except for ""other.""","Yes The customer explicitly requests a refund by stating, ""Please refund me as soon as possible.""",The primary issue in this ticket is an incorrect charge for a ride that the customer claims they did not take. The customer is requesting a refund for this charge.,"Not applicable The ticket is about a billing issue, not a safety concern.","3 This situation involves a financial discrepancy, which is important to resolve promptly to maintain customer trust and satisfaction, but it does not involve immediate safety or security concerns, which would warrant a higher priority." Not applicable,Somewhat negative,No,The primary issue in this ticket is that the customer is experiencing difficulty with a promo code that did not work as expected. The customer is seeking assistance to resolve this issue.,2,['other'],The promo code I tried to use didn't work. Can you assist with this?,You are an expert customer service agent.,Agent_13,15,You are answering questions as if you were a human. Do not break character.,0,1,0,gpt-4o,0.5,False,1000,3,What is the primary issue in this ticket? Ticket: The promo code I tried to use didn't work. Can you assist with this?,"You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}","You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}","Check all of the issues mentioned in this ticket: The promo code I tried to use didn't work. Can you assist with this? 0: safety 1: cleanliness 2: driver performance 3: GPS/route 4: lost item 5: other Please respond only with a comma-separated list of the code of the options that apply, with square brackets. E.g., [0, 1, 3] After the answer, you can put a comment explaining your choice on the next line.","On a scale from 0 to 5, what is the priority level of this ticket? Ticket: The promo code I tried to use didn't work. Can you assist with this? 0 : Lowest 1 : 2 : 3 : 4 : 5 : Highest Only 1 option may be selected. Respond only with the code corresponding to one of the options. E.g., ""1"" or ""5"" by itself. After the answer, you can put a comment explaining why you chose that option on the next line.","You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}","You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}","You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}"," What is the sentiment of this ticket? Ticket: The promo code I tried to use didn't work. Can you assist with this? Very positive Somewhat positive Neutral Somewhat negative Very negative Only 1 option may be selected. Respond only with a string corresponding to one of the options. After the answer, you can put a comment explaining why you chose that option on the next line."," Does the customer ask for a refund in this ticket? Ticket: The promo code I tried to use didn't work. Can you assist with this? No Yes Only 1 option may be selected. Please respond with just your answer. After the answer, you can put a comment explaining your response.","You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}"," If the primary issue in this ticket is safety, was there an accident where someone was hurt? Ticket: The promo code I tried to use didn't work. Can you assist with this? Yes No Not applicable Only 1 option may be selected. Respond only with a string corresponding to one of the options. After the answer, you can put a comment explaining why you chose that option on the next line.",0.0006850000000000001,"{'id': 'chatcmpl-AeOLDeaWsmnzotWhW1EAGybLMXgpN', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': ""Not applicable \nThe ticket is related to a promo code issue, which doesn't pertain to safety or accidents."", 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190051, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_9faba9f038', 'usage': {'completion_tokens': 22, 'prompt_tokens': 136, 'total_tokens': 158, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}","{'id': 'chatcmpl-AeOLCHIbZinLpIQMSFKeqPY5qZJgm', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': 'Somewhat negative\n\nThe sentiment is ""somewhat negative"" because the customer is expressing dissatisfaction due to the promo code not working, but they are still politely asking for assistance.', 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190050, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_9faba9f038', 'usage': {'completion_tokens': 35, 'prompt_tokens': 134, 'total_tokens': 169, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}",1459.85401459854,1904.7619047619048,"{'id': 'chatcmpl-AeOLCPIEM2SsgAX2xRp4al3o4f5Q4', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': '[5] \nThe issue mentioned in the ticket is related to a promo code not working, which falls under the ""other"" category.', 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190050, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_a79d8dac1f', 'usage': {'completion_tokens': 28, 'prompt_tokens': 157, 'total_tokens': 185, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}",0.0007800000000000001,1785.7142857142856,0.000525,0.0006724999999999999,"{'id': 'chatcmpl-AeOLDhfVC51SEVY8POBaGpkvgwRJ3', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': 'The primary issue in this ticket is that the customer is experiencing difficulty with a promo code that did not work as expected. The customer is seeking assistance to resolve this issue.', 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190051, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_a79d8dac1f', 'usage': {'completion_tokens': 34, 'prompt_tokens': 77, 'total_tokens': 111, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}",0.0005325,1877.9342723004695,"{'id': 'chatcmpl-AeOLCOYBuY1pS2Erbh6EjiLxXqJHg', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': ""2 \nThis issue affects the customer's ability to complete a purchase, but it is not a system-wide outage or a critical failure. It is important to resolve it promptly to ensure customer satisfaction."", 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190050, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_a79d8dac1f', 'usage': {'completion_tokens': 38, 'prompt_tokens': 160, 'total_tokens': 198, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}",1486.9888475836433,1282.051282051282,0.0005600000000000001,"{'id': 'chatcmpl-AeOLCChnC5Jmq0qjm3Wc4WOfYL3ZV', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': 'No\n\nThe ticket does not mention a request for a refund; it simply asks for assistance with a promo code issue.', 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190050, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_a79d8dac1f', 'usage': {'completion_tokens': 24, 'prompt_tokens': 114, 'total_tokens': 138, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}",0,Does the customer ask for a refund in this ticket? Ticket: {{ ticket }},"If the primary issue in this ticket is safety, was there an accident where someone was hurt? Ticket: {{ ticket }}",What is the primary issue in this ticket? Ticket: {{ ticket }},Check all of the issues mentioned in this ticket: {{ ticket }},"On a scale from 0 to 5, what is the priority level of this ticket? Ticket: {{ ticket }}",What is the sentiment of this ticket? Ticket: {{ ticket }},"['safety', 'cleanliness', 'driver performance', 'GPS/route', 'lost item', 'other']","['Very positive', 'Somewhat positive', 'Neutral', 'Somewhat negative', 'Very negative']",,"['No', 'Yes']","['Yes', 'No', 'Not applicable']","[0, 1, 2, 3, 4, 5]",linear_scale,multiple_choice,multiple_choice,yes_no,free_text,checkbox,,The ticket does not mention a request for a refund; it simply asks for assistance with a promo code issue.,"This issue affects the customer's ability to complete a purchase, but it is not a system-wide outage or a critical failure. It is important to resolve it promptly to ensure customer satisfaction.","The issue mentioned in the ticket is related to a promo code not working, which falls under the ""other"" category.","The sentiment is ""somewhat negative"" because the customer is expressing dissatisfaction due to the promo code not working, but they are still politely asking for assistance.","The ticket is related to a promo code issue, which doesn't pertain to safety or accidents.","Somewhat negative The sentiment is ""somewhat negative"" because the customer is expressing dissatisfaction due to the promo code not working, but they are still politely asking for assistance.","[5] The issue mentioned in the ticket is related to a promo code not working, which falls under the ""other"" category.","No The ticket does not mention a request for a refund; it simply asks for assistance with a promo code issue.",The primary issue in this ticket is that the customer is experiencing difficulty with a promo code that did not work as expected. The customer is seeking assistance to resolve this issue.,"Not applicable The ticket is related to a promo code issue, which doesn't pertain to safety or accidents.","2 This issue affects the customer's ability to complete a purchase, but it is not a system-wide outage or a critical failure. It is important to resolve it promptly to ensure customer satisfaction." No,Somewhat negative,No,"The primary issue in this ticket is the customer's concern about a suspicious smell in the car, which is raising worries about the hygiene standards of the vehicle. Addressing this issue would likely involve investigating the source of the smell and ensuring that the vehicle meets cleanliness and hygiene standards.",3,"['cleanliness', 'other']","There was a suspicious smell in the car, and I'm worried about hygiene standards.",You are an expert customer service agent.,Agent_14,15,You are answering questions as if you were a human. Do not break character.,0,1,0,gpt-4o,0.5,False,1000,3,"What is the primary issue in this ticket? Ticket: There was a suspicious smell in the car, and I'm worried about hygiene standards.","You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}","You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}","Check all of the issues mentioned in this ticket: There was a suspicious smell in the car, and I'm worried about hygiene standards. 0: safety 1: cleanliness 2: driver performance 3: GPS/route 4: lost item 5: other Please respond only with a comma-separated list of the code of the options that apply, with square brackets. E.g., [0, 1, 3] After the answer, you can put a comment explaining your choice on the next line.","On a scale from 0 to 5, what is the priority level of this ticket? Ticket: There was a suspicious smell in the car, and I'm worried about hygiene standards. 0 : Lowest 1 : 2 : 3 : 4 : 5 : Highest Only 1 option may be selected. Respond only with the code corresponding to one of the options. E.g., ""1"" or ""5"" by itself. After the answer, you can put a comment explaining why you chose that option on the next line.","You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}","You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}","You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}"," What is the sentiment of this ticket? Ticket: There was a suspicious smell in the car, and I'm worried about hygiene standards. Very positive Somewhat positive Neutral Somewhat negative Very negative Only 1 option may be selected. Respond only with a string corresponding to one of the options. After the answer, you can put a comment explaining why you chose that option on the next line."," Does the customer ask for a refund in this ticket? Ticket: There was a suspicious smell in the car, and I'm worried about hygiene standards. No Yes Only 1 option may be selected. Please respond with just your answer. After the answer, you can put a comment explaining your response.","You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}"," If the primary issue in this ticket is safety, was there an accident where someone was hurt? Ticket: There was a suspicious smell in the car, and I'm worried about hygiene standards. Yes No Not applicable Only 1 option may be selected. Respond only with a string corresponding to one of the options. After the answer, you can put a comment explaining why you chose that option on the next line.",0.000565,"{'id': 'chatcmpl-AeOLCP9EBEhKU8hFuCgVHVFs1QfZn', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': 'No \nThe ticket describes a concern about a suspicious smell, which relates to hygiene standards rather than a safety incident where someone was hurt.', 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190050, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_9faba9f038', 'usage': {'completion_tokens': 27, 'prompt_tokens': 136, 'total_tokens': 163, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}","{'id': 'chatcmpl-AeOLCRGSAsijyIAX1PzEC70b9SIqa', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': 'Somewhat negative \nThe ticket expresses concern and dissatisfaction about a suspicious smell, indicating a negative experience regarding hygiene standards.', 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190050, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_a79d8dac1f', 'usage': {'completion_tokens': 23, 'prompt_tokens': 134, 'total_tokens': 157, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}",1769.911504424779,1904.7619047619048,"{'id': 'chatcmpl-AeOLCn0w3VgjDiofx6Btf9MNqfLsa', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': ""[1, 5] \nThe issue of a suspicious smell in the car relates to cleanliness, and the concern about hygiene standards could be categorized as 'other' since it might encompass broader issues not explicitly listed."", 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190050, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_a79d8dac1f', 'usage': {'completion_tokens': 43, 'prompt_tokens': 157, 'total_tokens': 200, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}",0.00073,1639.3442622950818,0.000525,0.0008225,"{'id': 'chatcmpl-AeOLCbfXg8C4hlpR7JB7hay6iiYnH', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': ""The primary issue in this ticket is the customer's concern about a suspicious smell in the car, which is raising worries about the hygiene standards of the vehicle. Addressing this issue would likely involve investigating the source of the smell and ensuring that the vehicle meets cleanliness and hygiene standards."", 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190050, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_9faba9f038', 'usage': {'completion_tokens': 54, 'prompt_tokens': 77, 'total_tokens': 131, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}",0.0007325,1365.1877133105802,"{'id': 'chatcmpl-AeOLCNTiXWrfaKzhwOs9MrKtlSJOO', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': '3 \nThis issue is important because it concerns hygiene and customer comfort, but it is not an immediate safety threat. It should be addressed promptly to maintain service quality.', 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190050, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_f785eb5f47', 'usage': {'completion_tokens': 33, 'prompt_tokens': 160, 'total_tokens': 193, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}",1215.80547112462,1369.8630136986303,0.0006100000000000001,"{'id': 'chatcmpl-AeOLDOBxEaQpQl3q6H6FOrUMR4ut2', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': 'No\n\nThe customer expresses concern about the hygiene standards due to a suspicious smell but does not explicitly ask for a refund.', 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190051, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_f785eb5f47', 'usage': {'completion_tokens': 24, 'prompt_tokens': 114, 'total_tokens': 138, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}",0,Does the customer ask for a refund in this ticket? Ticket: {{ ticket }},"If the primary issue in this ticket is safety, was there an accident where someone was hurt? Ticket: {{ ticket }}",What is the primary issue in this ticket? Ticket: {{ ticket }},Check all of the issues mentioned in this ticket: {{ ticket }},"On a scale from 0 to 5, what is the priority level of this ticket? Ticket: {{ ticket }}",What is the sentiment of this ticket? Ticket: {{ ticket }},"['safety', 'cleanliness', 'driver performance', 'GPS/route', 'lost item', 'other']","['Very positive', 'Somewhat positive', 'Neutral', 'Somewhat negative', 'Very negative']",,"['No', 'Yes']","['Yes', 'No', 'Not applicable']","[0, 1, 2, 3, 4, 5]",linear_scale,multiple_choice,multiple_choice,yes_no,free_text,checkbox,,The customer expresses concern about the hygiene standards due to a suspicious smell but does not explicitly ask for a refund.,"This issue is important because it concerns hygiene and customer comfort, but it is not an immediate safety threat. It should be addressed promptly to maintain service quality.","The issue of a suspicious smell in the car relates to cleanliness, and the concern about hygiene standards could be categorized as 'other' since it might encompass broader issues not explicitly listed.","The ticket expresses concern and dissatisfaction about a suspicious smell, indicating a negative experience regarding hygiene standards.","The ticket describes a concern about a suspicious smell, which relates to hygiene standards rather than a safety incident where someone was hurt.","Somewhat negative The ticket expresses concern and dissatisfaction about a suspicious smell, indicating a negative experience regarding hygiene standards.","[1, 5] The issue of a suspicious smell in the car relates to cleanliness, and the concern about hygiene standards could be categorized as 'other' since it might encompass broader issues not explicitly listed.","No The customer expresses concern about the hygiene standards due to a suspicious smell but does not explicitly ask for a refund.","The primary issue in this ticket is the customer's concern about a suspicious smell in the car, which is raising worries about the hygiene standards of the vehicle. Addressing this issue would likely involve investigating the source of the smell and ensuring that the vehicle meets cleanliness and hygiene standards.","No The ticket describes a concern about a suspicious smell, which relates to hygiene standards rather than a safety incident where someone was hurt.","3 This issue is important because it concerns hygiene and customer comfort, but it is not an immediate safety threat. It should be addressed promptly to maintain service quality." No,Very positive,No,The primary issue in this ticket is actually not an issue at all. It appears to be a positive feedback or compliment regarding the driver's considerate behavior and assistance with luggage. It's always great to receive such positive comments about the service provided!,0,['driver performance'],"My driver was very considerate, especially helping me with my luggage. Appreciate the great service!",You are an expert customer service agent.,Agent_15,15,You are answering questions as if you were a human. Do not break character.,0,1,0,gpt-4o,0.5,False,1000,3,"What is the primary issue in this ticket? Ticket: My driver was very considerate, especially helping me with my luggage. Appreciate the great service!","You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}","You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}","Check all of the issues mentioned in this ticket: My driver was very considerate, especially helping me with my luggage. Appreciate the great service! 0: safety 1: cleanliness 2: driver performance 3: GPS/route 4: lost item 5: other Please respond only with a comma-separated list of the code of the options that apply, with square brackets. E.g., [0, 1, 3] After the answer, you can put a comment explaining your choice on the next line.","On a scale from 0 to 5, what is the priority level of this ticket? Ticket: My driver was very considerate, especially helping me with my luggage. Appreciate the great service! 0 : Lowest 1 : 2 : 3 : 4 : 5 : Highest Only 1 option may be selected. Respond only with the code corresponding to one of the options. E.g., ""1"" or ""5"" by itself. After the answer, you can put a comment explaining why you chose that option on the next line.","You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}","You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}","You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}"," What is the sentiment of this ticket? Ticket: My driver was very considerate, especially helping me with my luggage. Appreciate the great service! Very positive Somewhat positive Neutral Somewhat negative Very negative Only 1 option may be selected. Respond only with a string corresponding to one of the options. After the answer, you can put a comment explaining why you chose that option on the next line."," Does the customer ask for a refund in this ticket? Ticket: My driver was very considerate, especially helping me with my luggage. Appreciate the great service! No Yes Only 1 option may be selected. Please respond with just your answer. After the answer, you can put a comment explaining your response.","You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}"," If the primary issue in this ticket is safety, was there an accident where someone was hurt? Ticket: My driver was very considerate, especially helping me with my luggage. Appreciate the great service! Yes No Not applicable Only 1 option may be selected. Respond only with a string corresponding to one of the options. After the answer, you can put a comment explaining why you chose that option on the next line.",0.00054,"{'id': 'chatcmpl-AeOLCJzlrxQ1vmgv2KSfV2Apj383E', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': ""No \nThe ticket does not mention any accident or injury; it praises the driver's helpfulness."", 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190050, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_a79d8dac1f', 'usage': {'completion_tokens': 19, 'prompt_tokens': 138, 'total_tokens': 157, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}","{'id': 'chatcmpl-AeOLCz6Cm0GO2FNMcpF03owC3WPkT', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': ""Very positive \nThe ticket expresses appreciation and highlights the driver's considerate behavior, indicating a very positive sentiment."", 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190050, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_a79d8dac1f', 'usage': {'completion_tokens': 20, 'prompt_tokens': 136, 'total_tokens': 156, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}",1851.8518518518517,1923.0769230769229,"{'id': 'chatcmpl-AeOLCkHyGmFV0A1rpTQGdYKQFuvbZ', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': ""[2] \nThe ticket mentions the driver's considerate behavior and assistance with luggage, which relates to driver performance."", 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190050, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_a79d8dac1f', 'usage': {'completion_tokens': 22, 'prompt_tokens': 159, 'total_tokens': 181, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}",0.000575,1869.1588785046729,0.0005200000000000001,0.0006175,"{'id': 'chatcmpl-AeOLCglwtiEBWtfa7u3hlyxxmeS8q', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': ""The primary issue in this ticket is actually not an issue at all. It appears to be a positive feedback or compliment regarding the driver's considerate behavior and assistance with luggage. It's always great to receive such positive comments about the service provided!"", 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190050, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_9faba9f038', 'usage': {'completion_tokens': 46, 'prompt_tokens': 79, 'total_tokens': 125, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}",0.0006575,1520.912547528517,"{'id': 'chatcmpl-AeOLCv8YsILztgqLBajfvNoRQa3Wc', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': '0 \nThis ticket is a positive feedback and does not require urgent attention or resolution.', 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190050, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_a79d8dac1f', 'usage': {'completion_tokens': 17, 'prompt_tokens': 162, 'total_tokens': 179, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}",1619.4331983805669,1739.1304347826087,0.000535,"{'id': 'chatcmpl-AeOLCq1Kh9vBeqOOyMeYJmYHnwExw', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': ""No\n\nThe customer is expressing appreciation for the driver's service and does not mention any dissatisfaction or request for a refund."", 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190050, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_9faba9f038', 'usage': {'completion_tokens': 23, 'prompt_tokens': 116, 'total_tokens': 139, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}",0,Does the customer ask for a refund in this ticket? Ticket: {{ ticket }},"If the primary issue in this ticket is safety, was there an accident where someone was hurt? Ticket: {{ ticket }}",What is the primary issue in this ticket? Ticket: {{ ticket }},Check all of the issues mentioned in this ticket: {{ ticket }},"On a scale from 0 to 5, what is the priority level of this ticket? Ticket: {{ ticket }}",What is the sentiment of this ticket? Ticket: {{ ticket }},"['safety', 'cleanliness', 'driver performance', 'GPS/route', 'lost item', 'other']","['Very positive', 'Somewhat positive', 'Neutral', 'Somewhat negative', 'Very negative']",,"['No', 'Yes']","['Yes', 'No', 'Not applicable']","[0, 1, 2, 3, 4, 5]",linear_scale,multiple_choice,multiple_choice,yes_no,free_text,checkbox,,The customer is expressing appreciation for the driver's service and does not mention any dissatisfaction or request for a refund.,This ticket is a positive feedback and does not require urgent attention or resolution.,"The ticket mentions the driver's considerate behavior and assistance with luggage, which relates to driver performance.","The ticket expresses appreciation and highlights the driver's considerate behavior, indicating a very positive sentiment.",The ticket does not mention any accident or injury; it praises the driver's helpfulness.,"Very positive The ticket expresses appreciation and highlights the driver's considerate behavior, indicating a very positive sentiment.","[2] The ticket mentions the driver's considerate behavior and assistance with luggage, which relates to driver performance.","No The customer is expressing appreciation for the driver's service and does not mention any dissatisfaction or request for a refund.",The primary issue in this ticket is actually not an issue at all. It appears to be a positive feedback or compliment regarding the driver's considerate behavior and assistance with luggage. It's always great to receive such positive comments about the service provided!,"No The ticket does not mention any accident or injury; it praises the driver's helpfulness.","0 This ticket is a positive feedback and does not require urgent attention or resolution." No,Somewhat negative,No,"The primary issue in this ticket is the inaccuracy of the app's GPS, which resulted in directing the driver to the wrong pick-up location. This can lead to delays and inconvenience for both the driver and the customer, so it's important to address the GPS functionality to ensure it provides accurate directions.",4,['GPS/route'],The app's GPS seems inaccurate. It directed the driver to the wrong pick-up location.,You are an expert customer service agent.,Agent_16,15,You are answering questions as if you were a human. Do not break character.,0,1,0,gpt-4o,0.5,False,1000,3,What is the primary issue in this ticket? Ticket: The app's GPS seems inaccurate. It directed the driver to the wrong pick-up location.,"You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}","You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}","Check all of the issues mentioned in this ticket: The app's GPS seems inaccurate. It directed the driver to the wrong pick-up location. 0: safety 1: cleanliness 2: driver performance 3: GPS/route 4: lost item 5: other Please respond only with a comma-separated list of the code of the options that apply, with square brackets. E.g., [0, 1, 3] After the answer, you can put a comment explaining your choice on the next line.","On a scale from 0 to 5, what is the priority level of this ticket? Ticket: The app's GPS seems inaccurate. It directed the driver to the wrong pick-up location. 0 : Lowest 1 : 2 : 3 : 4 : 5 : Highest Only 1 option may be selected. Respond only with the code corresponding to one of the options. E.g., ""1"" or ""5"" by itself. After the answer, you can put a comment explaining why you chose that option on the next line.","You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}","You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}","You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}"," What is the sentiment of this ticket? Ticket: The app's GPS seems inaccurate. It directed the driver to the wrong pick-up location. Very positive Somewhat positive Neutral Somewhat negative Very negative Only 1 option may be selected. Respond only with a string corresponding to one of the options. After the answer, you can put a comment explaining why you chose that option on the next line."," Does the customer ask for a refund in this ticket? Ticket: The app's GPS seems inaccurate. It directed the driver to the wrong pick-up location. No Yes Only 1 option may be selected. Please respond with just your answer. After the answer, you can put a comment explaining your response.","You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}"," If the primary issue in this ticket is safety, was there an accident where someone was hurt? Ticket: The app's GPS seems inaccurate. It directed the driver to the wrong pick-up location. Yes No Not applicable Only 1 option may be selected. Respond only with a string corresponding to one of the options. After the answer, you can put a comment explaining why you chose that option on the next line.",0.00063,"{'id': 'chatcmpl-AeOLCt43WrqFYZmgbSdcvXLWoCQur', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': ""No \nThe issue mentioned is about GPS inaccuracy, and there's no indication of an accident or injury in the ticket description."", 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190050, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_9faba9f038', 'usage': {'completion_tokens': 25, 'prompt_tokens': 138, 'total_tokens': 163, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}","{'id': 'chatcmpl-AeOLDW6PwI8dhHbM5t5JRSXfLOZoC', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': ""Somewhat negative \nThe sentiment is somewhat negative because the customer is experiencing a problem with the app's GPS, which is leading to an inconvenience."", 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190051, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_a79d8dac1f', 'usage': {'completion_tokens': 29, 'prompt_tokens': 136, 'total_tokens': 165, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}",1587.3015873015872,1818.1818181818185,"{'id': 'chatcmpl-AeOLDbyXyHxAD9mPdcxPMymzK5xhV', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': ""[3]\n\nThe issue mentioned in the ticket is related to the GPS/route, as it describes the app's GPS directing the driver to the wrong pick-up location."", 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190051, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_a79d8dac1f', 'usage': {'completion_tokens': 34, 'prompt_tokens': 159, 'total_tokens': 193, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}",0.000675,1680.672268907563,0.0005499999999999999,0.0007375000000000001,"{'id': 'chatcmpl-AeOLCsomuk6QY7ktGERwbGzjjZf5I', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': ""The primary issue in this ticket is the inaccuracy of the app's GPS, which resulted in directing the driver to the wrong pick-up location. This can lead to delays and inconvenience for both the driver and the customer, so it's important to address the GPS functionality to ensure it provides accurate directions."", 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190050, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_a79d8dac1f', 'usage': {'completion_tokens': 59, 'prompt_tokens': 79, 'total_tokens': 138, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}",0.0007875,1269.8412698412699,"{'id': 'chatcmpl-AeOLCZ4DxmztyyBxpzoEsmhk1g7JS', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': '4 \nThis issue impacts the core functionality of the app, potentially leading to customer dissatisfaction and operational inefficiencies, thus requiring prompt attention.', 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190050, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_a79d8dac1f', 'usage': {'completion_tokens': 27, 'prompt_tokens': 162, 'total_tokens': 189, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}",1355.9322033898304,1481.4814814814813,0.000595,"{'id': 'chatcmpl-AeOLCJ3EUYRteMKLGEGYB32A4hGYn', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': ""No\n\nThe ticket mentions an issue with the app's GPS but does not explicitly state that the customer is asking for a refund."", 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190050, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_a79d8dac1f', 'usage': {'completion_tokens': 26, 'prompt_tokens': 116, 'total_tokens': 142, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}",0,Does the customer ask for a refund in this ticket? Ticket: {{ ticket }},"If the primary issue in this ticket is safety, was there an accident where someone was hurt? Ticket: {{ ticket }}",What is the primary issue in this ticket? Ticket: {{ ticket }},Check all of the issues mentioned in this ticket: {{ ticket }},"On a scale from 0 to 5, what is the priority level of this ticket? Ticket: {{ ticket }}",What is the sentiment of this ticket? Ticket: {{ ticket }},"['safety', 'cleanliness', 'driver performance', 'GPS/route', 'lost item', 'other']","['Very positive', 'Somewhat positive', 'Neutral', 'Somewhat negative', 'Very negative']",,"['No', 'Yes']","['Yes', 'No', 'Not applicable']","[0, 1, 2, 3, 4, 5]",linear_scale,multiple_choice,multiple_choice,yes_no,free_text,checkbox,,The ticket mentions an issue with the app's GPS but does not explicitly state that the customer is asking for a refund.,"This issue impacts the core functionality of the app, potentially leading to customer dissatisfaction and operational inefficiencies, thus requiring prompt attention.","The issue mentioned in the ticket is related to the GPS/route, as it describes the app's GPS directing the driver to the wrong pick-up location.","The sentiment is somewhat negative because the customer is experiencing a problem with the app's GPS, which is leading to an inconvenience.","The issue mentioned is about GPS inaccuracy, and there's no indication of an accident or injury in the ticket description.","Somewhat negative The sentiment is somewhat negative because the customer is experiencing a problem with the app's GPS, which is leading to an inconvenience.","[3] The issue mentioned in the ticket is related to the GPS/route, as it describes the app's GPS directing the driver to the wrong pick-up location.","No The ticket mentions an issue with the app's GPS but does not explicitly state that the customer is asking for a refund.","The primary issue in this ticket is the inaccuracy of the app's GPS, which resulted in directing the driver to the wrong pick-up location. This can lead to delays and inconvenience for both the driver and the customer, so it's important to address the GPS functionality to ensure it provides accurate directions.","No The issue mentioned is about GPS inaccuracy, and there's no indication of an accident or injury in the ticket description.","4 This issue impacts the core functionality of the app, potentially leading to customer dissatisfaction and operational inefficiencies, thus requiring prompt attention." Not applicable,Very positive,No,"The primary issue in this ticket is not a problem or complaint, but rather a compliment. The customer is expressing appreciation for their driver's excellent navigation and time management skills during rush hour.",1,"['driver performance', 'GPS/route']",I want to compliment my driver's excellent navigation and time management during rush hour.,You are an expert customer service agent.,Agent_17,15,You are answering questions as if you were a human. Do not break character.,0,1,0,gpt-4o,0.5,False,1000,3,What is the primary issue in this ticket? Ticket: I want to compliment my driver's excellent navigation and time management during rush hour.,"You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}","You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}","Check all of the issues mentioned in this ticket: I want to compliment my driver's excellent navigation and time management during rush hour. 0: safety 1: cleanliness 2: driver performance 3: GPS/route 4: lost item 5: other Please respond only with a comma-separated list of the code of the options that apply, with square brackets. E.g., [0, 1, 3] After the answer, you can put a comment explaining your choice on the next line.","On a scale from 0 to 5, what is the priority level of this ticket? Ticket: I want to compliment my driver's excellent navigation and time management during rush hour. 0 : Lowest 1 : 2 : 3 : 4 : 5 : Highest Only 1 option may be selected. Respond only with the code corresponding to one of the options. E.g., ""1"" or ""5"" by itself. After the answer, you can put a comment explaining why you chose that option on the next line.","You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}","You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}","You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}"," What is the sentiment of this ticket? Ticket: I want to compliment my driver's excellent navigation and time management during rush hour. Very positive Somewhat positive Neutral Somewhat negative Very negative Only 1 option may be selected. Respond only with a string corresponding to one of the options. After the answer, you can put a comment explaining why you chose that option on the next line."," Does the customer ask for a refund in this ticket? Ticket: I want to compliment my driver's excellent navigation and time management during rush hour. No Yes Only 1 option may be selected. Please respond with just your answer. After the answer, you can put a comment explaining your response.","You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}"," If the primary issue in this ticket is safety, was there an accident where someone was hurt? Ticket: I want to compliment my driver's excellent navigation and time management during rush hour. Yes No Not applicable Only 1 option may be selected. Respond only with a string corresponding to one of the options. After the answer, you can put a comment explaining why you chose that option on the next line.",0.0005525,"{'id': 'chatcmpl-AeOLCsFfZIOzEv1lRKtpJirNHR30y', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': ""Not applicable\n\nThe ticket is a compliment about the driver's skills and does not mention any safety issues or accidents."", 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190050, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_9faba9f038', 'usage': {'completion_tokens': 22, 'prompt_tokens': 135, 'total_tokens': 157, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}","{'id': 'chatcmpl-AeOLCEtGpF3UOWquUXpjI1u03vBYr', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': ""Very positive\n\nThe ticket expresses a compliment and appreciation for the driver's excellent skills, indicating a very positive sentiment."", 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190050, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_a79d8dac1f', 'usage': {'completion_tokens': 22, 'prompt_tokens': 133, 'total_tokens': 155, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}",1809.9547511312217,1809.9547511312217,"{'id': 'chatcmpl-AeOLC1kE8S2bkayEVcEdmHd4IJ9z5', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': ""[2, 3]\n\nThe compliment specifically mentions the driver's excellent navigation, which relates to GPS/route (3), and time management, which relates to driver performance (2)."", 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190050, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_a79d8dac1f', 'usage': {'completion_tokens': 36, 'prompt_tokens': 156, 'total_tokens': 192, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}",0.0007175,1793.7219730941702,0.0005525,0.00075,"{'id': 'chatcmpl-AeOLCT8SDhzBZc3WJzzLgs5YPaFBP', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': ""The primary issue in this ticket is not a problem or complaint, but rather a compliment. The customer is expressing appreciation for their driver's excellent navigation and time management skills during rush hour."", 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190050, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_9faba9f038', 'usage': {'completion_tokens': 36, 'prompt_tokens': 76, 'total_tokens': 112, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}",0.00055,1818.181818181818,"{'id': 'chatcmpl-AeOLDYCISmj52LVd0zJXdADkpT0fY', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': ""1 \nThis ticket is a positive feedback or compliment, which is important for acknowledging good service but doesn't require immediate action or resolution like a complaint or issue would."", 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190051, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_f785eb5f47', 'usage': {'completion_tokens': 32, 'prompt_tokens': 159, 'total_tokens': 191, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}",1333.3333333333333,1393.7282229965156,0.0005575,"{'id': 'chatcmpl-AeOLCLmz49bIwZkpQ3yZ4rGdOyGiG', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': ""No\n\nThe customer is complimenting the driver's performance, indicating satisfaction with the service rather than dissatisfaction that would lead to a refund request."", 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190050, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_a79d8dac1f', 'usage': {'completion_tokens': 27, 'prompt_tokens': 113, 'total_tokens': 140, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}",0,Does the customer ask for a refund in this ticket? Ticket: {{ ticket }},"If the primary issue in this ticket is safety, was there an accident where someone was hurt? Ticket: {{ ticket }}",What is the primary issue in this ticket? Ticket: {{ ticket }},Check all of the issues mentioned in this ticket: {{ ticket }},"On a scale from 0 to 5, what is the priority level of this ticket? Ticket: {{ ticket }}",What is the sentiment of this ticket? Ticket: {{ ticket }},"['safety', 'cleanliness', 'driver performance', 'GPS/route', 'lost item', 'other']","['Very positive', 'Somewhat positive', 'Neutral', 'Somewhat negative', 'Very negative']",,"['No', 'Yes']","['Yes', 'No', 'Not applicable']","[0, 1, 2, 3, 4, 5]",linear_scale,multiple_choice,multiple_choice,yes_no,free_text,checkbox,,"The customer is complimenting the driver's performance, indicating satisfaction with the service rather than dissatisfaction that would lead to a refund request.","This ticket is a positive feedback or compliment, which is important for acknowledging good service but doesn't require immediate action or resolution like a complaint or issue would.","The compliment specifically mentions the driver's excellent navigation, which relates to GPS/route (3), and time management, which relates to driver performance (2).","The ticket expresses a compliment and appreciation for the driver's excellent skills, indicating a very positive sentiment.",The ticket is a compliment about the driver's skills and does not mention any safety issues or accidents.,"Very positive The ticket expresses a compliment and appreciation for the driver's excellent skills, indicating a very positive sentiment.","[2, 3] The compliment specifically mentions the driver's excellent navigation, which relates to GPS/route (3), and time management, which relates to driver performance (2).","No The customer is complimenting the driver's performance, indicating satisfaction with the service rather than dissatisfaction that would lead to a refund request.","The primary issue in this ticket is not a problem or complaint, but rather a compliment. The customer is expressing appreciation for their driver's excellent navigation and time management skills during rush hour.","Not applicable The ticket is a compliment about the driver's skills and does not mention any safety issues or accidents.","1 This ticket is a positive feedback or compliment, which is important for acknowledging good service but doesn't require immediate action or resolution like a complaint or issue would." No,Somewhat negative,No,"The primary issue in this ticket is that the vehicle provided did not match the description given in the app. This discrepancy caused confusion and concern for the customer. It's important to address this by verifying the accuracy of vehicle descriptions in the app to ensure they align with what is actually provided, thereby enhancing customer trust and satisfaction.",3,['other'],The vehicle didn't match the description in the app. It was confusing and concerning.,You are an expert customer service agent.,Agent_18,15,You are answering questions as if you were a human. Do not break character.,0,1,0,gpt-4o,0.5,False,1000,3,What is the primary issue in this ticket? Ticket: The vehicle didn't match the description in the app. It was confusing and concerning.,"You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}","You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}","Check all of the issues mentioned in this ticket: The vehicle didn't match the description in the app. It was confusing and concerning. 0: safety 1: cleanliness 2: driver performance 3: GPS/route 4: lost item 5: other Please respond only with a comma-separated list of the code of the options that apply, with square brackets. E.g., [0, 1, 3] After the answer, you can put a comment explaining your choice on the next line.","On a scale from 0 to 5, what is the priority level of this ticket? Ticket: The vehicle didn't match the description in the app. It was confusing and concerning. 0 : Lowest 1 : 2 : 3 : 4 : 5 : Highest Only 1 option may be selected. Respond only with the code corresponding to one of the options. E.g., ""1"" or ""5"" by itself. After the answer, you can put a comment explaining why you chose that option on the next line.","You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}","You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}","You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}"," What is the sentiment of this ticket? Ticket: The vehicle didn't match the description in the app. It was confusing and concerning. Very positive Somewhat positive Neutral Somewhat negative Very negative Only 1 option may be selected. Respond only with a string corresponding to one of the options. After the answer, you can put a comment explaining why you chose that option on the next line."," Does the customer ask for a refund in this ticket? Ticket: The vehicle didn't match the description in the app. It was confusing and concerning. No Yes Only 1 option may be selected. Please respond with just your answer. After the answer, you can put a comment explaining your response.","You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}"," If the primary issue in this ticket is safety, was there an accident where someone was hurt? Ticket: The vehicle didn't match the description in the app. It was confusing and concerning. Yes No Not applicable Only 1 option may be selected. Respond only with a string corresponding to one of the options. After the answer, you can put a comment explaining why you chose that option on the next line.",0.000545,"{'id': 'chatcmpl-AeOLCmOlnN1u2s3udw5t9Wl1ENuct', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': ""No \nThe ticket mentions a discrepancy in vehicle description, which is concerning but doesn't indicate an accident or injury."", 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190050, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_a79d8dac1f', 'usage': {'completion_tokens': 22, 'prompt_tokens': 136, 'total_tokens': 158, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}","{'id': 'chatcmpl-AeOLDJ1hIniI0lIayERV1Rkwj1b47', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': 'Somewhat negative \nThe ticket expresses confusion and concern, indicating dissatisfaction with the vehicle not matching the description.', 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190051, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_9faba9f038', 'usage': {'completion_tokens': 21, 'prompt_tokens': 134, 'total_tokens': 155, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}",1834.8623853211009,1739.1304347826087,"{'id': 'chatcmpl-AeOLCigpTlhD7Cbqub2qyqmFzDJ3h', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': '[5] \nThe issue mentioned is that the vehicle didn\'t match the description in the app, which falls under ""other"" concerns.', 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190050, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_a79d8dac1f', 'usage': {'completion_tokens': 27, 'prompt_tokens': 157, 'total_tokens': 184, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}",0.00082,1785.7142857142856,0.000575,0.0006625,"{'id': 'chatcmpl-AeOLCg13FY2HVspX7xO4RJP2mw3Gi', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': ""The primary issue in this ticket is that the vehicle provided did not match the description given in the app. This discrepancy caused confusion and concern for the customer. It's important to address this by verifying the accuracy of vehicle descriptions in the app to ensure they align with what is actually provided, thereby enhancing customer trust and satisfaction."", 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190050, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_a79d8dac1f', 'usage': {'completion_tokens': 63, 'prompt_tokens': 77, 'total_tokens': 140, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}",0.0008225,1215.80547112462,"{'id': 'chatcmpl-AeOLDjmahEfCBFc1SETcKnrjwz53z', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': '3 \nThis ticket involves a discrepancy that could potentially affect customer trust and safety, so it requires prompt attention. However, it does not indicate an immediate danger or emergency, so it is not the highest priority.', 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190051, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_a79d8dac1f', 'usage': {'completion_tokens': 42, 'prompt_tokens': 160, 'total_tokens': 202, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}",1509.433962264151,1219.5121951219512,0.0005600000000000001,"{'id': 'chatcmpl-AeOLClkg5eGlWvbKqD74GAcyo5psM', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': 'No\n\nThe customer expressed confusion and concern about the vehicle not matching the description, but there is no explicit request for a refund in the ticket.', 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190050, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_a79d8dac1f', 'usage': {'completion_tokens': 29, 'prompt_tokens': 114, 'total_tokens': 143, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}",0,Does the customer ask for a refund in this ticket? Ticket: {{ ticket }},"If the primary issue in this ticket is safety, was there an accident where someone was hurt? Ticket: {{ ticket }}",What is the primary issue in this ticket? Ticket: {{ ticket }},Check all of the issues mentioned in this ticket: {{ ticket }},"On a scale from 0 to 5, what is the priority level of this ticket? Ticket: {{ ticket }}",What is the sentiment of this ticket? Ticket: {{ ticket }},"['safety', 'cleanliness', 'driver performance', 'GPS/route', 'lost item', 'other']","['Very positive', 'Somewhat positive', 'Neutral', 'Somewhat negative', 'Very negative']",,"['No', 'Yes']","['Yes', 'No', 'Not applicable']","[0, 1, 2, 3, 4, 5]",linear_scale,multiple_choice,multiple_choice,yes_no,free_text,checkbox,,"The customer expressed confusion and concern about the vehicle not matching the description, but there is no explicit request for a refund in the ticket.","This ticket involves a discrepancy that could potentially affect customer trust and safety, so it requires prompt attention. However, it does not indicate an immediate danger or emergency, so it is not the highest priority.","The issue mentioned is that the vehicle didn't match the description in the app, which falls under ""other"" concerns.","The ticket expresses confusion and concern, indicating dissatisfaction with the vehicle not matching the description.","The ticket mentions a discrepancy in vehicle description, which is concerning but doesn't indicate an accident or injury.","Somewhat negative The ticket expresses confusion and concern, indicating dissatisfaction with the vehicle not matching the description.","[5] The issue mentioned is that the vehicle didn't match the description in the app, which falls under ""other"" concerns.","No The customer expressed confusion and concern about the vehicle not matching the description, but there is no explicit request for a refund in the ticket.","The primary issue in this ticket is that the vehicle provided did not match the description given in the app. This discrepancy caused confusion and concern for the customer. It's important to address this by verifying the accuracy of vehicle descriptions in the app to ensure they align with what is actually provided, thereby enhancing customer trust and satisfaction.","No The ticket mentions a discrepancy in vehicle description, which is concerning but doesn't indicate an accident or injury.","3 This ticket involves a discrepancy that could potentially affect customer trust and safety, so it requires prompt attention. However, it does not indicate an immediate danger or emergency, so it is not the highest priority." Not applicable,Neutral,No,The primary issue in this ticket is a problem with payment processing after the customer's last ride. The customer is requesting assistance to investigate and resolve the payment issue.,3,['other'],I faced an issue with payment processing after my last ride. Can you look into this?,You are an expert customer service agent.,Agent_19,15,You are answering questions as if you were a human. Do not break character.,0,1,0,gpt-4o,0.5,False,1000,3,What is the primary issue in this ticket? Ticket: I faced an issue with payment processing after my last ride. Can you look into this?,"You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}","You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}","Check all of the issues mentioned in this ticket: I faced an issue with payment processing after my last ride. Can you look into this? 0: safety 1: cleanliness 2: driver performance 3: GPS/route 4: lost item 5: other Please respond only with a comma-separated list of the code of the options that apply, with square brackets. E.g., [0, 1, 3] After the answer, you can put a comment explaining your choice on the next line.","On a scale from 0 to 5, what is the priority level of this ticket? Ticket: I faced an issue with payment processing after my last ride. Can you look into this? 0 : Lowest 1 : 2 : 3 : 4 : 5 : Highest Only 1 option may be selected. Respond only with the code corresponding to one of the options. E.g., ""1"" or ""5"" by itself. After the answer, you can put a comment explaining why you chose that option on the next line.","You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}","You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}","You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}"," What is the sentiment of this ticket? Ticket: I faced an issue with payment processing after my last ride. Can you look into this? Very positive Somewhat positive Neutral Somewhat negative Very negative Only 1 option may be selected. Respond only with a string corresponding to one of the options. After the answer, you can put a comment explaining why you chose that option on the next line."," Does the customer ask for a refund in this ticket? Ticket: I faced an issue with payment processing after my last ride. Can you look into this? No Yes Only 1 option may be selected. Please respond with just your answer. After the answer, you can put a comment explaining your response.","You are answering questions as if you were a human. Do not break character. Your traits: {'persona': 'You are an expert customer service agent.', 'years_experience': 15}"," If the primary issue in this ticket is safety, was there an accident where someone was hurt? Ticket: I faced an issue with payment processing after my last ride. Can you look into this? Yes No Not applicable Only 1 option may be selected. Respond only with a string corresponding to one of the options. After the answer, you can put a comment explaining why you chose that option on the next line.",0.0005300000000000001,"{'id': 'chatcmpl-AeOLCvgEMnWAenTFP12Tb0675kGrR', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': 'Not applicable\n\nThe ticket mentions an issue with payment processing, which is unrelated to safety or any accidents.', 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190050, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_a79d8dac1f', 'usage': {'completion_tokens': 21, 'prompt_tokens': 138, 'total_tokens': 159, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}","{'id': 'chatcmpl-AeOLC7ois1fTDomYwnoNFVKp7nZgP', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': 'Neutral \nThe ticket simply states an issue with payment processing without expressing any strong emotions or dissatisfaction.', 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190050, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_a79d8dac1f', 'usage': {'completion_tokens': 19, 'prompt_tokens': 136, 'total_tokens': 155, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}",1886.7924528301883,2040.8163265306123,"{'id': 'chatcmpl-AeOLCKMi6dJOrw3Xn3ijUuxr1lIGU', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': '[5] \nThe issue mentioned is related to payment processing, which falls under ""other"" as it doesn\'t match the specific categories listed.', 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190050, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_a79d8dac1f', 'usage': {'completion_tokens': 28, 'prompt_tokens': 159, 'total_tokens': 187, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}",0.0007049999999999999,1801.801801801802,0.00049,0.0006774999999999999,"{'id': 'chatcmpl-AeOLDvWq9d5NYGPW5CC5DwhQwv5al', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': ""The primary issue in this ticket is a problem with payment processing after the customer's last ride. The customer is requesting assistance to investigate and resolve the payment issue."", 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190051, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_a79d8dac1f', 'usage': {'completion_tokens': 31, 'prompt_tokens': 79, 'total_tokens': 110, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}",0.0005075,1970.4433497536945,"{'id': 'chatcmpl-AeOLDRx6aS6VcLWdqvqR9Rj490AsM', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': ""3 \nPayment processing issues can impact both the customer and the company's operations, so they should be addressed promptly to ensure customer satisfaction and proper financial handling."", 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190051, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_a79d8dac1f', 'usage': {'completion_tokens': 30, 'prompt_tokens': 162, 'total_tokens': 192, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}",1476.0147601476017,1418.439716312057,0.0005549999999999999,"{'id': 'chatcmpl-AeOLCBeULCMXmZhp60xSkAx4SuJA4', 'choices': [{'finish_reason': 'stop', 'index': 0, 'logprobs': None, 'message': {'content': 'No\n\nThe customer is asking for assistance with a payment processing issue, not directly requesting a refund.', 'refusal': None, 'role': 'assistant', 'audio': None, 'function_call': None, 'tool_calls': None}}], 'created': 1734190050, 'model': 'gpt-4o-2024-08-06', 'object': 'chat.completion', 'service_tier': None, 'system_fingerprint': 'fp_a79d8dac1f', 'usage': {'completion_tokens': 20, 'prompt_tokens': 116, 'total_tokens': 136, 'completion_tokens_details': {'accepted_prediction_tokens': 0, 'audio_tokens': 0, 'reasoning_tokens': 0, 'rejected_prediction_tokens': 0}, 'prompt_tokens_details': {'audio_tokens': 0, 'cached_tokens': 0}}}",0,Does the customer ask for a refund in this ticket? Ticket: {{ ticket }},"If the primary issue in this ticket is safety, was there an accident where someone was hurt? Ticket: {{ ticket }}",What is the primary issue in this ticket? Ticket: {{ ticket }},Check all of the issues mentioned in this ticket: {{ ticket }},"On a scale from 0 to 5, what is the priority level of this ticket? Ticket: {{ ticket }}",What is the sentiment of this ticket? Ticket: {{ ticket }},"['safety', 'cleanliness', 'driver performance', 'GPS/route', 'lost item', 'other']","['Very positive', 'Somewhat positive', 'Neutral', 'Somewhat negative', 'Very negative']",,"['No', 'Yes']","['Yes', 'No', 'Not applicable']","[0, 1, 2, 3, 4, 5]",linear_scale,multiple_choice,multiple_choice,yes_no,free_text,checkbox,,"The customer is asking for assistance with a payment processing issue, not directly requesting a refund.","Payment processing issues can impact both the customer and the company's operations, so they should be addressed promptly to ensure customer satisfaction and proper financial handling.","The issue mentioned is related to payment processing, which falls under ""other"" as it doesn't match the specific categories listed.",The ticket simply states an issue with payment processing without expressing any strong emotions or dissatisfaction.,"The ticket mentions an issue with payment processing, which is unrelated to safety or any accidents.","Neutral The ticket simply states an issue with payment processing without expressing any strong emotions or dissatisfaction.","[5] The issue mentioned is related to payment processing, which falls under ""other"" as it doesn't match the specific categories listed.","No The customer is asking for assistance with a payment processing issue, not directly requesting a refund.",The primary issue in this ticket is a problem with payment processing after the customer's last ride. The customer is requesting assistance to investigate and resolve the payment issue.,"Not applicable The ticket mentions an issue with payment processing, which is unrelated to safety or any accidents.","3 Payment processing issues can impact both the customer and the company's operations, so they should be addressed promptly to ensure customer satisfaction and proper financial handling."

Download data_labeling_example.csv

Posting content to the Coop

We can post any objects to the Coop, including this notebook. Objects can be updated or modified at your Coop account, and shared with others or stored privately (default visibility is unlisted):

[22]:
results.push(description = "Customer service tickets data labeling example", visibility="public")
[22]:
{'description': 'Customer service tickets data labeling example',
 'object_type': 'results',
 'url': 'https://www.expectedparrot.com/content/3b78afcd-14ba-4937-8280-1ac3487e16c1',
 'uuid': '3b78afcd-14ba-4937-8280-1ac3487e16c1',
 'version': '0.1.39.dev2',
 'visibility': 'public'}
[23]:
survey.push(description = "Customer service tickets data labeling example survey", visibility="public")
[23]:
{'description': 'Customer service tickets data labeling example survey',
 'object_type': 'survey',
 'url': 'https://www.expectedparrot.com/content/ebd0e9d6-53fa-4618-a527-e5e53b202d0c',
 'uuid': 'ebd0e9d6-53fa-4618-a527-e5e53b202d0c',
 'version': '0.1.39.dev2',
 'visibility': 'public'}
[24]:
from edsl import Notebook

n = Notebook(path="data_labeling_example.ipynb")

info = n.push(description="Data labeling example", visibility="public")
info
[24]:
{'description': 'Data labeling example',
 'object_type': 'notebook',
 'url': 'https://www.expectedparrot.com/content/0d621ed9-a8b1-4a7b-a9a2-8e6dc09ab80d',
 'uuid': '0d621ed9-a8b1-4a7b-a9a2-8e6dc09ab80d',
 'version': '0.1.39.dev2',
 'visibility': 'public'}

To update an object at the Coop:

[25]:
n = Notebook(path="data_labeling_example.ipynb") # resave

n.patch(uuid = info["uuid"], value = n)
[25]:
{'status': 'success'}