WHO Immunization Implementation Guide
1.0.0 - release
WHO Immunization Implementation Guide, published by WHO. This guide is not an authorized publication; it is the continuous build for version 1.0.0 built by the FHIR (HL7® FHIR® Standard) CI Build. This version is based on the current content of https://github.com/WorldHealthOrganization/smart-immunizations/tree/132/merge and changes regularly. See the Directory of published versions
| Draft as of 2026-03-31 |
<Library xmlns="http://hl7.org/fhir">
<id value="IMMZD18STBEEncepurLogic"/>
<meta>
<profile
value="http://hl7.org/fhir/uv/crmi/StructureDefinition/crmi-shareablelibrary"/>
<profile
value="http://hl7.org/fhir/uv/crmi/StructureDefinition/crmi-publishablelibrary"/>
<profile
value="http://hl7.org/fhir/uv/cql/StructureDefinition/cql-library"/>
<profile
value="http://hl7.org/fhir/uv/cql/StructureDefinition/cql-module"/>
</meta>
<text>
<status value="extensions"/>
<div xmlns="http://www.w3.org/1999/xhtml">
<div>
<table class="grid dict">
<tr>
<th scope="row"><b>Title: </b></th>
<td style="padding-left: 4px;">IMMZD18STBEEncepurLogic</td>
</tr>
<tr>
<th scope="row"><b>Id: </b></th>
<td style="padding-left: 4px;">IMMZD18STBEEncepurLogic</td>
</tr>
<tr>
<th scope="row"><b>Version: </b></th>
<td style="padding-left: 4px;">1.0.0</td>
</tr>
<tr>
<th scope="row"><b>Url: </b></th>
<td style="padding-left: 4px;"><a href="Library-IMMZD18STBEEncepurLogic.html">IMMZD18STBEEncepurLogic</a></td>
</tr>
<tr>
<th scope="row"><b>Status: </b></th>
<td style="padding-left: 4px;">draft</td>
</tr>
<tr>
<th scope="row"><b>Type: </b></th>
<td style="padding-left: 4px;">
<p style="margin-bottom: 5px;">
<b>system: </b> <span><a href="http://terminology.hl7.org/7.1.0/CodeSystem-library-type.html">http://terminology.hl7.org/CodeSystem/library-type</a></span>
</p>
<p style="margin-bottom: 5px;">
<b>code: </b> <span>logic-library</span>
</p>
</td>
</tr>
<tr>
<th scope="row"><b>Date: </b></th>
<td style="padding-left: 4px;">2026-03-31 13:54:17+0000</td>
</tr>
<tr>
<th scope="row"><b>Publisher: </b></th>
<td style="padding-left: 4px;">WHO</td>
</tr>
<tr>
<th scope="row"><b>Description: </b></th>
<td style="padding-left: 4px;"><div><p>This library defines decision support logic for the IMMZ.D18.S.TBE.Encepur schedule table in the Immunization CPG</p>
</div></td>
</tr>
<tr>
<th scope="row"><b>Related Artifacts: </b></th>
<td style="padding-left: 4px;">
<p><b>Dependencies</b></p>
<ul>
<li><a href="Library-WHOCommon.html">WHOCommon</a></li>
<li><a href="Library-IMMZCommon.html">IMMZCommon</a></li>
<li><a href="Library-IMMZConcepts.html">IMMZConcepts</a></li>
<li><a href="Library-IMMZEncounterElements.html">IMMZEncounterElements</a></li>
<li><a href="Library-IMMZD2DTTBEEncounterElements.html">IMMZD2DTTBEEncounterElements</a></li>
</ul>
</td>
</tr>
<tr>
<th scope="row"><b>Parameters: </b></th>
<td style="padding-left: 4px;">
<table class="grid-dict">
<tr><th><b>Name</b></th><th><b>Type</b></th><th><b>Min</b></th><th><b>Max</b></th><th><b>In/Out</b></th></tr>
<tr><th>Today</th><th>date</th><th>0</th><th>1</th><th>In</th></tr>
<tr><th>Patient</th><th>Patient</th><th>0</th><th>1</th><th>Out</th></tr>
<tr><th>First TBE dose from the primary series was administered</th><th>boolean</th><th>0</th><th>1</th><th>Out</th></tr>
<tr><th>Tick-borne encephalitis (TBE) Encepur dose 1</th><th>boolean</th><th>0</th><th>1</th><th>Out</th></tr>
<tr><th>Tick-borne encephalitis (TBE) Encepur dose 1 Due Date</th><th>date</th><th>0</th><th>1</th><th>Out</th></tr>
<tr><th>Tick-borne encephalitis (TBE) Encepur dose 1 Create</th><th>string</th><th>0</th><th>1</th><th>Out</th></tr>
<tr><th>Tick-borne encephalitis (TBE) Encepur dose 1 Overdue</th><th>Resource</th><th>0</th><th>1</th><th>Out</th></tr>
<tr><th>Tick-borne encephalitis (TBE) Encepur dose 1 Expiration</th><th>Resource</th><th>0</th><th>1</th><th>Out</th></tr>
<tr><th>Second TBE dose from the primary series was administered</th><th>boolean</th><th>0</th><th>1</th><th>Out</th></tr>
<tr><th>TBE Encepur dose 2</th><th>boolean</th><th>0</th><th>1</th><th>Out</th></tr>
<tr><th>TBE Encepur dose 2 Due Date</th><th>date</th><th>0</th><th>1</th><th>Out</th></tr>
<tr><th>TBE Encepur dose 2 Overdue</th><th>date</th><th>0</th><th>1</th><th>Out</th></tr>
<tr><th>TBE Encepur dose 2 Create</th><th>string</th><th>0</th><th>1</th><th>Out</th></tr>
<tr><th>TBE Encepur dose 2 Expiration</th><th>Resource</th><th>0</th><th>1</th><th>Out</th></tr>
<tr><th>Third TBE dose from the primary series was administered. The primary series has been completed</th><th>boolean</th><th>0</th><th>1</th><th>Out</th></tr>
<tr><th>TBE Encepur dose 3</th><th>boolean</th><th>0</th><th>1</th><th>Out</th></tr>
<tr><th>TBE Encepur dose 3 Due Date</th><th>date</th><th>0</th><th>1</th><th>Out</th></tr>
<tr><th>TBE Encepur dose 3 Overdue</th><th>date</th><th>0</th><th>1</th><th>Out</th></tr>
<tr><th>TBE Encepur dose 3 Create</th><th>string</th><th>0</th><th>1</th><th>Out</th></tr>
<tr><th>TBE Encepur dose 3 Expiration</th><th>Resource</th><th>0</th><th>1</th><th>Out</th></tr>
<tr><th>TBE booster dose was administered</th><th>boolean</th><th>0</th><th>1</th><th>Out</th></tr>
<tr><th>TBE Encepur booster dose</th><th>boolean</th><th>0</th><th>1</th><th>Out</th></tr>
<tr><th>TBE Encepur booster dose Due Date</th><th>date</th><th>0</th><th>1</th><th>Out</th></tr>
<tr><th>TBE Encepur booster dose Overdue</th><th>date</th><th>0</th><th>1</th><th>Out</th></tr>
<tr><th>TBE Encepur booster dose Create</th><th>string</th><th>0</th><th>1</th><th>Out</th></tr>
<tr><th>TBE Encepur booster dose Expiration</th><th>Resource</th><th>0</th><th>1</th><th>Out</th></tr>
<tr><th>Test Validation</th><th>Resource</th><th>0</th><th>1</th><th>Out</th></tr>
</table>
</td>
</tr>
<tr>
<td colspan="2">
<table>
<tr><th><a id="cql-content"><b>Content: </b></a> text/cql</th></tr>
<tr><td><pre><code class="language-cql">/*
* Library: IMMZD18STBEEncepurLogic (IMMZ.D18.S.TBE.Encepur schedule)
* Schedule Table: Encepur, 3-dose schedule
*/
library IMMZD18STBEEncepurLogic
using FHIR version '4.0.1'
include FHIRHelpers version '4.0.1'
include WHOCommon called WC
include IMMZCommon called Common
include IMMZConcepts called Concepts
include IMMZEncounterElements called IE
include IMMZD2DTTBEEncounterElements called Encounter
parameter Today Date default Today()
context Patient
/*
@output: Tick-borne encephalitis (TBE) Encepur dose 1
@description: Provision of the TBE Encepur dose 1
@trigger: Child's birth
@pseudo:
@triggerDate: "Date of birth"
*/
define "Tick-borne encephalitis (TBE) Encepur dose 1":
Encounter."No TBE primary series doses were administered"
and not "First TBE dose from the primary series was administered"
/*
@output: Tick-borne encephalitis (TBE) Encepur dose 1 Create
@create: The vaccine can be given from > 1 year of age.
*/
define "Tick-borne encephalitis (TBE) Encepur dose 1 Create":
if "Tick-borne encephalitis (TBE) Encepur dose 1"
then 'The vaccine can be given from > 1 year of age.' + '
Due Date: ' + ToString("Tick-borne encephalitis (TBE) Encepur dose 1 Due Date")
else ''
/*
@dynamicValue: Tick-borne encephalitis (TBE) Encepur dose 1 Due Date
@pseudocode: "Date of birth" + 1 year
*/
define "Tick-borne encephalitis (TBE) Encepur dose 1 Due Date":
if "Tick-borne encephalitis (TBE) Encepur dose 1" then Patient.birthDate + 1 year
else null
/*
@dynamicValue: Tick-borne encephalitis (TBE) Encepur dose 1 Overdue
@pseudocode: To be determined by Member States; however, there is no recommended overdue date and individuals are always eligible to be vaccinated.
*/
define "Tick-borne encephalitis (TBE) Encepur dose 1 Overdue":
null
/*
@dynamicValue: Tick-borne encephalitis (TBE) Encepur dose 1 Expiration
@pseudocode: To be determined by Member States; however, there is no recommended expiration date and individuals are always eligible to be vaccinated.
*/
define "Tick-borne encephalitis (TBE) Encepur dose 1 Expiration":
null
/*
@complete: First TBE dose from the primary series was administered
@pseudocode: Count of vaccines administered (where "Vaccine type" = "TBE vaccines" and "Type of dose" = "Primary series") = 1
*/
define "First TBE dose from the primary series was administered":
Encounter."One TBE primary series dose was administered"
/*
@output: TBE Encepur dose 2
@description: Provision of the TBE Encepur dose 2
@trigger: First TBE dose from the primary series was administered
@pseudo: Count of vaccines administered (where "Vaccine type" = "TBE vaccines" and "Type of dose" = "Primary series") = 1
@triggerDate: "Date and time of vaccination" (where "Vaccine type" = "TBE vaccines")
*/
define "TBE Encepur dose 2":
"First TBE dose from the primary series was administered"
and not "Second TBE dose from the primary series was administered"
/*
@output: TBE Encepur dose 2 Create
@create: An interval of 1–3 months is recommended between the first 2 doses.
*/
define "TBE Encepur dose 2 Create":
if "TBE Encepur dose 2"
then 'An interval of 1–3 months is recommended between the first 2 doses.' + '
Due Date: ' + ToString("TBE Encepur dose 2 Due Date") + '
Overdue: ' + ToString("TBE Encepur dose 2 Overdue")
else ''
/*
@dynamicValue: TBE Encepur dose 2 Due Date
@pseudocode: "Date and time of vaccination" (where "Vaccine type" = "TBE vaccines") + 1 month
*/
define "TBE Encepur dose 2 Due Date":
if "TBE Encepur dose 2" then Encounter."Date of Latest TBE Dose" + 1 month
else null
/*
@dynamicValue: TBE Encepur dose 2 Overdue
@pseudocode: "Date and time of vaccination" (where "Vaccine type" = "TBE vaccines") + 3 months
*/
define "TBE Encepur dose 2 Overdue":
if "TBE Encepur dose 2" then Encounter."Date of Latest TBE Dose" + 3 months
else null
/*
@dynamicValue: TBE Encepur dose 2 Expiration
@pseudocode: To be determined by Member States; however, there is no recommended expiration date and individuals are always eligible to be vaccinated.
*/
define "TBE Encepur dose 2 Expiration":
null
/*
@complete: Second TBE dose from the primary series was administered
@pseudocode: Count of vaccines administered (where "Vaccine type" = "TBE vaccines" and "Type of dose" = "Primary series") = 2
*/
define "Second TBE dose from the primary series was administered":
Encounter."Two TBE primary series doses were administered"
/*
@output: TBE Encepur dose 3
@description: Provision of the TBE Encepur dose 3
@trigger: Second TBE dose from the primary series was administered
@pseudo: Count of vaccines administered (where "Vaccine type" = "TBE vaccines" and "Type of dose" = "Primary series") = 2
@triggerDate: Latest "Date and time of vaccination" (where "Vaccine type" = "TBE vaccines")
*/
define "TBE Encepur dose 3":
"Second TBE dose from the primary series was administered"
and not "Third TBE dose from the primary series was administered. The primary series has been completed"
/*
@output: TBE Encepur dose 3 Create
@create: For Encepur, the requirement is 9–12 months between doses 2 and 3.
*/
define "TBE Encepur dose 3 Create":
if "TBE Encepur dose 3"
then 'For Encepur, the requirement is 9–12 months between doses 2 and 3.' + '
Due Date: ' + ToString("TBE Encepur dose 3 Due Date") + '
Overdue: ' + ToString("TBE Encepur dose 3 Overdue")
else ''
/*
@dynamicValue: TBE Encepur dose 3 Due Date
@pseudocode: Latest "Date and time of vaccination" (where "Vaccine type" = "TBE vaccines") + 9 months
*/
define "TBE Encepur dose 3 Due Date":
if "TBE Encepur dose 3" then Encounter."Date of Latest TBE Dose" + 9 months
else null
/*
@dynamicValue: TBE Encepur dose 3 Overdue
@pseudocode: Latest "Date and time of vaccination" (where "Vaccine type" = "TBE vaccines") + 12 months
*/
define "TBE Encepur dose 3 Overdue":
if "TBE Encepur dose 3" then Encounter."Date of Latest TBE Dose" + 12 months
else null
/*
@dynamicValue: TBE Encepur dose 3 Expiration
@pseudocode: To be determined by Member States; however, there is no recommended expiration date and individuals are always eligible to be vaccinated.
*/
define "TBE Encepur dose 3 Expiration":
null
/*
@complete: Third TBE dose from the primary series was administered. The primary series has been completed
@pseudocode: "Completed the primary vaccination series" = TRUE (where "Vaccine type" = "TBE vaccines")
*/
define "Third TBE dose from the primary series was administered. The primary series has been completed":
Encounter."Three TBE primary series doses were administered"
/*
@output: TBE Encepur booster dose
@description: Provision of the TBE Encepur booster dose
@trigger: The primary series has been completed
@pseudo: "Completed the primary vaccination series" = TRUE (where "Vaccine type" = "TBE vaccines")
@triggerDate: "Date when primary vaccination series was completed"
*/
define "TBE Encepur booster dose":
"Third TBE dose from the primary series was administered. The primary series has been completed"
and not "TBE booster dose was administered"
/*
@output: TBE Encepur booster dose Create
@create: The manufacturer recommends a booster dose to be administered 3 years after completion of the primary series.
*/
define "TBE Encepur booster dose Create":
if "TBE Encepur booster dose"
then 'The manufacturer recommends a booster dose to be administered 3 years after completion of the primary series.' + '
Due Date: ' + ToString("TBE Encepur booster dose Due Date") + '
Overdue: ' + ToString("TBE Encepur booster dose Overdue")
else ''
/*
@dynamicValue: TBE Encepur booster dose Due Date
@pseudocode: "Date when primary vaccination series was completed" + 3 years
*/
define "TBE Encepur booster dose Due Date":
if "TBE Encepur booster dose" then Encounter."Date of Latest TBE Dose" + 3 years
else null
/*
@dynamicValue: TBE Encepur booster dose Overdue
@pseudocode: "Date when primary vaccination series was completed" + 5 years
*/
define "TBE Encepur booster dose Overdue":
if "TBE Encepur booster dose" then Encounter."Date of Latest TBE Dose" + 5 years
else null
/*
@dynamicValue: TBE Encepur booster dose Expiration
@pseudocode: To be determined by Member States; however, there is no recommended expiration date and individuals are always eligible to be vaccinated.
*/
define "TBE Encepur booster dose Expiration":
null
/*
@complete: TBE booster dose was administered
@pseudocode: Count of vaccines administered (where "Vaccine type" = "TBE vaccines" and "Type of dose" = "Booster dose") = 1
*/
define "TBE booster dose was administered":
Encounter."At least one booster dose was administered"
/*
@test: Test expected results based on example patients
*/
define "Test Validation":
case
when Patient.id = 'TBE24.1' then "Tick-borne encephalitis (TBE) Encepur dose 1"
when Patient.id = 'TBE25.2' then "Tick-borne encephalitis (TBE) Encepur dose 1"
when Patient.id = 'TBE26.2' then "TBE Encepur dose 2"
when Patient.id = 'TBE27.2' then "TBE Encepur dose 2"
when Patient.id = 'TBE28.2' then "TBE Encepur dose 3"
when Patient.id = 'TBE29.2' then "TBE Encepur dose 3"
when Patient.id = 'TBE30.3' then "TBE Encepur booster dose"
when Patient.id = 'TBE31.3' then "TBE Encepur booster dose"
when Patient.id = 'TBE32.2' then "TBE booster dose was administered"
else 'No test case set'
end
</code></pre></td></tr>
</table>
</td>
</tr>
</table>
</div>
</div>
</text>
<extension
url="http://hl7.org/fhir/StructureDefinition/cqf-knowledgeCapability">
<valueCode value="computable"/>
</extension>
<url
value="http://smart.who.int/immunizations/Library/IMMZD18STBEEncepurLogic"/>
<version value="1.0.0"/>
<name value="IMMZD18STBEEncepurLogic"/>
<title value="IMMZD18STBEEncepurLogic"/>
<status value="draft"/>
<experimental value="false"/>
<type>
<coding>
<system value="http://terminology.hl7.org/CodeSystem/library-type"/>
<code value="logic-library"/>
</coding>
</type>
<date value="2026-03-31T13:54:17+00:00"/>
<publisher value="WHO"/>
<contact>
<name value="WHO"/>
<telecom>
<system value="url"/>
<value value="http://who.int"/>
</telecom>
</contact>
<description
value="This library defines decision support logic for the IMMZ.D18.S.TBE.Encepur schedule table in the Immunization CPG"/>
<relatedArtifact>
<type value="depends-on"/>
<display value="Library WC"/>
<resource value="http://smart.who.int/immunizations/Library/WHOCommon"/>
</relatedArtifact>
<relatedArtifact>
<type value="depends-on"/>
<display value="Library Common"/>
<resource value="http://smart.who.int/immunizations/Library/IMMZCommon"/>
</relatedArtifact>
<relatedArtifact>
<type value="depends-on"/>
<display value="Library Concepts"/>
<resource
value="http://smart.who.int/immunizations/Library/IMMZConcepts"/>
</relatedArtifact>
<relatedArtifact>
<type value="depends-on"/>
<display value="Library IE"/>
<resource
value="http://smart.who.int/immunizations/Library/IMMZEncounterElements"/>
</relatedArtifact>
<relatedArtifact>
<type value="depends-on"/>
<display value="Library Encounter"/>
<resource
value="http://smart.who.int/immunizations/Library/IMMZD2DTTBEEncounterElements"/>
</relatedArtifact>
<parameter>
<name value="Today"/>
<use value="in"/>
<min value="0"/>
<max value="1"/>
<type value="date"/>
</parameter>
<parameter>
<name value="Patient"/>
<use value="out"/>
<min value="0"/>
<max value="1"/>
<type value="Patient"/>
</parameter>
<parameter>
<name value="First TBE dose from the primary series was administered"/>
<use value="out"/>
<min value="0"/>
<max value="1"/>
<type value="boolean"/>
</parameter>
<parameter>
<name value="Tick-borne encephalitis (TBE) Encepur dose 1"/>
<use value="out"/>
<min value="0"/>
<max value="1"/>
<type value="boolean"/>
</parameter>
<parameter>
<name value="Tick-borne encephalitis (TBE) Encepur dose 1 Due Date"/>
<use value="out"/>
<min value="0"/>
<max value="1"/>
<type value="date"/>
</parameter>
<parameter>
<name value="Tick-borne encephalitis (TBE) Encepur dose 1 Create"/>
<use value="out"/>
<min value="0"/>
<max value="1"/>
<type value="string"/>
</parameter>
<parameter>
<name value="Tick-borne encephalitis (TBE) Encepur dose 1 Overdue"/>
<use value="out"/>
<min value="0"/>
<max value="1"/>
<type value="Resource"/>
</parameter>
<parameter>
<name value="Tick-borne encephalitis (TBE) Encepur dose 1 Expiration"/>
<use value="out"/>
<min value="0"/>
<max value="1"/>
<type value="Resource"/>
</parameter>
<parameter>
<name value="Second TBE dose from the primary series was administered"/>
<use value="out"/>
<min value="0"/>
<max value="1"/>
<type value="boolean"/>
</parameter>
<parameter>
<name value="TBE Encepur dose 2"/>
<use value="out"/>
<min value="0"/>
<max value="1"/>
<type value="boolean"/>
</parameter>
<parameter>
<name value="TBE Encepur dose 2 Due Date"/>
<use value="out"/>
<min value="0"/>
<max value="1"/>
<type value="date"/>
</parameter>
<parameter>
<name value="TBE Encepur dose 2 Overdue"/>
<use value="out"/>
<min value="0"/>
<max value="1"/>
<type value="date"/>
</parameter>
<parameter>
<name value="TBE Encepur dose 2 Create"/>
<use value="out"/>
<min value="0"/>
<max value="1"/>
<type value="string"/>
</parameter>
<parameter>
<name value="TBE Encepur dose 2 Expiration"/>
<use value="out"/>
<min value="0"/>
<max value="1"/>
<type value="Resource"/>
</parameter>
<parameter>
<name
value="Third TBE dose from the primary series was administered. The primary series has been completed"/>
<use value="out"/>
<min value="0"/>
<max value="1"/>
<type value="boolean"/>
</parameter>
<parameter>
<name value="TBE Encepur dose 3"/>
<use value="out"/>
<min value="0"/>
<max value="1"/>
<type value="boolean"/>
</parameter>
<parameter>
<name value="TBE Encepur dose 3 Due Date"/>
<use value="out"/>
<min value="0"/>
<max value="1"/>
<type value="date"/>
</parameter>
<parameter>
<name value="TBE Encepur dose 3 Overdue"/>
<use value="out"/>
<min value="0"/>
<max value="1"/>
<type value="date"/>
</parameter>
<parameter>
<name value="TBE Encepur dose 3 Create"/>
<use value="out"/>
<min value="0"/>
<max value="1"/>
<type value="string"/>
</parameter>
<parameter>
<name value="TBE Encepur dose 3 Expiration"/>
<use value="out"/>
<min value="0"/>
<max value="1"/>
<type value="Resource"/>
</parameter>
<parameter>
<name value="TBE booster dose was administered"/>
<use value="out"/>
<min value="0"/>
<max value="1"/>
<type value="boolean"/>
</parameter>
<parameter>
<name value="TBE Encepur booster dose"/>
<use value="out"/>
<min value="0"/>
<max value="1"/>
<type value="boolean"/>
</parameter>
<parameter>
<name value="TBE Encepur booster dose Due Date"/>
<use value="out"/>
<min value="0"/>
<max value="1"/>
<type value="date"/>
</parameter>
<parameter>
<name value="TBE Encepur booster dose Overdue"/>
<use value="out"/>
<min value="0"/>
<max value="1"/>
<type value="date"/>
</parameter>
<parameter>
<name value="TBE Encepur booster dose Create"/>
<use value="out"/>
<min value="0"/>
<max value="1"/>
<type value="string"/>
</parameter>
<parameter>
<name value="TBE Encepur booster dose Expiration"/>
<use value="out"/>
<min value="0"/>
<max value="1"/>
<type value="Resource"/>
</parameter>
<parameter>
<name value="Test Validation"/>
<use value="out"/>
<min value="0"/>
<max value="1"/>
<type value="Resource"/>
</parameter>
<content>
<contentType value="text/cql"/>
<data
value="LyoKICogTGlicmFyeTogSU1NWkQxOFNUQkVFbmNlcHVyTG9naWMgKElNTVouRDE4LlMuVEJFLkVuY2VwdXIgc2NoZWR1bGUpCiAqIFNjaGVkdWxlIFRhYmxlOiBFbmNlcHVyLCAzLWRvc2Ugc2NoZWR1bGUKICovCmxpYnJhcnkgSU1NWkQxOFNUQkVFbmNlcHVyTG9naWMKCnVzaW5nIEZISVIgdmVyc2lvbiAnNC4wLjEnCmluY2x1ZGUgRkhJUkhlbHBlcnMgdmVyc2lvbiAnNC4wLjEnCgppbmNsdWRlIFdIT0NvbW1vbiBjYWxsZWQgV0MKCmluY2x1ZGUgSU1NWkNvbW1vbiBjYWxsZWQgQ29tbW9uCmluY2x1ZGUgSU1NWkNvbmNlcHRzIGNhbGxlZCBDb25jZXB0cwoKaW5jbHVkZSBJTU1aRW5jb3VudGVyRWxlbWVudHMgY2FsbGVkIElFCmluY2x1ZGUgSU1NWkQyRFRUQkVFbmNvdW50ZXJFbGVtZW50cyBjYWxsZWQgRW5jb3VudGVyCgpwYXJhbWV0ZXIgVG9kYXkgRGF0ZSBkZWZhdWx0IFRvZGF5KCkKCgpjb250ZXh0IFBhdGllbnQKCgovKgpAb3V0cHV0OiBUaWNrLWJvcm5lIGVuY2VwaGFsaXRpcyAoVEJFKSBFbmNlcHVyIGRvc2UgMQpAZGVzY3JpcHRpb246IFByb3Zpc2lvbiBvZiB0aGUgVEJFIEVuY2VwdXIgZG9zZSAxCkB0cmlnZ2VyOiBDaGlsZCdzIGJpcnRoCkBwc2V1ZG86IApAdHJpZ2dlckRhdGU6ICJEYXRlIG9mIGJpcnRoIgoqLwpkZWZpbmUgIlRpY2stYm9ybmUgZW5jZXBoYWxpdGlzIChUQkUpIEVuY2VwdXIgZG9zZSAxIjoKICBFbmNvdW50ZXIuIk5vIFRCRSBwcmltYXJ5IHNlcmllcyBkb3NlcyB3ZXJlIGFkbWluaXN0ZXJlZCIKICBhbmQgbm90ICJGaXJzdCBUQkUgZG9zZSBmcm9tIHRoZSBwcmltYXJ5IHNlcmllcyB3YXMgYWRtaW5pc3RlcmVkIgoKCi8qCkBvdXRwdXQ6IFRpY2stYm9ybmUgZW5jZXBoYWxpdGlzIChUQkUpIEVuY2VwdXIgZG9zZSAxIENyZWF0ZQpAY3JlYXRlOiBUaGUgdmFjY2luZSBjYW4gYmUgZ2l2ZW4gZnJvbSA+IDEgeWVhciBvZiBhZ2UuCiovCmRlZmluZSAiVGljay1ib3JuZSBlbmNlcGhhbGl0aXMgKFRCRSkgRW5jZXB1ciBkb3NlIDEgQ3JlYXRlIjoKICBpZiAiVGljay1ib3JuZSBlbmNlcGhhbGl0aXMgKFRCRSkgRW5jZXB1ciBkb3NlIDEiCiAgdGhlbiAnVGhlIHZhY2NpbmUgY2FuIGJlIGdpdmVuIGZyb20gPiAxIHllYXIgb2YgYWdlLicgKyAnCkR1ZSBEYXRlOiAnICsgVG9TdHJpbmcoIlRpY2stYm9ybmUgZW5jZXBoYWxpdGlzIChUQkUpIEVuY2VwdXIgZG9zZSAxIER1ZSBEYXRlIikKICBlbHNlICcnCgoKLyoKQGR5bmFtaWNWYWx1ZTogVGljay1ib3JuZSBlbmNlcGhhbGl0aXMgKFRCRSkgRW5jZXB1ciBkb3NlIDEgRHVlIERhdGUKQHBzZXVkb2NvZGU6ICJEYXRlIG9mIGJpcnRoIiArIDEgeWVhcgoqLwpkZWZpbmUgIlRpY2stYm9ybmUgZW5jZXBoYWxpdGlzIChUQkUpIEVuY2VwdXIgZG9zZSAxIER1ZSBEYXRlIjoKICBpZiAiVGljay1ib3JuZSBlbmNlcGhhbGl0aXMgKFRCRSkgRW5jZXB1ciBkb3NlIDEiIHRoZW4gUGF0aWVudC5iaXJ0aERhdGUgKyAxIHllYXIKICBlbHNlIG51bGwKCgovKgpAZHluYW1pY1ZhbHVlOiBUaWNrLWJvcm5lIGVuY2VwaGFsaXRpcyAoVEJFKSBFbmNlcHVyIGRvc2UgMSBPdmVyZHVlCkBwc2V1ZG9jb2RlOiBUbyBiZSBkZXRlcm1pbmVkIGJ5IE1lbWJlciBTdGF0ZXM7IGhvd2V2ZXIsIHRoZXJlIGlzIG5vIHJlY29tbWVuZGVkIG92ZXJkdWUgZGF0ZSBhbmQgaW5kaXZpZHVhbHMgYXJlIGFsd2F5cyBlbGlnaWJsZSB0byBiZSB2YWNjaW5hdGVkLgoqLwpkZWZpbmUgIlRpY2stYm9ybmUgZW5jZXBoYWxpdGlzIChUQkUpIEVuY2VwdXIgZG9zZSAxIE92ZXJkdWUiOgogIG51bGwKCgovKgpAZHluYW1pY1ZhbHVlOiBUaWNrLWJvcm5lIGVuY2VwaGFsaXRpcyAoVEJFKSBFbmNlcHVyIGRvc2UgMSBFeHBpcmF0aW9uCkBwc2V1ZG9jb2RlOiBUbyBiZSBkZXRlcm1pbmVkIGJ5IE1lbWJlciBTdGF0ZXM7IGhvd2V2ZXIsIHRoZXJlIGlzIG5vIHJlY29tbWVuZGVkIGV4cGlyYXRpb24gZGF0ZSBhbmQgaW5kaXZpZHVhbHMgYXJlIGFsd2F5cyBlbGlnaWJsZSB0byBiZSB2YWNjaW5hdGVkLgoqLwpkZWZpbmUgIlRpY2stYm9ybmUgZW5jZXBoYWxpdGlzIChUQkUpIEVuY2VwdXIgZG9zZSAxIEV4cGlyYXRpb24iOgogIG51bGwKCiAgCi8qCkBjb21wbGV0ZTogRmlyc3QgVEJFIGRvc2UgZnJvbSB0aGUgcHJpbWFyeSBzZXJpZXMgd2FzIGFkbWluaXN0ZXJlZApAcHNldWRvY29kZTogQ291bnQgb2YgdmFjY2luZXMgYWRtaW5pc3RlcmVkICh3aGVyZSAiVmFjY2luZSB0eXBlIiA9ICJUQkUgdmFjY2luZXMiIGFuZCAiVHlwZSBvZiBkb3NlIiA9ICJQcmltYXJ5IHNlcmllcyIpID0gMQoqLwpkZWZpbmUgIkZpcnN0IFRCRSBkb3NlIGZyb20gdGhlIHByaW1hcnkgc2VyaWVzIHdhcyBhZG1pbmlzdGVyZWQiOgogIEVuY291bnRlci4iT25lIFRCRSBwcmltYXJ5IHNlcmllcyBkb3NlIHdhcyBhZG1pbmlzdGVyZWQiCgoKCi8qCkBvdXRwdXQ6IFRCRSBFbmNlcHVyIGRvc2UgMgpAZGVzY3JpcHRpb246IFByb3Zpc2lvbiBvZiB0aGUgVEJFIEVuY2VwdXIgZG9zZSAyCkB0cmlnZ2VyOiBGaXJzdCBUQkUgZG9zZSBmcm9tIHRoZSBwcmltYXJ5IHNlcmllcyB3YXMgYWRtaW5pc3RlcmVkCkBwc2V1ZG86IENvdW50IG9mIHZhY2NpbmVzIGFkbWluaXN0ZXJlZCAod2hlcmUgIlZhY2NpbmUgdHlwZSIgPSAiVEJFIHZhY2NpbmVzIiBhbmQgIlR5cGUgb2YgZG9zZSIgPSAiUHJpbWFyeSBzZXJpZXMiKSA9IDEKQHRyaWdnZXJEYXRlOiAiRGF0ZSBhbmQgdGltZSBvZiB2YWNjaW5hdGlvbiIgKHdoZXJlICJWYWNjaW5lIHR5cGUiID0gIlRCRSB2YWNjaW5lcyIpCiovCmRlZmluZSAiVEJFIEVuY2VwdXIgZG9zZSAyIjoKICAiRmlyc3QgVEJFIGRvc2UgZnJvbSB0aGUgcHJpbWFyeSBzZXJpZXMgd2FzIGFkbWluaXN0ZXJlZCIKICBhbmQgbm90ICJTZWNvbmQgVEJFIGRvc2UgZnJvbSB0aGUgcHJpbWFyeSBzZXJpZXMgd2FzIGFkbWluaXN0ZXJlZCIKCgovKgpAb3V0cHV0OiBUQkUgRW5jZXB1ciBkb3NlIDIgQ3JlYXRlCkBjcmVhdGU6IEFuIGludGVydmFsIG9mIDHigJMzIG1vbnRocyBpcyByZWNvbW1lbmRlZCBiZXR3ZWVuIHRoZSBmaXJzdCAyIGRvc2VzLgoqLwpkZWZpbmUgIlRCRSBFbmNlcHVyIGRvc2UgMiBDcmVhdGUiOgogIGlmICJUQkUgRW5jZXB1ciBkb3NlIDIiCiAgdGhlbiAnQW4gaW50ZXJ2YWwgb2YgMeKAkzMgbW9udGhzIGlzIHJlY29tbWVuZGVkIGJldHdlZW4gdGhlIGZpcnN0IDIgZG9zZXMuJyArICcKRHVlIERhdGU6ICcgKyBUb1N0cmluZygiVEJFIEVuY2VwdXIgZG9zZSAyIER1ZSBEYXRlIikgKyAnCk92ZXJkdWU6ICcgKyBUb1N0cmluZygiVEJFIEVuY2VwdXIgZG9zZSAyIE92ZXJkdWUiKQogIGVsc2UgJycKCgovKgpAZHluYW1pY1ZhbHVlOiBUQkUgRW5jZXB1ciBkb3NlIDIgRHVlIERhdGUKQHBzZXVkb2NvZGU6ICJEYXRlIGFuZCB0aW1lIG9mIHZhY2NpbmF0aW9uIiAod2hlcmUgIlZhY2NpbmUgdHlwZSIgPSAiVEJFIHZhY2NpbmVzIikgKyAxIG1vbnRoCiovCmRlZmluZSAiVEJFIEVuY2VwdXIgZG9zZSAyIER1ZSBEYXRlIjoKICBpZiAiVEJFIEVuY2VwdXIgZG9zZSAyIiB0aGVuIEVuY291bnRlci4iRGF0ZSBvZiBMYXRlc3QgVEJFIERvc2UiICsgMSBtb250aAogIGVsc2UgbnVsbAoKCi8qCkBkeW5hbWljVmFsdWU6IFRCRSBFbmNlcHVyIGRvc2UgMiBPdmVyZHVlCkBwc2V1ZG9jb2RlOiAiRGF0ZSBhbmQgdGltZSBvZiB2YWNjaW5hdGlvbiIgKHdoZXJlICJWYWNjaW5lIHR5cGUiID0gIlRCRSB2YWNjaW5lcyIpICsgMyBtb250aHMKKi8KZGVmaW5lICJUQkUgRW5jZXB1ciBkb3NlIDIgT3ZlcmR1ZSI6CiAgaWYgIlRCRSBFbmNlcHVyIGRvc2UgMiIgdGhlbiBFbmNvdW50ZXIuIkRhdGUgb2YgTGF0ZXN0IFRCRSBEb3NlIiArIDMgbW9udGhzCiAgZWxzZSBudWxsCgoKLyoKQGR5bmFtaWNWYWx1ZTogVEJFIEVuY2VwdXIgZG9zZSAyIEV4cGlyYXRpb24KQHBzZXVkb2NvZGU6IFRvIGJlIGRldGVybWluZWQgYnkgTWVtYmVyIFN0YXRlczsgaG93ZXZlciwgdGhlcmUgaXMgbm8gcmVjb21tZW5kZWQgZXhwaXJhdGlvbiBkYXRlIGFuZCBpbmRpdmlkdWFscyBhcmUgYWx3YXlzIGVsaWdpYmxlIHRvIGJlIHZhY2NpbmF0ZWQuCiovCmRlZmluZSAiVEJFIEVuY2VwdXIgZG9zZSAyIEV4cGlyYXRpb24iOgogIG51bGwKCiAgCi8qCkBjb21wbGV0ZTogU2Vjb25kIFRCRSBkb3NlIGZyb20gdGhlIHByaW1hcnkgc2VyaWVzIHdhcyBhZG1pbmlzdGVyZWQKQHBzZXVkb2NvZGU6IENvdW50IG9mIHZhY2NpbmVzIGFkbWluaXN0ZXJlZCAod2hlcmUgIlZhY2NpbmUgdHlwZSIgPSAiVEJFIHZhY2NpbmVzIiBhbmQgIlR5cGUgb2YgZG9zZSIgPSAiUHJpbWFyeSBzZXJpZXMiKSA9IDIKKi8KZGVmaW5lICJTZWNvbmQgVEJFIGRvc2UgZnJvbSB0aGUgcHJpbWFyeSBzZXJpZXMgd2FzIGFkbWluaXN0ZXJlZCI6CiAgRW5jb3VudGVyLiJUd28gVEJFIHByaW1hcnkgc2VyaWVzIGRvc2VzIHdlcmUgYWRtaW5pc3RlcmVkIgoKCgovKgpAb3V0cHV0OiBUQkUgRW5jZXB1ciBkb3NlIDMKQGRlc2NyaXB0aW9uOiBQcm92aXNpb24gb2YgdGhlIFRCRSBFbmNlcHVyIGRvc2UgMwpAdHJpZ2dlcjogU2Vjb25kIFRCRSBkb3NlIGZyb20gdGhlIHByaW1hcnkgc2VyaWVzIHdhcyBhZG1pbmlzdGVyZWQKQHBzZXVkbzogQ291bnQgb2YgdmFjY2luZXMgYWRtaW5pc3RlcmVkICh3aGVyZSAiVmFjY2luZSB0eXBlIiA9ICJUQkUgdmFjY2luZXMiIGFuZCAiVHlwZSBvZiBkb3NlIiA9ICJQcmltYXJ5IHNlcmllcyIpID0gMgpAdHJpZ2dlckRhdGU6IExhdGVzdCAiRGF0ZSBhbmQgdGltZSBvZiB2YWNjaW5hdGlvbiIgKHdoZXJlICJWYWNjaW5lIHR5cGUiID0gIlRCRSB2YWNjaW5lcyIpCiovCmRlZmluZSAiVEJFIEVuY2VwdXIgZG9zZSAzIjoKICAiU2Vjb25kIFRCRSBkb3NlIGZyb20gdGhlIHByaW1hcnkgc2VyaWVzIHdhcyBhZG1pbmlzdGVyZWQiCiAgYW5kIG5vdCAiVGhpcmQgVEJFIGRvc2UgZnJvbSB0aGUgcHJpbWFyeSBzZXJpZXMgd2FzIGFkbWluaXN0ZXJlZC4gVGhlIHByaW1hcnkgc2VyaWVzIGhhcyBiZWVuIGNvbXBsZXRlZCIKCgovKgpAb3V0cHV0OiBUQkUgRW5jZXB1ciBkb3NlIDMgQ3JlYXRlCkBjcmVhdGU6IEZvciBFbmNlcHVyLCB0aGUgcmVxdWlyZW1lbnQgaXMgOeKAkzEyIG1vbnRocyBiZXR3ZWVuIGRvc2VzIDIgYW5kIDMuCiovCmRlZmluZSAiVEJFIEVuY2VwdXIgZG9zZSAzIENyZWF0ZSI6CiAgaWYgIlRCRSBFbmNlcHVyIGRvc2UgMyIKICB0aGVuICdGb3IgRW5jZXB1ciwgdGhlIHJlcXVpcmVtZW50IGlzIDnigJMxMiBtb250aHMgYmV0d2VlbiBkb3NlcyAyIGFuZCAzLicgKyAnCkR1ZSBEYXRlOiAnICsgVG9TdHJpbmcoIlRCRSBFbmNlcHVyIGRvc2UgMyBEdWUgRGF0ZSIpICsgJwpPdmVyZHVlOiAnICsgVG9TdHJpbmcoIlRCRSBFbmNlcHVyIGRvc2UgMyBPdmVyZHVlIikKICBlbHNlICcnCgoKLyoKQGR5bmFtaWNWYWx1ZTogVEJFIEVuY2VwdXIgZG9zZSAzIER1ZSBEYXRlCkBwc2V1ZG9jb2RlOiBMYXRlc3QgIkRhdGUgYW5kIHRpbWUgb2YgdmFjY2luYXRpb24iICh3aGVyZSAiVmFjY2luZSB0eXBlIiA9ICJUQkUgdmFjY2luZXMiKSArIDkgbW9udGhzCiovCmRlZmluZSAiVEJFIEVuY2VwdXIgZG9zZSAzIER1ZSBEYXRlIjoKICBpZiAiVEJFIEVuY2VwdXIgZG9zZSAzIiB0aGVuIEVuY291bnRlci4iRGF0ZSBvZiBMYXRlc3QgVEJFIERvc2UiICsgOSBtb250aHMKICBlbHNlIG51bGwKCgovKgpAZHluYW1pY1ZhbHVlOiBUQkUgRW5jZXB1ciBkb3NlIDMgT3ZlcmR1ZQpAcHNldWRvY29kZTogTGF0ZXN0ICJEYXRlIGFuZCB0aW1lIG9mIHZhY2NpbmF0aW9uIiAod2hlcmUgIlZhY2NpbmUgdHlwZSIgPSAiVEJFIHZhY2NpbmVzIikgKyAxMiBtb250aHMKKi8KZGVmaW5lICJUQkUgRW5jZXB1ciBkb3NlIDMgT3ZlcmR1ZSI6CiAgaWYgIlRCRSBFbmNlcHVyIGRvc2UgMyIgdGhlbiBFbmNvdW50ZXIuIkRhdGUgb2YgTGF0ZXN0IFRCRSBEb3NlIiArIDEyIG1vbnRocwogIGVsc2UgbnVsbAoKCi8qCkBkeW5hbWljVmFsdWU6IFRCRSBFbmNlcHVyIGRvc2UgMyBFeHBpcmF0aW9uCkBwc2V1ZG9jb2RlOiBUbyBiZSBkZXRlcm1pbmVkIGJ5IE1lbWJlciBTdGF0ZXM7IGhvd2V2ZXIsIHRoZXJlIGlzIG5vIHJlY29tbWVuZGVkIGV4cGlyYXRpb24gZGF0ZSBhbmQgaW5kaXZpZHVhbHMgYXJlIGFsd2F5cyBlbGlnaWJsZSB0byBiZSB2YWNjaW5hdGVkLgoqLwpkZWZpbmUgIlRCRSBFbmNlcHVyIGRvc2UgMyBFeHBpcmF0aW9uIjoKICBudWxsCgogIAovKgpAY29tcGxldGU6IFRoaXJkIFRCRSBkb3NlIGZyb20gdGhlIHByaW1hcnkgc2VyaWVzIHdhcyBhZG1pbmlzdGVyZWQuIFRoZSBwcmltYXJ5IHNlcmllcyBoYXMgYmVlbiBjb21wbGV0ZWQKQHBzZXVkb2NvZGU6ICJDb21wbGV0ZWQgdGhlIHByaW1hcnkgdmFjY2luYXRpb24gc2VyaWVzIiA9IFRSVUUgKHdoZXJlICJWYWNjaW5lIHR5cGUiID0gIlRCRSB2YWNjaW5lcyIpCiovCmRlZmluZSAiVGhpcmQgVEJFIGRvc2UgZnJvbSB0aGUgcHJpbWFyeSBzZXJpZXMgd2FzIGFkbWluaXN0ZXJlZC4gVGhlIHByaW1hcnkgc2VyaWVzIGhhcyBiZWVuIGNvbXBsZXRlZCI6CiAgRW5jb3VudGVyLiJUaHJlZSBUQkUgcHJpbWFyeSBzZXJpZXMgZG9zZXMgd2VyZSBhZG1pbmlzdGVyZWQiCgoKCi8qCkBvdXRwdXQ6IFRCRSBFbmNlcHVyIGJvb3N0ZXIgZG9zZQpAZGVzY3JpcHRpb246IFByb3Zpc2lvbiBvZiB0aGUgVEJFIEVuY2VwdXIgYm9vc3RlciBkb3NlCkB0cmlnZ2VyOiBUaGUgcHJpbWFyeSBzZXJpZXMgaGFzIGJlZW4gY29tcGxldGVkCkBwc2V1ZG86ICJDb21wbGV0ZWQgdGhlIHByaW1hcnkgdmFjY2luYXRpb24gc2VyaWVzIiA9IFRSVUUgKHdoZXJlICJWYWNjaW5lIHR5cGUiID0gIlRCRSB2YWNjaW5lcyIpCkB0cmlnZ2VyRGF0ZTogIkRhdGUgd2hlbiBwcmltYXJ5IHZhY2NpbmF0aW9uIHNlcmllcyB3YXMgY29tcGxldGVkIgoqLwpkZWZpbmUgIlRCRSBFbmNlcHVyIGJvb3N0ZXIgZG9zZSI6CiAgIlRoaXJkIFRCRSBkb3NlIGZyb20gdGhlIHByaW1hcnkgc2VyaWVzIHdhcyBhZG1pbmlzdGVyZWQuIFRoZSBwcmltYXJ5IHNlcmllcyBoYXMgYmVlbiBjb21wbGV0ZWQiCiAgYW5kIG5vdCAiVEJFIGJvb3N0ZXIgZG9zZSB3YXMgYWRtaW5pc3RlcmVkIgoKCi8qCkBvdXRwdXQ6IFRCRSBFbmNlcHVyIGJvb3N0ZXIgZG9zZSBDcmVhdGUKQGNyZWF0ZTogVGhlIG1hbnVmYWN0dXJlciByZWNvbW1lbmRzIGEgYm9vc3RlciBkb3NlIHRvIGJlIGFkbWluaXN0ZXJlZCAzIHllYXJzIGFmdGVyIGNvbXBsZXRpb24gb2YgdGhlIHByaW1hcnkgc2VyaWVzLgoqLwpkZWZpbmUgIlRCRSBFbmNlcHVyIGJvb3N0ZXIgZG9zZSBDcmVhdGUiOgogIGlmICJUQkUgRW5jZXB1ciBib29zdGVyIGRvc2UiCiAgdGhlbiAnVGhlIG1hbnVmYWN0dXJlciByZWNvbW1lbmRzIGEgYm9vc3RlciBkb3NlIHRvIGJlIGFkbWluaXN0ZXJlZCAzIHllYXJzIGFmdGVyIGNvbXBsZXRpb24gb2YgdGhlIHByaW1hcnkgc2VyaWVzLicgKyAnCkR1ZSBEYXRlOiAnICsgVG9TdHJpbmcoIlRCRSBFbmNlcHVyIGJvb3N0ZXIgZG9zZSBEdWUgRGF0ZSIpICsgJwpPdmVyZHVlOiAnICsgVG9TdHJpbmcoIlRCRSBFbmNlcHVyIGJvb3N0ZXIgZG9zZSBPdmVyZHVlIikKICBlbHNlICcnCgoKLyoKQGR5bmFtaWNWYWx1ZTogVEJFIEVuY2VwdXIgYm9vc3RlciBkb3NlIER1ZSBEYXRlCkBwc2V1ZG9jb2RlOiAiRGF0ZSB3aGVuIHByaW1hcnkgdmFjY2luYXRpb24gc2VyaWVzIHdhcyBjb21wbGV0ZWQiICsgMyB5ZWFycwoqLwpkZWZpbmUgIlRCRSBFbmNlcHVyIGJvb3N0ZXIgZG9zZSBEdWUgRGF0ZSI6CiAgaWYgIlRCRSBFbmNlcHVyIGJvb3N0ZXIgZG9zZSIgdGhlbiBFbmNvdW50ZXIuIkRhdGUgb2YgTGF0ZXN0IFRCRSBEb3NlIiArIDMgeWVhcnMKICBlbHNlIG51bGwKCgovKgpAZHluYW1pY1ZhbHVlOiBUQkUgRW5jZXB1ciBib29zdGVyIGRvc2UgT3ZlcmR1ZQpAcHNldWRvY29kZTogIkRhdGUgd2hlbiBwcmltYXJ5IHZhY2NpbmF0aW9uIHNlcmllcyB3YXMgY29tcGxldGVkIiArIDUgeWVhcnMKKi8KZGVmaW5lICJUQkUgRW5jZXB1ciBib29zdGVyIGRvc2UgT3ZlcmR1ZSI6CiAgaWYgIlRCRSBFbmNlcHVyIGJvb3N0ZXIgZG9zZSIgdGhlbiBFbmNvdW50ZXIuIkRhdGUgb2YgTGF0ZXN0IFRCRSBEb3NlIiArIDUgeWVhcnMKICBlbHNlIG51bGwKCgovKgpAZHluYW1pY1ZhbHVlOiBUQkUgRW5jZXB1ciBib29zdGVyIGRvc2UgRXhwaXJhdGlvbgpAcHNldWRvY29kZTogVG8gYmUgZGV0ZXJtaW5lZCBieSBNZW1iZXIgU3RhdGVzOyBob3dldmVyLCB0aGVyZSBpcyBubyByZWNvbW1lbmRlZCBleHBpcmF0aW9uIGRhdGUgYW5kIGluZGl2aWR1YWxzIGFyZSBhbHdheXMgZWxpZ2libGUgdG8gYmUgdmFjY2luYXRlZC4KKi8KZGVmaW5lICJUQkUgRW5jZXB1ciBib29zdGVyIGRvc2UgRXhwaXJhdGlvbiI6CiAgbnVsbAoKICAKLyoKQGNvbXBsZXRlOiBUQkUgYm9vc3RlciBkb3NlIHdhcyBhZG1pbmlzdGVyZWQKQHBzZXVkb2NvZGU6IENvdW50IG9mIHZhY2NpbmVzIGFkbWluaXN0ZXJlZCAod2hlcmUgIlZhY2NpbmUgdHlwZSIgPSAiVEJFIHZhY2NpbmVzIiBhbmQgIlR5cGUgb2YgZG9zZSIgPSAiQm9vc3RlciBkb3NlIikgPSAxCiovCmRlZmluZSAiVEJFIGJvb3N0ZXIgZG9zZSB3YXMgYWRtaW5pc3RlcmVkIjoKICBFbmNvdW50ZXIuIkF0IGxlYXN0IG9uZSBib29zdGVyIGRvc2Ugd2FzIGFkbWluaXN0ZXJlZCIKCgoKLyoKQHRlc3Q6IFRlc3QgZXhwZWN0ZWQgcmVzdWx0cyBiYXNlZCBvbiBleGFtcGxlIHBhdGllbnRzCiovCmRlZmluZSAiVGVzdCBWYWxpZGF0aW9uIjoKICBjYXNlCiAgICB3aGVuIFBhdGllbnQuaWQgPSAnVEJFMjQuMScgdGhlbiAiVGljay1ib3JuZSBlbmNlcGhhbGl0aXMgKFRCRSkgRW5jZXB1ciBkb3NlIDEiCiAgICB3aGVuIFBhdGllbnQuaWQgPSAnVEJFMjUuMicgdGhlbiAiVGljay1ib3JuZSBlbmNlcGhhbGl0aXMgKFRCRSkgRW5jZXB1ciBkb3NlIDEiCiAgICB3aGVuIFBhdGllbnQuaWQgPSAnVEJFMjYuMicgdGhlbiAiVEJFIEVuY2VwdXIgZG9zZSAyIgogICAgd2hlbiBQYXRpZW50LmlkID0gJ1RCRTI3LjInIHRoZW4gIlRCRSBFbmNlcHVyIGRvc2UgMiIKICAgIHdoZW4gUGF0aWVudC5pZCA9ICdUQkUyOC4yJyB0aGVuICJUQkUgRW5jZXB1ciBkb3NlIDMiCiAgICB3aGVuIFBhdGllbnQuaWQgPSAnVEJFMjkuMicgdGhlbiAiVEJFIEVuY2VwdXIgZG9zZSAzIgogICAgd2hlbiBQYXRpZW50LmlkID0gJ1RCRTMwLjMnIHRoZW4gIlRCRSBFbmNlcHVyIGJvb3N0ZXIgZG9zZSIKICAgIHdoZW4gUGF0aWVudC5pZCA9ICdUQkUzMS4zJyB0aGVuICJUQkUgRW5jZXB1ciBib29zdGVyIGRvc2UiCiAgICB3aGVuIFBhdGllbnQuaWQgPSAnVEJFMzIuMicgdGhlbiAiVEJFIGJvb3N0ZXIgZG9zZSB3YXMgYWRtaW5pc3RlcmVkIgogICAgZWxzZSAnTm8gdGVzdCBjYXNlIHNldCcKICBlbmQK"/>
</content>
</Library>