Common CQL Artifacts for FHIR (US-Based)
2.0.0-cibuild - Informative 2 - CI Build
Common CQL Artifacts for FHIR (US-Based), published by HL7 International / Clinical Decision Support. This guide is not an authorized publication; it is the continuous build for version 2.0.0-cibuild built by the FHIR (HL7® FHIR® Standard) CI Build. This version is based on the current content of https://github.com/HL7/us-cql-ig/ and changes regularly. See the Directory of published versions
| Page standards status: Informative | Maturity Level: 3 |
<Library xmlns="http://hl7.org/fhir">
<id value="CumulativeMedicationDurationTests"/>
<language value="en"/>
<text>
<status value="extensions"/>
<div xmlns="http://www.w3.org/1999/xhtml">
<table class="narrative-table">
<tbody>
<tr>
<th colspan="2" scope="row" class="row-header">Metadata</th>
</tr>
<tr>
<th scope="row" class="row-header">Title</th>
<td class="content-container">Cumulative Medication Duration Tests</td>
</tr>
<tr>
<th scope="row" class="row-header">Version</th>
<td class="content-container">2.0.0-cibuild</td>
</tr>
<tr>
<th scope="row" class="row-header">Experimental</th>
<td class="content-container">true</td>
</tr>
<tr>
<th scope="row" class="row-header">Jurisdiction</th>
<td class="content-container">
United States of America
</td>
</tr>
<tr>
<th scope="row" class="row-header">Topic</th>
<td class="content-container">FHIR
</td>
</tr>
<tr>
<th scope="row" class="row-header">Topic</th>
<td class="content-container">CQL
</td>
</tr>
<tr>
<th scope="row" class="row-header">Topic</th>
<td class="content-container">Medication
</td>
</tr>
<tr>
<th scope="row" class="row-header">Topic</th>
<td class="content-container">Cumulative Medication Duration
</td>
</tr>
<tr>
<th scope="row" class="row-header">Topic</th>
<td class="content-container">Unit Tests
</td>
</tr>
<tr>
<th scope="row" class="row-header">Steward (Publisher)</th>
<td class="content-container">HL7 International / Clinical Decision Support</td>
</tr>
<tr>
<th scope="row" class="row-header">Description</th>
<td class="content-container"><div><p>This library provides tests for the cumulative medication duration calculation logic for use with FHIR medication prescription, administration, and dispensing resources.</p>
</div></td>
</tr>
<tr>
<th scope="row" class="row-header">Type</th>
<td class="content-container">
logic-library from <a href="http://terminology.hl7.org/7.1.0/CodeSystem-library-type.html">http://terminology.hl7.org/CodeSystem/library-type</a>
</td>
</tr>
<tr>
<th scope="row" class="row-header">Dependency</th>
<td class="content-container">
<em>Description</em>: Library FHIRHelpers
<br/>
<em>Resource</em>: <a href="http://hl7.org/fhir/uv/cql/STU2/Library-FHIRHelpers.html">http://hl7.org/fhir/uv/cql/Library/FHIRHelpers|4.0.1</a>
<br/>
<em>Canonical URL</em>: <tt>http://hl7.org/fhir/uv/cql/Library/FHIRHelpers|4.0.1</tt>
</td>
</tr>
<tr>
<th scope="row" class="row-header">Dependency</th>
<td class="content-container">
<em>Description</em>: Library CMD
<br/>
<em>Resource</em>: <a href="Library-CumulativeMedicationDuration.html">Cumulative Medication Durationversion: null2.0.0-cibuild)</a>
<br/>
<em>Canonical URL</em>: <tt>http://hl7.org/fhir/us/cql/Library/CumulativeMedicationDuration|2.0.0-cibuild</tt>
</td>
</tr>
<tr>
<th scope="row" class="row-header">Data Requirement</th>
<td class="content-container">
<em>Type</em>: MedicationRequest
<br/>
<em>Profile(s)</em>:
<a href="http://hl7.org/fhir/R4/medicationrequest.html">MedicationRequest</a>
<br/>
</td>
</tr>
<tr>
<th scope="row" class="row-header">Data Requirement</th>
<td class="content-container">
<em>Type</em>: MedicationDispense
<br/>
<em>Profile(s)</em>:
<a href="http://hl7.org/fhir/R4/medicationdispense.html">MedicationDispense</a>
<br/>
</td>
</tr>
<tr>
<th colspan="2" scope="row" class="row-header"><a name="parameters"> </a>Parameters</th>
</tr>
<tr>
<th scope="row" class="row-header"/>
<td class="content-container">
<table>
<thead>
<tr>
<td><em>Name</em></td>
<td><em>Use</em></td>
<td><em>Card.</em></td>
<td><em>Type</em></td>
<td>Documentation</td>
</tr>
</thead>
<tbody>
<tr>
<td>Patient</td>
<td>Out</td>
<td>0..1</td>
<td>Patient</td>
<td/>
</tr>
<tr>
<td>Prescriptions</td>
<td>Out</td>
<td>0..*</td>
<td>MedicationRequest</td>
<td/>
</tr>
<tr>
<td>Dispenses</td>
<td>Out</td>
<td>0..*</td>
<td>MedicationDispense</td>
<td/>
</tr>
<tr>
<td>PrescriptionPeriods</td>
<td>Out</td>
<td>0..*</td>
<td>Period</td>
<td/>
</tr>
<tr>
<td>DispensePeriods</td>
<td>Out</td>
<td>0..*</td>
<td>Period</td>
<td/>
</tr>
<tr>
<td>CumulativeDuration</td>
<td>Out</td>
<td>0..1</td>
<td>integer</td>
<td/>
</tr>
<tr>
<td>CumulativeMedicationDuration</td>
<td>Out</td>
<td>0..1</td>
<td>integer</td>
<td/>
</tr>
</tbody>
</table>
</td>
</tr>
<tr>
<th colspan="2" scope="row" class="row-header">Library Content</th>
</tr>
<tr>
<th scope="row" class="row-header">CQL Content</th>
<td>
<a name="cql-content"> </a>
<pre style="border: none;" class="content-container highlight language-cql"><code class="language-cql">library CumulativeMedicationDurationTests version '2.0.0-cibuild'
using FHIR version '4.0.1'
include hl7.fhir.uv.cql.FHIRHelpers version '4.0.1'
include CumulativeMedicationDuration version '2.0.0-cibuild' called CMD
context Patient
/*
# Example 1:
MedicationRequest 2 tabs 3x/day #180/2
* dosage = 2
* frequency = 3x /day (i.e., repeats / period = day)
* supply = 180
* daysSupplied = 30 days
* refills = 2
derived daysSupplied = [supply (180) / ((dosage (2) x frequency (3))] = 30
daysSuppliedWithRefills = [supply (180) x (1 + refills (2)) / ((dosage (2) x frequency (3))] = 30 x 3 = 90 days
*/
/*
## Example 1a - boundsPeriod specified
## Example 1b - expectedSupplyDuration specified
## Example 1c - Calculated from dosing information
*/
/*
# Example 2:
MedicationDispense 2 tabs 3x/day #180/2*
* dosage = 2
* frequency = 3x /day (i.e., repeats / period = day)
* supply = 180
* daysSupplied = 30 days
* refills = n/a
derived daysSupplied = [supply (180) / ((dosage (2) x frequency (3))] = 30
*/
/*
## Example 2a - daysSupply Specified
## Example 2b - Calculated from dosing information
*/
/*
# Example 3:
MedicationRequest ½ tab 2x/day #30/2
* dosage = 1/2
* frequency = 2x /day (i.e., repeats / period = day)
* supply = 30
* daysSupplied = 30
* refills = 2
derived daysSupplied = [supply (30) / ((dosage (1/2) x frequency (2))] = 30
daysSuppliedWithRefills = [supply (30) x (1 + refills (2)) / ((dosage (1/2) x frequency (2) = 30 x 3 = 90 days
*/
/*
## Example 3a - boundsPeriod specified
## Example 3b - expectedSupplyDuration specified
## Example 3c - Calculated from dosing information
*/
/*4
# Example 4:
MedicationDispense ½ tab 2x/day #30/2*
* dosage = 1/2
* frequency = 2x /day (i.e., repeats / period = day)
* supply = 30
* daysSupplied = 30
* refills = n/a
derived daysSupplied = [supply (30) / ((dosage (1/2) x frequency (2))] = 30
*/
/*
## Example 4a - daysSupply Specified
## Example 4b - Calculated from dosing information
*/
/*
# Example 5:
MedicationRequest 5 ml 3x/day #150 ml/0
* dosage = 5 ml
* frequency = 3x /day (i.e., repeats / period = day)
* supply = 150 ml
* daysSupplied = 10
* refills = 0
derived daysSupplied = [supply (150 ml) / ((dosage (5 ml) x frequency (3)) = 10 days
daysSuppliedWithRefills = [supply (150 ml) x (1 + refills (0)) / ((dosage (5 ml) x frequency (3)) = 10 days
*/
/*
# Example 6:
MedicationDispense 5 ml 3x/day #150 ml/0*
* dosage = 5 ml
* frequency = 3x /day (i.e., repeats / period = day)
* supply = 150 ml
* daysSupplied = 10
* refills = n/a
* CMD calculated for “Medication, Dispensed” does not use the number of refills; rather, the days covered by each dispensing event must be retrieved and added.
*/
define Prescriptions: [MedicationRequest]
define Dispenses: [MedicationDispense]
define PrescriptionPeriods:
Prescriptions P
return CMD.MedicationRequestPeriod(P)
define DispensePeriods:
Dispenses D
return CMD.MedicationDispensePeriod(D)
define CumulativeDuration:
CMD.CumulativeDuration(PrescriptionPeriods union DispensePeriods)
// TODO: Debug this
define CumulativeMedicationDuration:
CMD.CumulativeMedicationDuration(
Prescriptions
union Dispenses
)
</code></pre>
</td>
</tr>
<tr>
<th scope="row" class="row-header">ELM XML Content</th>
<td>
<pre style="border: none;" class="content-container highlight language-cql"><code>Encoded data </code></pre>
</td>
</tr>
<tr>
<th scope="row" class="row-header">ELM JSON Content</th>
<td>
<pre style="border: none;" class="content-container highlight language-cql"><code>Encoded data </code></pre>
</td>
</tr>
<tr>
<th colspan="2" scope="row" class="row-header">Generated using version 0.5.3-cibuild of the sample-content-ig Liquid templates</th>
</tr>
</tbody>
</table>
</div>
</text>
<extension
url="http://hl7.org/fhir/StructureDefinition/structuredefinition-fmm">
<valueInteger value="3"/>
</extension>
<extension
url="http://hl7.org/fhir/StructureDefinition/structuredefinition-wg">
<valueCode value="cds"/>
</extension>
<extension
url="http://hl7.org/fhir/StructureDefinition/structuredefinition-standards-status">
<valueCode value="informative"/>
</extension>
<url
value="http://hl7.org/fhir/us/cql/Library/CumulativeMedicationDurationTests"/>
<version value="2.0.0-cibuild"/>
<name value="CumulativeMedicationDurationTests"/>
<title value="Cumulative Medication Duration Tests"/>
<status value="active"/>
<experimental value="true"/>
<type>
<coding>
<system value="http://terminology.hl7.org/CodeSystem/library-type"/>
<code value="logic-library"/>
</coding>
</type>
<date value="2026-04-03T16:14:32+00:00"/>
<publisher value="HL7 International / Clinical Decision Support"/>
<contact>
<telecom>
<system value="url"/>
<value value="http://www.hl7.org/Special/committees/dss"/>
</telecom>
</contact>
<description
value="This library provides tests for the cumulative medication duration calculation logic for use with FHIR medication prescription, administration, and dispensing resources."/>
<jurisdiction>
<coding>
<system value="urn:iso:std:iso:3166"/>
<code value="US"/>
<display value="United States of America"/>
</coding>
</jurisdiction>
<topic>
<text value="FHIR"/>
</topic>
<topic>
<text value="CQL"/>
</topic>
<topic>
<text value="Medication"/>
</topic>
<topic>
<text value="Cumulative Medication Duration"/>
</topic>
<topic>
<text value="Unit Tests"/>
</topic>
<relatedArtifact>
<type value="depends-on"/>
<display value="Library FHIRHelpers"/>
<resource value="http://hl7.org/fhir/uv/cql/Library/FHIRHelpers|4.0.1"/>
</relatedArtifact>
<relatedArtifact>
<type value="depends-on"/>
<display value="Library CMD"/>
<resource
value="http://hl7.org/fhir/us/cql/Library/CumulativeMedicationDuration|2.0.0-cibuild"/>
</relatedArtifact>
<parameter>
<name value="Patient"/>
<use value="out"/>
<min value="0"/>
<max value="1"/>
<type value="Patient"/>
</parameter>
<parameter>
<name value="Prescriptions"/>
<use value="out"/>
<min value="0"/>
<max value="*"/>
<type value="MedicationRequest"/>
</parameter>
<parameter>
<name value="Dispenses"/>
<use value="out"/>
<min value="0"/>
<max value="*"/>
<type value="MedicationDispense"/>
</parameter>
<parameter>
<name value="PrescriptionPeriods"/>
<use value="out"/>
<min value="0"/>
<max value="*"/>
<type value="Period"/>
</parameter>
<parameter>
<name value="DispensePeriods"/>
<use value="out"/>
<min value="0"/>
<max value="*"/>
<type value="Period"/>
</parameter>
<parameter>
<name value="CumulativeDuration"/>
<use value="out"/>
<min value="0"/>
<max value="1"/>
<type value="integer"/>
</parameter>
<parameter>
<name value="CumulativeMedicationDuration"/>
<use value="out"/>
<min value="0"/>
<max value="1"/>
<type value="integer"/>
</parameter>
<dataRequirement>
<type value="MedicationRequest"/>
<profile
value="http://hl7.org/fhir/StructureDefinition/MedicationRequest"/>
</dataRequirement>
<dataRequirement>
<type value="MedicationDispense"/>
<profile
value="http://hl7.org/fhir/StructureDefinition/MedicationDispense"/>
</dataRequirement>
<content>
<contentType value="text/cql"/>
<data
value="bGlicmFyeSBDdW11bGF0aXZlTWVkaWNhdGlvbkR1cmF0aW9uVGVzdHMgdmVyc2lvbiAnMi4wLjAtY2lidWlsZCcKCnVzaW5nIEZISVIgdmVyc2lvbiAnNC4wLjEnCgppbmNsdWRlIGhsNy5maGlyLnV2LmNxbC5GSElSSGVscGVycyB2ZXJzaW9uICc0LjAuMScKCmluY2x1ZGUgQ3VtdWxhdGl2ZU1lZGljYXRpb25EdXJhdGlvbiB2ZXJzaW9uICcyLjAuMC1jaWJ1aWxkJyBjYWxsZWQgQ01ECgpjb250ZXh0IFBhdGllbnQKCi8qCiMgRXhhbXBsZSAxOgpNZWRpY2F0aW9uUmVxdWVzdCAyIHRhYnMgM3gvZGF5ICAgIzE4MC8yCiogZG9zYWdlID0gMgoqIGZyZXF1ZW5jeSA9IDN4IC9kYXkgKGkuZS4sIHJlcGVhdHMgLyBwZXJpb2QgPSBkYXkpCiogc3VwcGx5ID0gMTgwCiogZGF5c1N1cHBsaWVkID0gMzAgZGF5cwoqIHJlZmlsbHMgPSAyCgpkZXJpdmVkIGRheXNTdXBwbGllZCA9IFtzdXBwbHkgKDE4MCkgLyAoKGRvc2FnZSAoMikgeCBmcmVxdWVuY3kgKDMpKV0gPSAzMApkYXlzU3VwcGxpZWRXaXRoUmVmaWxscyA9IFtzdXBwbHkgKDE4MCkgeCAoMSArIHJlZmlsbHMgKDIpKSAvICgoZG9zYWdlICgyKSB4IGZyZXF1ZW5jeSAoMykpXSA9IDMwIHggMyA9IDkwIGRheXMKKi8KCi8qCiMjIEV4YW1wbGUgMWEgLSBib3VuZHNQZXJpb2Qgc3BlY2lmaWVkCgojIyBFeGFtcGxlIDFiIC0gZXhwZWN0ZWRTdXBwbHlEdXJhdGlvbiBzcGVjaWZpZWQKCiMjIEV4YW1wbGUgMWMgLSBDYWxjdWxhdGVkIGZyb20gZG9zaW5nIGluZm9ybWF0aW9uCiovCgovKgojIEV4YW1wbGUgMjoKTWVkaWNhdGlvbkRpc3BlbnNlIDIgdGFicyAzeC9kYXkgIzE4MC8yKgoqIGRvc2FnZSA9IDIKKiBmcmVxdWVuY3kgPSAzeCAvZGF5IChpLmUuLCByZXBlYXRzIC8gcGVyaW9kID0gZGF5KQoqIHN1cHBseSA9IDE4MAoqIGRheXNTdXBwbGllZCA9IDMwIGRheXMKKiByZWZpbGxzID0gbi9hCgpkZXJpdmVkIGRheXNTdXBwbGllZCA9IFtzdXBwbHkgKDE4MCkgLyAoKGRvc2FnZSAoMikgeCBmcmVxdWVuY3kgKDMpKV0gPSAzMAoqLwoKLyoKIyMgRXhhbXBsZSAyYSAtIGRheXNTdXBwbHkgU3BlY2lmaWVkCgojIyBFeGFtcGxlIDJiIC0gQ2FsY3VsYXRlZCBmcm9tIGRvc2luZyBpbmZvcm1hdGlvbgoqLwoKLyoKIyBFeGFtcGxlIDM6Ck1lZGljYXRpb25SZXF1ZXN0IMK9IHRhYiAyeC9kYXkgIzMwLzIKKiBkb3NhZ2UgPSAxLzIKKiBmcmVxdWVuY3kgPSAyeCAvZGF5IChpLmUuLCByZXBlYXRzIC8gcGVyaW9kID0gZGF5KQoqIHN1cHBseSA9IDMwCiogZGF5c1N1cHBsaWVkID0gMzAKKiByZWZpbGxzID0gMgoKZGVyaXZlZCBkYXlzU3VwcGxpZWQgPSBbc3VwcGx5ICgzMCkgLyAoKGRvc2FnZSAoMS8yKSB4IGZyZXF1ZW5jeSAoMikpXSA9IDMwCmRheXNTdXBwbGllZFdpdGhSZWZpbGxzID0gW3N1cHBseSAoMzApIHggKDEgKyByZWZpbGxzICgyKSkgLyAoKGRvc2FnZSAoMS8yKSB4IGZyZXF1ZW5jeSAoMikgPSAzMCB4IDMgPSA5MCBkYXlzCiovCgovKgojIyBFeGFtcGxlIDNhIC0gYm91bmRzUGVyaW9kIHNwZWNpZmllZAoKIyMgRXhhbXBsZSAzYiAtIGV4cGVjdGVkU3VwcGx5RHVyYXRpb24gc3BlY2lmaWVkCgojIyBFeGFtcGxlIDNjIC0gQ2FsY3VsYXRlZCBmcm9tIGRvc2luZyBpbmZvcm1hdGlvbgoqLwoKLyo0CiMgRXhhbXBsZSA0OgpNZWRpY2F0aW9uRGlzcGVuc2Ugwr0gdGFiIDJ4L2RheSAjMzAvMioKKiBkb3NhZ2UgPSAxLzIKKiBmcmVxdWVuY3kgPSAyeCAvZGF5IChpLmUuLCByZXBlYXRzIC8gcGVyaW9kID0gZGF5KQoqIHN1cHBseSA9IDMwCiogZGF5c1N1cHBsaWVkID0gMzAKKiByZWZpbGxzID0gbi9hCgpkZXJpdmVkIGRheXNTdXBwbGllZCA9IFtzdXBwbHkgKDMwKSAvICgoZG9zYWdlICgxLzIpIHggZnJlcXVlbmN5ICgyKSldID0gMzAKKi8KCi8qCiMjIEV4YW1wbGUgNGEgLSBkYXlzU3VwcGx5IFNwZWNpZmllZAoKIyMgRXhhbXBsZSA0YiAtIENhbGN1bGF0ZWQgZnJvbSBkb3NpbmcgaW5mb3JtYXRpb24KKi8KCi8qCiMgRXhhbXBsZSA1OgpNZWRpY2F0aW9uUmVxdWVzdCA1IG1sIDN4L2RheSAgIzE1MCBtbC8wCiogZG9zYWdlID0gNSBtbAoqIGZyZXF1ZW5jeSA9IDN4IC9kYXkgKGkuZS4sIHJlcGVhdHMgLyBwZXJpb2QgPSBkYXkpCiogc3VwcGx5ID0gMTUwIG1sCiogZGF5c1N1cHBsaWVkID0gMTAKKiByZWZpbGxzID0gMAoKZGVyaXZlZCBkYXlzU3VwcGxpZWQgPSBbc3VwcGx5ICgxNTAgbWwpIC8gKChkb3NhZ2UgKDUgbWwpIHggZnJlcXVlbmN5ICgzKSkgPSAxMCBkYXlzCmRheXNTdXBwbGllZFdpdGhSZWZpbGxzID0gW3N1cHBseSAoMTUwIG1sKSB4ICgxICsgcmVmaWxscyAoMCkpIC8gKChkb3NhZ2UgKDUgbWwpIHggZnJlcXVlbmN5ICgzKSkgPSAxMCBkYXlzCiovCgovKgojIEV4YW1wbGUgNjoKTWVkaWNhdGlvbkRpc3BlbnNlIDUgbWwgM3gvZGF5ICAjMTUwIG1sLzAqCiogZG9zYWdlID0gNSBtbAoqIGZyZXF1ZW5jeSA9IDN4IC9kYXkgKGkuZS4sIHJlcGVhdHMgLyBwZXJpb2QgPSBkYXkpCiogc3VwcGx5ID0gMTUwIG1sCiogZGF5c1N1cHBsaWVkID0gMTAKKiByZWZpbGxzID0gbi9hCgoqIENNRCBjYWxjdWxhdGVkIGZvciDigJxNZWRpY2F0aW9uLCBEaXNwZW5zZWTigJ0gZG9lcyBub3QgdXNlIHRoZSBudW1iZXIgb2YgcmVmaWxsczsgcmF0aGVyLCB0aGUgZGF5cyBjb3ZlcmVkIGJ5IGVhY2ggZGlzcGVuc2luZyBldmVudCBtdXN0IGJlIHJldHJpZXZlZCBhbmQgYWRkZWQuCiovCgpkZWZpbmUgUHJlc2NyaXB0aW9uczogW01lZGljYXRpb25SZXF1ZXN0XQpkZWZpbmUgRGlzcGVuc2VzOiBbTWVkaWNhdGlvbkRpc3BlbnNlXQoKZGVmaW5lIFByZXNjcmlwdGlvblBlcmlvZHM6CiAgUHJlc2NyaXB0aW9ucyBQCiAgICByZXR1cm4gQ01ELk1lZGljYXRpb25SZXF1ZXN0UGVyaW9kKFApCgpkZWZpbmUgRGlzcGVuc2VQZXJpb2RzOgogIERpc3BlbnNlcyBECiAgICByZXR1cm4gQ01ELk1lZGljYXRpb25EaXNwZW5zZVBlcmlvZChEKQoKZGVmaW5lIEN1bXVsYXRpdmVEdXJhdGlvbjoKICBDTUQuQ3VtdWxhdGl2ZUR1cmF0aW9uKFByZXNjcmlwdGlvblBlcmlvZHMgdW5pb24gRGlzcGVuc2VQZXJpb2RzKQoKLy8gVE9ETzogRGVidWcgdGhpcwpkZWZpbmUgQ3VtdWxhdGl2ZU1lZGljYXRpb25EdXJhdGlvbjoKICBDTUQuQ3VtdWxhdGl2ZU1lZGljYXRpb25EdXJhdGlvbigKICAgIFByZXNjcmlwdGlvbnMKICAgICAgdW5pb24gRGlzcGVuc2VzCiAgKQo="/>
</content>
<content>
<contentType value="application/elm+xml"/>
<data
value="PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPGxpYnJhcnkgeG1sbnM9InVybjpobDctb3JnOmVsbTpyMSIgeG1sbnM6dD0idXJuOmhsNy1vcmc6ZWxtLXR5cGVzOnIxIiB4bWxuczp4c2k9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlIiB4bWxuczp4c2Q9Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hIiB4bWxuczpmaGlyPSJodHRwOi8vaGw3Lm9yZy9maGlyIiB4bWxuczpxZG00Mz0idXJuOmhlYWx0aGl0LWdvdjpxZG06djRfMyIgeG1sbnM6cWRtNTM9InVybjpoZWFsdGhpdC1nb3Y6cWRtOnY1XzMiIHhtbG5zOmE9InVybjpobDctb3JnOmNxbC1hbm5vdGF0aW9uczpyMSIgbG9jYWxJZD0iMCI+CiAgIDxhbm5vdGF0aW9uIHRyYW5zbGF0b3JPcHRpb25zPSJFbmFibGVBbm5vdGF0aW9ucyxFbmFibGVMb2NhdG9ycyxEaXNhYmxlTGlzdERlbW90aW9uLERpc2FibGVMaXN0UHJvbW90aW9uIiBzaWduYXR1cmVMZXZlbD0iQWxsIiB4c2k6dHlwZT0iYTpDcWxUb0VsbUluZm8iLz4KICAgPGFubm90YXRpb24geHNpOnR5cGU9ImE6QW5ub3RhdGlvbiI+CiAgICAgIDxhOnMgcj0iMjY3Ij4KICAgICAgICAgPGE6cz5saWJyYXJ5IEN1bXVsYXRpdmVNZWRpY2F0aW9uRHVyYXRpb25UZXN0cyB2ZXJzaW9uICcyLjAuMC1jaWJ1aWxkJzwvYTpzPgogICAgICA8L2E6cz4KICAgPC9hbm5vdGF0aW9uPgogICA8aWRlbnRpZmllciBpZD0iQ3VtdWxhdGl2ZU1lZGljYXRpb25EdXJhdGlvblRlc3RzIiBzeXN0ZW09Imh0dHA6Ly9obDcub3JnL2ZoaXIvdXMvY3FsIiB2ZXJzaW9uPSIyLjAuMC1jaWJ1aWxkIi8+CiAgIDxzY2hlbWFJZGVudGlmaWVyIGlkPSJ1cm46aGw3LW9yZzplbG0iIHZlcnNpb249InIxIi8+CiAgIDx1c2luZ3M+CiAgICAgIDxkZWYgbG9jYWxJZD0iMSIgbG9jYWxJZGVudGlmaWVyPSJTeXN0ZW0iIHVyaT0idXJuOmhsNy1vcmc6ZWxtLXR5cGVzOnIxIiB2ZXJzaW9uPSIxLjAuMCIvPgogICAgICA8ZGVmIGxvY2FsSWQ9IjIwNiIgbG9jYXRvcj0iMzoxLTM6MjYiIGxvY2FsSWRlbnRpZmllcj0iRkhJUiIgdXJpPSJodHRwOi8vaGw3Lm9yZy9maGlyIiB2ZXJzaW9uPSI0LjAuMSI+CiAgICAgICAgIDxhbm5vdGF0aW9uIHhzaTp0eXBlPSJhOkFubm90YXRpb24iPgogICAgICAgICAgICA8YTpzIHI9IjIwNiI+CiAgICAgICAgICAgICAgIDxhOnM+dXNpbmcgPC9hOnM+CiAgICAgICAgICAgICAgIDxhOnM+CiAgICAgICAgICAgICAgICAgIDxhOnM+RkhJUjwvYTpzPgogICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgPGE6cz4gdmVyc2lvbiAnNC4wLjEnPC9hOnM+CiAgICAgICAgICAgIDwvYTpzPgogICAgICAgICA8L2Fubm90YXRpb24+CiAgICAgIDwvZGVmPgogICA8L3VzaW5ncz4KICAgPGluY2x1ZGVzPgogICAgICA8ZGVmIGxvY2FsSWQ9IjIwOCIgbG9jYXRvcj0iNToxLTU6NTEiIGxvY2FsSWRlbnRpZmllcj0iRkhJUkhlbHBlcnMiIHBhdGg9Imh0dHA6Ly9obDcub3JnL2ZoaXIvdXYvY3FsL0ZISVJIZWxwZXJzIiB2ZXJzaW9uPSI0LjAuMSI+CiAgICAgICAgIDxhbm5vdGF0aW9uIHhzaTp0eXBlPSJhOkFubm90YXRpb24iPgogICAgICAgICAgICA8YTpzIHI9IjIwOCI+CiAgICAgICAgICAgICAgIDxhOnM+aW5jbHVkZSA8L2E6cz4KICAgICAgICAgICAgICAgPGE6cz4KICAgICAgICAgICAgICAgICAgPGE6cz5obDcuZmhpci51di5jcWwuRkhJUkhlbHBlcnM8L2E6cz4KICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgICAgIDxhOnM+IHZlcnNpb24gJzQuMC4xJzwvYTpzPgogICAgICAgICAgICA8L2E6cz4KICAgICAgICAgPC9hbm5vdGF0aW9uPgogICAgICA8L2RlZj4KICAgICAgPGRlZiBsb2NhbElkPSIyMTAiIGxvY2F0b3I9Ijc6MS03OjcxIiBsb2NhbElkZW50aWZpZXI9IkNNRCIgcGF0aD0iaHR0cDovL2hsNy5vcmcvZmhpci91cy9jcWwvQ3VtdWxhdGl2ZU1lZGljYXRpb25EdXJhdGlvbiIgdmVyc2lvbj0iMi4wLjAtY2lidWlsZCI+CiAgICAgICAgIDxhbm5vdGF0aW9uIHhzaTp0eXBlPSJhOkFubm90YXRpb24iPgogICAgICAgICAgICA8YTpzIHI9IjIxMCI+CiAgICAgICAgICAgICAgIDxhOnM+aW5jbHVkZSA8L2E6cz4KICAgICAgICAgICAgICAgPGE6cz4KICAgICAgICAgICAgICAgICAgPGE6cz5DdW11bGF0aXZlTWVkaWNhdGlvbkR1cmF0aW9uPC9hOnM+CiAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICA8YTpzPiB2ZXJzaW9uICcyLjAuMC1jaWJ1aWxkJyBjYWxsZWQgQ01EPC9hOnM+CiAgICAgICAgICAgIDwvYTpzPgogICAgICAgICA8L2Fubm90YXRpb24+CiAgICAgIDwvZGVmPgogICA8L2luY2x1ZGVzPgogICA8Y29udGV4dHM+CiAgICAgIDxkZWYgbG9jYWxJZD0iMjE1IiBsb2NhdG9yPSI5OjEtOToxNSIgbmFtZT0iUGF0aWVudCIvPgogICA8L2NvbnRleHRzPgogICA8c3RhdGVtZW50cz4KICAgICAgPGRlZiBsb2NhbElkPSIyMTMiIGxvY2F0b3I9Ijk6MS05OjE1IiBuYW1lPSJQYXRpZW50IiBjb250ZXh0PSJQYXRpZW50Ij4KICAgICAgICAgPGV4cHJlc3Npb24gbG9jYWxJZD0iMjE0IiB4c2k6dHlwZT0iU2luZ2xldG9uRnJvbSI+CiAgICAgICAgICAgIDxvcGVyYW5kIGxvY2FsSWQ9IjIxMiIgbG9jYXRvcj0iOToxLTk6MTUiIGRhdGFUeXBlPSJmaGlyOlBhdGllbnQiIHRlbXBsYXRlSWQ9Imh0dHA6Ly9obDcub3JnL2ZoaXIvU3RydWN0dXJlRGVmaW5pdGlvbi9QYXRpZW50IiB4c2k6dHlwZT0iUmV0cmlldmUiLz4KICAgICAgICAgPC9leHByZXNzaW9uPgogICAgICA8L2RlZj4KICAgICAgPGRlZiBsb2NhbElkPSIyMTgiIGxvY2F0b3I9IjExNDoxLTExNDo0MSIgbmFtZT0iUHJlc2NyaXB0aW9ucyIgY29udGV4dD0iUGF0aWVudCIgYWNjZXNzTGV2ZWw9IlB1YmxpYyI+CiAgICAgICAgIDxhbm5vdGF0aW9uIHhzaTp0eXBlPSJhOkFubm90YXRpb24iPgogICAgICAgICAgICA8YTpzIHI9IjIxOCI+CiAgICAgICAgICAgICAgIDxhOnM+LyoKIyBFeGFtcGxlIDE6Ck1lZGljYXRpb25SZXF1ZXN0IDIgdGFicyAzeC9kYXkgICAjMTgwLzIKKiBkb3NhZ2UgPSAyCiogZnJlcXVlbmN5ID0gM3ggL2RheSAoaS5lLiwgcmVwZWF0cyAvIHBlcmlvZCA9IGRheSkKKiBzdXBwbHkgPSAxODAKKiBkYXlzU3VwcGxpZWQgPSAzMCBkYXlzCiogcmVmaWxscyA9IDIKCmRlcml2ZWQgZGF5c1N1cHBsaWVkID0gW3N1cHBseSAoMTgwKSAvICgoZG9zYWdlICgyKSB4IGZyZXF1ZW5jeSAoMykpXSA9IDMwCmRheXNTdXBwbGllZFdpdGhSZWZpbGxzID0gW3N1cHBseSAoMTgwKSB4ICgxICsgcmVmaWxscyAoMikpIC8gKChkb3NhZ2UgKDIpIHggZnJlcXVlbmN5ICgzKSldID0gMzAgeCAzID0gOTAgZGF5cwoqLwoKLyoKIyMgRXhhbXBsZSAxYSAtIGJvdW5kc1BlcmlvZCBzcGVjaWZpZWQKCiMjIEV4YW1wbGUgMWIgLSBleHBlY3RlZFN1cHBseUR1cmF0aW9uIHNwZWNpZmllZAoKIyMgRXhhbXBsZSAxYyAtIENhbGN1bGF0ZWQgZnJvbSBkb3NpbmcgaW5mb3JtYXRpb24KKi8KCi8qCiMgRXhhbXBsZSAyOgpNZWRpY2F0aW9uRGlzcGVuc2UgMiB0YWJzIDN4L2RheSAjMTgwLzIqCiogZG9zYWdlID0gMgoqIGZyZXF1ZW5jeSA9IDN4IC9kYXkgKGkuZS4sIHJlcGVhdHMgLyBwZXJpb2QgPSBkYXkpCiogc3VwcGx5ID0gMTgwCiogZGF5c1N1cHBsaWVkID0gMzAgZGF5cwoqIHJlZmlsbHMgPSBuL2EKCmRlcml2ZWQgZGF5c1N1cHBsaWVkID0gW3N1cHBseSAoMTgwKSAvICgoZG9zYWdlICgyKSB4IGZyZXF1ZW5jeSAoMykpXSA9IDMwCiovCgovKgojIyBFeGFtcGxlIDJhIC0gZGF5c1N1cHBseSBTcGVjaWZpZWQKCiMjIEV4YW1wbGUgMmIgLSBDYWxjdWxhdGVkIGZyb20gZG9zaW5nIGluZm9ybWF0aW9uCiovCgovKgojIEV4YW1wbGUgMzoKTWVkaWNhdGlvblJlcXVlc3Qgwr0gdGFiIDJ4L2RheSAjMzAvMgoqIGRvc2FnZSA9IDEvMgoqIGZyZXF1ZW5jeSA9IDJ4IC9kYXkgKGkuZS4sIHJlcGVhdHMgLyBwZXJpb2QgPSBkYXkpCiogc3VwcGx5ID0gMzAKKiBkYXlzU3VwcGxpZWQgPSAzMAoqIHJlZmlsbHMgPSAyCgpkZXJpdmVkIGRheXNTdXBwbGllZCA9IFtzdXBwbHkgKDMwKSAvICgoZG9zYWdlICgxLzIpIHggZnJlcXVlbmN5ICgyKSldID0gMzAKZGF5c1N1cHBsaWVkV2l0aFJlZmlsbHMgPSBbc3VwcGx5ICgzMCkgeCAoMSArIHJlZmlsbHMgKDIpKSAvICgoZG9zYWdlICgxLzIpIHggZnJlcXVlbmN5ICgyKSA9IDMwIHggMyA9IDkwIGRheXMKKi8KCi8qCiMjIEV4YW1wbGUgM2EgLSBib3VuZHNQZXJpb2Qgc3BlY2lmaWVkCgojIyBFeGFtcGxlIDNiIC0gZXhwZWN0ZWRTdXBwbHlEdXJhdGlvbiBzcGVjaWZpZWQKCiMjIEV4YW1wbGUgM2MgLSBDYWxjdWxhdGVkIGZyb20gZG9zaW5nIGluZm9ybWF0aW9uCiovCgovKjQKIyBFeGFtcGxlIDQ6Ck1lZGljYXRpb25EaXNwZW5zZSDCvSB0YWIgMngvZGF5ICMzMC8yKgoqIGRvc2FnZSA9IDEvMgoqIGZyZXF1ZW5jeSA9IDJ4IC9kYXkgKGkuZS4sIHJlcGVhdHMgLyBwZXJpb2QgPSBkYXkpCiogc3VwcGx5ID0gMzAKKiBkYXlzU3VwcGxpZWQgPSAzMAoqIHJlZmlsbHMgPSBuL2EKCmRlcml2ZWQgZGF5c1N1cHBsaWVkID0gW3N1cHBseSAoMzApIC8gKChkb3NhZ2UgKDEvMikgeCBmcmVxdWVuY3kgKDIpKV0gPSAzMAoqLwoKLyoKIyMgRXhhbXBsZSA0YSAtIGRheXNTdXBwbHkgU3BlY2lmaWVkCgojIyBFeGFtcGxlIDRiIC0gQ2FsY3VsYXRlZCBmcm9tIGRvc2luZyBpbmZvcm1hdGlvbgoqLwoKLyoKIyBFeGFtcGxlIDU6Ck1lZGljYXRpb25SZXF1ZXN0IDUgbWwgM3gvZGF5ICAjMTUwIG1sLzAKKiBkb3NhZ2UgPSA1IG1sCiogZnJlcXVlbmN5ID0gM3ggL2RheSAoaS5lLiwgcmVwZWF0cyAvIHBlcmlvZCA9IGRheSkKKiBzdXBwbHkgPSAxNTAgbWwKKiBkYXlzU3VwcGxpZWQgPSAxMAoqIHJlZmlsbHMgPSAwCgpkZXJpdmVkIGRheXNTdXBwbGllZCA9IFtzdXBwbHkgKDE1MCBtbCkgLyAoKGRvc2FnZSAoNSBtbCkgeCBmcmVxdWVuY3kgKDMpKSA9IDEwIGRheXMKZGF5c1N1cHBsaWVkV2l0aFJlZmlsbHMgPSBbc3VwcGx5ICgxNTAgbWwpIHggKDEgKyByZWZpbGxzICgwKSkgLyAoKGRvc2FnZSAoNSBtbCkgeCBmcmVxdWVuY3kgKDMpKSA9IDEwIGRheXMKKi8KCi8qCiMgRXhhbXBsZSA2OgpNZWRpY2F0aW9uRGlzcGVuc2UgNSBtbCAzeC9kYXkgICMxNTAgbWwvMCoKKiBkb3NhZ2UgPSA1IG1sCiogZnJlcXVlbmN5ID0gM3ggL2RheSAoaS5lLiwgcmVwZWF0cyAvIHBlcmlvZCA9IGRheSkKKiBzdXBwbHkgPSAxNTAgbWwKKiBkYXlzU3VwcGxpZWQgPSAxMAoqIHJlZmlsbHMgPSBuL2EKCiogQ01EIGNhbGN1bGF0ZWQgZm9yIOKAnE1lZGljYXRpb24sIERpc3BlbnNlZOKAnSBkb2VzIG5vdCB1c2UgdGhlIG51bWJlciBvZiByZWZpbGxzOyByYXRoZXIsIHRoZSBkYXlzIGNvdmVyZWQgYnkgZWFjaCBkaXNwZW5zaW5nIGV2ZW50IG11c3QgYmUgcmV0cmlldmVkIGFuZCBhZGRlZC4KKi8KCmRlZmluZSBQcmVzY3JpcHRpb25zOiA8L2E6cz4KICAgICAgICAgICAgICAgPGE6cyByPSIyMTkiPgogICAgICAgICAgICAgICAgICA8YTpzPltNZWRpY2F0aW9uUmVxdWVzdF08L2E6cz4KICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgIDwvYTpzPgogICAgICAgICA8L2Fubm90YXRpb24+CiAgICAgICAgIDxleHByZXNzaW9uIGxvY2FsSWQ9IjIxOSIgbG9jYXRvcj0iMTE0OjIzLTExNDo0MSIgZGF0YVR5cGU9ImZoaXI6TWVkaWNhdGlvblJlcXVlc3QiIHRlbXBsYXRlSWQ9Imh0dHA6Ly9obDcub3JnL2ZoaXIvU3RydWN0dXJlRGVmaW5pdGlvbi9NZWRpY2F0aW9uUmVxdWVzdCIgeHNpOnR5cGU9IlJldHJpZXZlIi8+CiAgICAgIDwvZGVmPgogICAgICA8ZGVmIGxvY2FsSWQ9IjIyMiIgbG9jYXRvcj0iMTE1OjEtMTE1OjM4IiBuYW1lPSJEaXNwZW5zZXMiIGNvbnRleHQ9IlBhdGllbnQiIGFjY2Vzc0xldmVsPSJQdWJsaWMiPgogICAgICAgICA8YW5ub3RhdGlvbiB4c2k6dHlwZT0iYTpBbm5vdGF0aW9uIj4KICAgICAgICAgICAgPGE6cyByPSIyMjIiPgogICAgICAgICAgICAgICA8YTpzPmRlZmluZSBEaXNwZW5zZXM6IDwvYTpzPgogICAgICAgICAgICAgICA8YTpzIHI9IjIyMyI+CiAgICAgICAgICAgICAgICAgIDxhOnM+W01lZGljYXRpb25EaXNwZW5zZV08L2E6cz4KICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgIDwvYTpzPgogICAgICAgICA8L2Fubm90YXRpb24+CiAgICAgICAgIDxleHByZXNzaW9uIGxvY2FsSWQ9IjIyMyIgbG9jYXRvcj0iMTE1OjE5LTExNTozOCIgZGF0YVR5cGU9ImZoaXI6TWVkaWNhdGlvbkRpc3BlbnNlIiB0ZW1wbGF0ZUlkPSJodHRwOi8vaGw3Lm9yZy9maGlyL1N0cnVjdHVyZURlZmluaXRpb24vTWVkaWNhdGlvbkRpc3BlbnNlIiB4c2k6dHlwZT0iUmV0cmlldmUiLz4KICAgICAgPC9kZWY+CiAgICAgIDxkZWYgbG9jYWxJZD0iMjI2IiBsb2NhdG9yPSIxMTc6MS0xMTk6NDEiIG5hbWU9IlByZXNjcmlwdGlvblBlcmlvZHMiIGNvbnRleHQ9IlBhdGllbnQiIGFjY2Vzc0xldmVsPSJQdWJsaWMiPgogICAgICAgICA8YW5ub3RhdGlvbiB4c2k6dHlwZT0iYTpBbm5vdGF0aW9uIj4KICAgICAgICAgICAgPGE6cyByPSIyMjYiPgogICAgICAgICAgICAgICA8YTpzPmRlZmluZSBQcmVzY3JpcHRpb25QZXJpb2RzOgogIDwvYTpzPgogICAgICAgICAgICAgICA8YTpzIHI9IjIzNSI+CiAgICAgICAgICAgICAgICAgIDxhOnM+CiAgICAgICAgICAgICAgICAgICAgIDxhOnMgcj0iMjI3Ij4KICAgICAgICAgICAgICAgICAgICAgICAgPGE6cyByPSIyMjgiPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8YTpzPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YTpzPlByZXNjcmlwdGlvbnM8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICAgICAgICAgICA8YTpzPiBQPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgICAgPGE6cz4KICAgIDwvYTpzPgogICAgICAgICAgICAgICAgICA8YTpzIHI9IjIzMCI+CiAgICAgICAgICAgICAgICAgICAgIDxhOnM+cmV0dXJuIDwvYTpzPgogICAgICAgICAgICAgICAgICAgICA8YTpzIHI9IjIzMyI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxhOnMgcj0iMjMxIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPGE6cz5DTUQ8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgICAgIDxhOnM+LjwvYTpzPgogICAgICAgICAgICAgICAgICAgICAgICA8YTpzIHI9IjIzMyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhOnM+TWVkaWNhdGlvblJlcXVlc3RQZXJpb2QoPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhOnMgcj0iMjMyIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGE6cz5QPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8YTpzPik8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgIDwvYTpzPgogICAgICAgICA8L2Fubm90YXRpb24+CiAgICAgICAgIDxleHByZXNzaW9uIGxvY2FsSWQ9IjIzNSIgbG9jYXRvcj0iMTE4OjMtMTE5OjQxIiB4c2k6dHlwZT0iUXVlcnkiPgogICAgICAgICAgICA8c291cmNlIGxvY2FsSWQ9IjIyNyIgbG9jYXRvcj0iMTE4OjMtMTE4OjE3IiBhbGlhcz0iUCI+CiAgICAgICAgICAgICAgIDxleHByZXNzaW9uIGxvY2FsSWQ9IjIyOCIgbG9jYXRvcj0iMTE4OjMtMTE4OjE1IiBuYW1lPSJQcmVzY3JpcHRpb25zIiB4c2k6dHlwZT0iRXhwcmVzc2lvblJlZiIvPgogICAgICAgICAgICA8L3NvdXJjZT4KICAgICAgICAgICAgPHJldHVybiBsb2NhbElkPSIyMzAiIGxvY2F0b3I9IjExOTo1LTExOTo0MSI+CiAgICAgICAgICAgICAgIDxleHByZXNzaW9uIGxvY2FsSWQ9IjIzMyIgbG9jYXRvcj0iMTE5OjEyLTExOTo0MSIgbmFtZT0iTWVkaWNhdGlvblJlcXVlc3RQZXJpb2QiIGxpYnJhcnlOYW1lPSJDTUQiIHhzaTp0eXBlPSJGdW5jdGlvblJlZiI+CiAgICAgICAgICAgICAgICAgIDxzaWduYXR1cmUgbG9jYWxJZD0iMjM0IiBuYW1lPSJmaGlyOk1lZGljYXRpb25SZXF1ZXN0IiB4c2k6dHlwZT0iTmFtZWRUeXBlU3BlY2lmaWVyIi8+CiAgICAgICAgICAgICAgICAgIDxvcGVyYW5kIGxvY2FsSWQ9IjIzMiIgbG9jYXRvcj0iMTE5OjQwIiBuYW1lPSJQIiB4c2k6dHlwZT0iQWxpYXNSZWYiLz4KICAgICAgICAgICAgICAgPC9leHByZXNzaW9uPgogICAgICAgICAgICA8L3JldHVybj4KICAgICAgICAgPC9leHByZXNzaW9uPgogICAgICA8L2RlZj4KICAgICAgPGRlZiBsb2NhbElkPSIyMzgiIGxvY2F0b3I9IjEyMToxLTEyMzo0MiIgbmFtZT0iRGlzcGVuc2VQZXJpb2RzIiBjb250ZXh0PSJQYXRpZW50IiBhY2Nlc3NMZXZlbD0iUHVibGljIj4KICAgICAgICAgPGFubm90YXRpb24geHNpOnR5cGU9ImE6QW5ub3RhdGlvbiI+CiAgICAgICAgICAgIDxhOnMgcj0iMjM4Ij4KICAgICAgICAgICAgICAgPGE6cz5kZWZpbmUgRGlzcGVuc2VQZXJpb2RzOgogIDwvYTpzPgogICAgICAgICAgICAgICA8YTpzIHI9IjI0NyI+CiAgICAgICAgICAgICAgICAgIDxhOnM+CiAgICAgICAgICAgICAgICAgICAgIDxhOnMgcj0iMjM5Ij4KICAgICAgICAgICAgICAgICAgICAgICAgPGE6cyByPSIyNDAiPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8YTpzPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YTpzPkRpc3BlbnNlczwvYTpzPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgICAgIDxhOnM+IEQ8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICAgICA8YTpzPgogICAgPC9hOnM+CiAgICAgICAgICAgICAgICAgIDxhOnMgcj0iMjQyIj4KICAgICAgICAgICAgICAgICAgICAgPGE6cz5yZXR1cm4gPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgIDxhOnMgcj0iMjQ1Ij4KICAgICAgICAgICAgICAgICAgICAgICAgPGE6cyByPSIyNDMiPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8YTpzPkNNRDwvYTpzPgogICAgICAgICAgICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgPGE6cz4uPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgICAgIDxhOnMgcj0iMjQ1Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPGE6cz5NZWRpY2F0aW9uRGlzcGVuc2VQZXJpb2QoPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhOnMgcj0iMjQ0Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGE6cz5EPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8YTpzPik8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgIDwvYTpzPgogICAgICAgICA8L2Fubm90YXRpb24+CiAgICAgICAgIDxleHByZXNzaW9uIGxvY2FsSWQ9IjI0NyIgbG9jYXRvcj0iMTIyOjMtMTIzOjQyIiB4c2k6dHlwZT0iUXVlcnkiPgogICAgICAgICAgICA8c291cmNlIGxvY2FsSWQ9IjIzOSIgbG9jYXRvcj0iMTIyOjMtMTIyOjEzIiBhbGlhcz0iRCI+CiAgICAgICAgICAgICAgIDxleHByZXNzaW9uIGxvY2FsSWQ9IjI0MCIgbG9jYXRvcj0iMTIyOjMtMTIyOjExIiBuYW1lPSJEaXNwZW5zZXMiIHhzaTp0eXBlPSJFeHByZXNzaW9uUmVmIi8+CiAgICAgICAgICAgIDwvc291cmNlPgogICAgICAgICAgICA8cmV0dXJuIGxvY2FsSWQ9IjI0MiIgbG9jYXRvcj0iMTIzOjUtMTIzOjQyIj4KICAgICAgICAgICAgICAgPGV4cHJlc3Npb24gbG9jYWxJZD0iMjQ1IiBsb2NhdG9yPSIxMjM6MTItMTIzOjQyIiBuYW1lPSJNZWRpY2F0aW9uRGlzcGVuc2VQZXJpb2QiIGxpYnJhcnlOYW1lPSJDTUQiIHhzaTp0eXBlPSJGdW5jdGlvblJlZiI+CiAgICAgICAgICAgICAgICAgIDxzaWduYXR1cmUgbG9jYWxJZD0iMjQ2IiBuYW1lPSJmaGlyOk1lZGljYXRpb25EaXNwZW5zZSIgeHNpOnR5cGU9Ik5hbWVkVHlwZVNwZWNpZmllciIvPgogICAgICAgICAgICAgICAgICA8b3BlcmFuZCBsb2NhbElkPSIyNDQiIGxvY2F0b3I9IjEyMzo0MSIgbmFtZT0iRCIgeHNpOnR5cGU9IkFsaWFzUmVmIi8+CiAgICAgICAgICAgICAgIDwvZXhwcmVzc2lvbj4KICAgICAgICAgICAgPC9yZXR1cm4+CiAgICAgICAgIDwvZXhwcmVzc2lvbj4KICAgICAgPC9kZWY+CiAgICAgIDxkZWYgbG9jYWxJZD0iMjUwIiBsb2NhdG9yPSIxMjU6MS0xMjY6NjciIG5hbWU9IkN1bXVsYXRpdmVEdXJhdGlvbiIgY29udGV4dD0iUGF0aWVudCIgYWNjZXNzTGV2ZWw9IlB1YmxpYyI+CiAgICAgICAgIDxhbm5vdGF0aW9uIHhzaTp0eXBlPSJhOkFubm90YXRpb24iPgogICAgICAgICAgICA8YTpzIHI9IjI1MCI+CiAgICAgICAgICAgICAgIDxhOnM+ZGVmaW5lIEN1bXVsYXRpdmVEdXJhdGlvbjoKICA8L2E6cz4KICAgICAgICAgICAgICAgPGE6cyByPSIyNjEiPgogICAgICAgICAgICAgICAgICA8YTpzIHI9IjI1MSI+CiAgICAgICAgICAgICAgICAgICAgIDxhOnM+Q01EPC9hOnM+CiAgICAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICAgICA8YTpzPi48L2E6cz4KICAgICAgICAgICAgICAgICAgPGE6cyByPSIyNjEiPgogICAgICAgICAgICAgICAgICAgICA8YTpzPkN1bXVsYXRpdmVEdXJhdGlvbig8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgPGE6cyByPSIyNTQiPgogICAgICAgICAgICAgICAgICAgICAgICA8YTpzIHI9IjI1MiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhOnM+UHJlc2NyaXB0aW9uUGVyaW9kczwvYTpzPgogICAgICAgICAgICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgPGE6cz4gdW5pb24gPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgICAgIDxhOnMgcj0iMjUzIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPGE6cz5EaXNwZW5zZVBlcmlvZHM8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICAgICAgICA8YTpzPik8L2E6cz4KICAgICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICA8L2E6cz4KICAgICAgICAgPC9hbm5vdGF0aW9uPgogICAgICAgICA8ZXhwcmVzc2lvbiBsb2NhbElkPSIyNjEiIGxvY2F0b3I9IjEyNjozLTEyNjo2NyIgbmFtZT0iQ3VtdWxhdGl2ZUR1cmF0aW9uIiBsaWJyYXJ5TmFtZT0iQ01EIiB4c2k6dHlwZT0iRnVuY3Rpb25SZWYiPgogICAgICAgICAgICA8c2lnbmF0dXJlIGxvY2FsSWQ9IjI2MiIgeHNpOnR5cGU9Ikxpc3RUeXBlU3BlY2lmaWVyIj4KICAgICAgICAgICAgICAgPGVsZW1lbnRUeXBlIGxvY2FsSWQ9IjI2MyIgeHNpOnR5cGU9IkludGVydmFsVHlwZVNwZWNpZmllciI+CiAgICAgICAgICAgICAgICAgIDxwb2ludFR5cGUgbG9jYWxJZD0iMjY0IiBuYW1lPSJ0OkRhdGUiIHhzaTp0eXBlPSJOYW1lZFR5cGVTcGVjaWZpZXIiLz4KICAgICAgICAgICAgICAgPC9lbGVtZW50VHlwZT4KICAgICAgICAgICAgPC9zaWduYXR1cmU+CiAgICAgICAgICAgIDxvcGVyYW5kIGxvY2FsSWQ9IjI1NCIgbG9jYXRvcj0iMTI2OjI2LTEyNjo2NiIgeHNpOnR5cGU9IlVuaW9uIj4KICAgICAgICAgICAgICAgPHNpZ25hdHVyZSBsb2NhbElkPSIyNTUiIHhzaTp0eXBlPSJMaXN0VHlwZVNwZWNpZmllciI+CiAgICAgICAgICAgICAgICAgIDxlbGVtZW50VHlwZSBsb2NhbElkPSIyNTYiIHhzaTp0eXBlPSJJbnRlcnZhbFR5cGVTcGVjaWZpZXIiPgogICAgICAgICAgICAgICAgICAgICA8cG9pbnRUeXBlIGxvY2FsSWQ9IjI1NyIgbmFtZT0idDpEYXRlIiB4c2k6dHlwZT0iTmFtZWRUeXBlU3BlY2lmaWVyIi8+CiAgICAgICAgICAgICAgICAgIDwvZWxlbWVudFR5cGU+CiAgICAgICAgICAgICAgIDwvc2lnbmF0dXJlPgogICAgICAgICAgICAgICA8c2lnbmF0dXJlIGxvY2FsSWQ9IjI1OCIgeHNpOnR5cGU9Ikxpc3RUeXBlU3BlY2lmaWVyIj4KICAgICAgICAgICAgICAgICAgPGVsZW1lbnRUeXBlIGxvY2FsSWQ9IjI1OSIgeHNpOnR5cGU9IkludGVydmFsVHlwZVNwZWNpZmllciI+CiAgICAgICAgICAgICAgICAgICAgIDxwb2ludFR5cGUgbG9jYWxJZD0iMjYwIiBuYW1lPSJ0OkRhdGUiIHhzaTp0eXBlPSJOYW1lZFR5cGVTcGVjaWZpZXIiLz4KICAgICAgICAgICAgICAgICAgPC9lbGVtZW50VHlwZT4KICAgICAgICAgICAgICAgPC9zaWduYXR1cmU+CiAgICAgICAgICAgICAgIDxvcGVyYW5kIGxvY2FsSWQ9IjI1MiIgbG9jYXRvcj0iMTI2OjI2LTEyNjo0NCIgbmFtZT0iUHJlc2NyaXB0aW9uUGVyaW9kcyIgeHNpOnR5cGU9IkV4cHJlc3Npb25SZWYiLz4KICAgICAgICAgICAgICAgPG9wZXJhbmQgbG9jYWxJZD0iMjUzIiBsb2NhdG9yPSIxMjY6NTItMTI2OjY2IiBuYW1lPSJEaXNwZW5zZVBlcmlvZHMiIHhzaTp0eXBlPSJFeHByZXNzaW9uUmVmIi8+CiAgICAgICAgICAgIDwvb3BlcmFuZD4KICAgICAgICAgPC9leHByZXNzaW9uPgogICAgICA8L2RlZj4KICAgICAgPGRlZiBsb2NhbElkPSIyNjciIGxvY2F0b3I9IjEyOToxLTEzMzozIiBuYW1lPSJDdW11bGF0aXZlTWVkaWNhdGlvbkR1cmF0aW9uIiBjb250ZXh0PSJQYXRpZW50IiBhY2Nlc3NMZXZlbD0iUHVibGljIj4KICAgICAgICAgPGFubm90YXRpb24geHNpOnR5cGU9ImE6QW5ub3RhdGlvbiI+CiAgICAgICAgICAgIDxhOnMgcj0iMjY3Ij4KICAgICAgICAgICAgICAgPGE6cz4vLyBUT0RPOiBEZWJ1ZyB0aGlzCmRlZmluZSBDdW11bGF0aXZlTWVkaWNhdGlvbkR1cmF0aW9uOgogIDwvYTpzPgogICAgICAgICAgICAgICA8YTpzIHI9IjI5MCI+CiAgICAgICAgICAgICAgICAgIDxhOnMgcj0iMjY4Ij4KICAgICAgICAgICAgICAgICAgICAgPGE6cz5DTUQ8L2E6cz4KICAgICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgICAgICAgIDxhOnM+LjwvYTpzPgogICAgICAgICAgICAgICAgICA8YTpzIHI9IjI5MCI+CiAgICAgICAgICAgICAgICAgICAgIDxhOnM+Q3VtdWxhdGl2ZU1lZGljYXRpb25EdXJhdGlvbigKICAgIDwvYTpzPgogICAgICAgICAgICAgICAgICAgICA8YTpzIHI9IjI4MSI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxhOnMgcj0iMjY5Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgPGE6cz5QcmVzY3JpcHRpb25zPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvYTpzPgogICAgICAgICAgICAgICAgICAgICAgICA8YTpzPgogICAgICB1bmlvbiA8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgICAgPGE6cyByPSIyNzAiPgogICAgICAgICAgICAgICAgICAgICAgICAgICA8YTpzPkRpc3BlbnNlczwvYTpzPgogICAgICAgICAgICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgICAgICAgICAgIDxhOnM+CiAgKTwvYTpzPgogICAgICAgICAgICAgICAgICA8L2E6cz4KICAgICAgICAgICAgICAgPC9hOnM+CiAgICAgICAgICAgIDwvYTpzPgogICAgICAgICA8L2Fubm90YXRpb24+CiAgICAgICAgIDxleHByZXNzaW9uIGxvY2FsSWQ9IjI5MCIgbG9jYXRvcj0iMTMwOjMtMTMzOjMiIG5hbWU9IkN1bXVsYXRpdmVNZWRpY2F0aW9uRHVyYXRpb24iIGxpYnJhcnlOYW1lPSJDTUQiIHhzaTp0eXBlPSJGdW5jdGlvblJlZiI+CiAgICAgICAgICAgIDxzaWduYXR1cmUgbG9jYWxJZD0iMjkxIiB4c2k6dHlwZT0iTGlzdFR5cGVTcGVjaWZpZXIiPgogICAgICAgICAgICAgICA8ZWxlbWVudFR5cGUgbG9jYWxJZD0iMjkyIiB4c2k6dHlwZT0iQ2hvaWNlVHlwZVNwZWNpZmllciI+CiAgICAgICAgICAgICAgICAgIDxjaG9pY2UgbG9jYWxJZD0iMjkzIiBuYW1lPSJmaGlyOk1lZGljYXRpb25SZXF1ZXN0IiB4c2k6dHlwZT0iTmFtZWRUeXBlU3BlY2lmaWVyIi8+CiAgICAgICAgICAgICAgICAgIDxjaG9pY2UgbG9jYWxJZD0iMjk0IiBuYW1lPSJmaGlyOk1lZGljYXRpb25EaXNwZW5zZSIgeHNpOnR5cGU9Ik5hbWVkVHlwZVNwZWNpZmllciIvPgogICAgICAgICAgICAgICA8L2VsZW1lbnRUeXBlPgogICAgICAgICAgICA8L3NpZ25hdHVyZT4KICAgICAgICAgICAgPG9wZXJhbmQgbG9jYWxJZD0iMjgxIiBsb2NhdG9yPSIxMzE6NS0xMzI6MjEiIHhzaTp0eXBlPSJVbmlvbiI+CiAgICAgICAgICAgICAgIDxzaWduYXR1cmUgbG9jYWxJZD0iMjgyIiB4c2k6dHlwZT0iTGlzdFR5cGVTcGVjaWZpZXIiPgogICAgICAgICAgICAgICAgICA8ZWxlbWVudFR5cGUgbG9jYWxJZD0iMjgzIiB4c2k6dHlwZT0iQ2hvaWNlVHlwZVNwZWNpZmllciI+CiAgICAgICAgICAgICAgICAgICAgIDxjaG9pY2UgbG9jYWxJZD0iMjg0IiBuYW1lPSJmaGlyOk1lZGljYXRpb25SZXF1ZXN0IiB4c2k6dHlwZT0iTmFtZWRUeXBlU3BlY2lmaWVyIi8+CiAgICAgICAgICAgICAgICAgICAgIDxjaG9pY2UgbG9jYWxJZD0iMjg1IiBuYW1lPSJmaGlyOk1lZGljYXRpb25EaXNwZW5zZSIgeHNpOnR5cGU9Ik5hbWVkVHlwZVNwZWNpZmllciIvPgogICAgICAgICAgICAgICAgICA8L2VsZW1lbnRUeXBlPgogICAgICAgICAgICAgICA8L3NpZ25hdHVyZT4KICAgICAgICAgICAgICAgPHNpZ25hdHVyZSBsb2NhbElkPSIyODYiIHhzaTp0eXBlPSJMaXN0VHlwZVNwZWNpZmllciI+CiAgICAgICAgICAgICAgICAgIDxlbGVtZW50VHlwZSBsb2NhbElkPSIyODciIHhzaTp0eXBlPSJDaG9pY2VUeXBlU3BlY2lmaWVyIj4KICAgICAgICAgICAgICAgICAgICAgPGNob2ljZSBsb2NhbElkPSIyODgiIG5hbWU9ImZoaXI6TWVkaWNhdGlvblJlcXVlc3QiIHhzaTp0eXBlPSJOYW1lZFR5cGVTcGVjaWZpZXIiLz4KICAgICAgICAgICAgICAgICAgICAgPGNob2ljZSBsb2NhbElkPSIyODkiIG5hbWU9ImZoaXI6TWVkaWNhdGlvbkRpc3BlbnNlIiB4c2k6dHlwZT0iTmFtZWRUeXBlU3BlY2lmaWVyIi8+CiAgICAgICAgICAgICAgICAgIDwvZWxlbWVudFR5cGU+CiAgICAgICAgICAgICAgIDwvc2lnbmF0dXJlPgogICAgICAgICAgICAgICA8b3BlcmFuZCBsb2NhbElkPSIyNzEiIHhzaTp0eXBlPSJBcyI+CiAgICAgICAgICAgICAgICAgIDxvcGVyYW5kIGxvY2FsSWQ9IjI2OSIgbG9jYXRvcj0iMTMxOjUtMTMxOjE3IiBuYW1lPSJQcmVzY3JpcHRpb25zIiB4c2k6dHlwZT0iRXhwcmVzc2lvblJlZiIvPgogICAgICAgICAgICAgICAgICA8YXNUeXBlU3BlY2lmaWVyIGxvY2FsSWQ9IjI3MiIgeHNpOnR5cGU9Ikxpc3RUeXBlU3BlY2lmaWVyIj4KICAgICAgICAgICAgICAgICAgICAgPGVsZW1lbnRUeXBlIGxvY2FsSWQ9IjI3MyIgeHNpOnR5cGU9IkNob2ljZVR5cGVTcGVjaWZpZXIiPgogICAgICAgICAgICAgICAgICAgICAgICA8Y2hvaWNlIGxvY2FsSWQ9IjI3NCIgbmFtZT0iZmhpcjpNZWRpY2F0aW9uUmVxdWVzdCIgeHNpOnR5cGU9Ik5hbWVkVHlwZVNwZWNpZmllciIvPgogICAgICAgICAgICAgICAgICAgICAgICA8Y2hvaWNlIGxvY2FsSWQ9IjI3NSIgbmFtZT0iZmhpcjpNZWRpY2F0aW9uRGlzcGVuc2UiIHhzaTp0eXBlPSJOYW1lZFR5cGVTcGVjaWZpZXIiLz4KICAgICAgICAgICAgICAgICAgICAgPC9lbGVtZW50VHlwZT4KICAgICAgICAgICAgICAgICAgPC9hc1R5cGVTcGVjaWZpZXI+CiAgICAgICAgICAgICAgIDwvb3BlcmFuZD4KICAgICAgICAgICAgICAgPG9wZXJhbmQgbG9jYWxJZD0iMjc2IiB4c2k6dHlwZT0iQXMiPgogICAgICAgICAgICAgICAgICA8b3BlcmFuZCBsb2NhbElkPSIyNzAiIGxvY2F0b3I9IjEzMjoxMy0xMzI6MjEiIG5hbWU9IkRpc3BlbnNlcyIgeHNpOnR5cGU9IkV4cHJlc3Npb25SZWYiLz4KICAgICAgICAgICAgICAgICAgPGFzVHlwZVNwZWNpZmllciBsb2NhbElkPSIyNzciIHhzaTp0eXBlPSJMaXN0VHlwZVNwZWNpZmllciI+CiAgICAgICAgICAgICAgICAgICAgIDxlbGVtZW50VHlwZSBsb2NhbElkPSIyNzgiIHhzaTp0eXBlPSJDaG9pY2VUeXBlU3BlY2lmaWVyIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGNob2ljZSBsb2NhbElkPSIyNzkiIG5hbWU9ImZoaXI6TWVkaWNhdGlvblJlcXVlc3QiIHhzaTp0eXBlPSJOYW1lZFR5cGVTcGVjaWZpZXIiLz4KICAgICAgICAgICAgICAgICAgICAgICAgPGNob2ljZSBsb2NhbElkPSIyODAiIG5hbWU9ImZoaXI6TWVkaWNhdGlvbkRpc3BlbnNlIiB4c2k6dHlwZT0iTmFtZWRUeXBlU3BlY2lmaWVyIi8+CiAgICAgICAgICAgICAgICAgICAgIDwvZWxlbWVudFR5cGU+CiAgICAgICAgICAgICAgICAgIDwvYXNUeXBlU3BlY2lmaWVyPgogICAgICAgICAgICAgICA8L29wZXJhbmQ+CiAgICAgICAgICAgIDwvb3BlcmFuZD4KICAgICAgICAgPC9leHByZXNzaW9uPgogICAgICA8L2RlZj4KICAgPC9zdGF0ZW1lbnRzPgo8L2xpYnJhcnk+Cg=="/>
</content>
<content>
<contentType value="application/elm+json"/>
<data
value="ewogICAibGlicmFyeSIgOiB7CiAgICAgICJsb2NhbElkIiA6ICIwIiwKICAgICAgImFubm90YXRpb24iIDogWyB7CiAgICAgICAgICJ0cmFuc2xhdG9yT3B0aW9ucyIgOiAiRW5hYmxlQW5ub3RhdGlvbnMsRW5hYmxlTG9jYXRvcnMsRGlzYWJsZUxpc3REZW1vdGlvbixEaXNhYmxlTGlzdFByb21vdGlvbiIsCiAgICAgICAgICJzaWduYXR1cmVMZXZlbCIgOiAiQWxsIiwKICAgICAgICAgInR5cGUiIDogIkNxbFRvRWxtSW5mbyIKICAgICAgfSwgewogICAgICAgICAidHlwZSIgOiAiQW5ub3RhdGlvbiIsCiAgICAgICAgICJzIiA6IHsKICAgICAgICAgICAgInIiIDogIjI2NyIsCiAgICAgICAgICAgICJzIiA6IFsgewogICAgICAgICAgICAgICAidmFsdWUiIDogWyAiIiwibGlicmFyeSBDdW11bGF0aXZlTWVkaWNhdGlvbkR1cmF0aW9uVGVzdHMgdmVyc2lvbiAnMi4wLjAtY2lidWlsZCciIF0KICAgICAgICAgICAgfSBdCiAgICAgICAgIH0KICAgICAgfSBdLAogICAgICAiaWRlbnRpZmllciIgOiB7CiAgICAgICAgICJpZCIgOiAiQ3VtdWxhdGl2ZU1lZGljYXRpb25EdXJhdGlvblRlc3RzIiwKICAgICAgICAgInN5c3RlbSIgOiAiaHR0cDovL2hsNy5vcmcvZmhpci91cy9jcWwiLAogICAgICAgICAidmVyc2lvbiIgOiAiMi4wLjAtY2lidWlsZCIKICAgICAgfSwKICAgICAgInNjaGVtYUlkZW50aWZpZXIiIDogewogICAgICAgICAiaWQiIDogInVybjpobDctb3JnOmVsbSIsCiAgICAgICAgICJ2ZXJzaW9uIiA6ICJyMSIKICAgICAgfSwKICAgICAgInVzaW5ncyIgOiB7CiAgICAgICAgICJkZWYiIDogWyB7CiAgICAgICAgICAgICJsb2NhbElkIiA6ICIxIiwKICAgICAgICAgICAgImxvY2FsSWRlbnRpZmllciIgOiAiU3lzdGVtIiwKICAgICAgICAgICAgInVyaSIgOiAidXJuOmhsNy1vcmc6ZWxtLXR5cGVzOnIxIiwKICAgICAgICAgICAgInZlcnNpb24iIDogIjEuMC4wIgogICAgICAgICB9LCB7CiAgICAgICAgICAgICJsb2NhbElkIiA6ICIyMDYiLAogICAgICAgICAgICAibG9jYXRvciIgOiAiMzoxLTM6MjYiLAogICAgICAgICAgICAibG9jYWxJZGVudGlmaWVyIiA6ICJGSElSIiwKICAgICAgICAgICAgInVyaSIgOiAiaHR0cDovL2hsNy5vcmcvZmhpciIsCiAgICAgICAgICAgICJ2ZXJzaW9uIiA6ICI0LjAuMSIsCiAgICAgICAgICAgICJhbm5vdGF0aW9uIiA6IFsgewogICAgICAgICAgICAgICAidHlwZSIgOiAiQW5ub3RhdGlvbiIsCiAgICAgICAgICAgICAgICJzIiA6IHsKICAgICAgICAgICAgICAgICAgInIiIDogIjIwNiIsCiAgICAgICAgICAgICAgICAgICJzIiA6IFsgewogICAgICAgICAgICAgICAgICAgICAidmFsdWUiIDogWyAiIiwidXNpbmcgIiBdCiAgICAgICAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICAgICAgInMiIDogWyB7CiAgICAgICAgICAgICAgICAgICAgICAgICJ2YWx1ZSIgOiBbICJGSElSIiBdCiAgICAgICAgICAgICAgICAgICAgIH0gXQogICAgICAgICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAgICAgICJ2YWx1ZSIgOiBbICIgdmVyc2lvbiAnNC4wLjEnIiBdCiAgICAgICAgICAgICAgICAgIH0gXQogICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0gXQogICAgICAgICB9IF0KICAgICAgfSwKICAgICAgImluY2x1ZGVzIiA6IHsKICAgICAgICAgImRlZiIgOiBbIHsKICAgICAgICAgICAgImxvY2FsSWQiIDogIjIwOCIsCiAgICAgICAgICAgICJsb2NhdG9yIiA6ICI1OjEtNTo1MSIsCiAgICAgICAgICAgICJsb2NhbElkZW50aWZpZXIiIDogIkZISVJIZWxwZXJzIiwKICAgICAgICAgICAgInBhdGgiIDogImh0dHA6Ly9obDcub3JnL2ZoaXIvdXYvY3FsL0ZISVJIZWxwZXJzIiwKICAgICAgICAgICAgInZlcnNpb24iIDogIjQuMC4xIiwKICAgICAgICAgICAgImFubm90YXRpb24iIDogWyB7CiAgICAgICAgICAgICAgICJ0eXBlIiA6ICJBbm5vdGF0aW9uIiwKICAgICAgICAgICAgICAgInMiIDogewogICAgICAgICAgICAgICAgICAiciIgOiAiMjA4IiwKICAgICAgICAgICAgICAgICAgInMiIDogWyB7CiAgICAgICAgICAgICAgICAgICAgICJ2YWx1ZSIgOiBbICIiLCJpbmNsdWRlICIgXQogICAgICAgICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAgICAgICJzIiA6IFsgewogICAgICAgICAgICAgICAgICAgICAgICAidmFsdWUiIDogWyAiaGw3IiwiLiIsImZoaXIiLCIuIiwidXYiLCIuIiwiY3FsIiwiLiIsIkZISVJIZWxwZXJzIiBdCiAgICAgICAgICAgICAgICAgICAgIH0gXQogICAgICAgICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAgICAgICJ2YWx1ZSIgOiBbICIgdmVyc2lvbiAiLCInNC4wLjEnIiBdCiAgICAgICAgICAgICAgICAgIH0gXQogICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0gXQogICAgICAgICB9LCB7CiAgICAgICAgICAgICJsb2NhbElkIiA6ICIyMTAiLAogICAgICAgICAgICAibG9jYXRvciIgOiAiNzoxLTc6NzEiLAogICAgICAgICAgICAibG9jYWxJZGVudGlmaWVyIiA6ICJDTUQiLAogICAgICAgICAgICAicGF0aCIgOiAiaHR0cDovL2hsNy5vcmcvZmhpci91cy9jcWwvQ3VtdWxhdGl2ZU1lZGljYXRpb25EdXJhdGlvbiIsCiAgICAgICAgICAgICJ2ZXJzaW9uIiA6ICIyLjAuMC1jaWJ1aWxkIiwKICAgICAgICAgICAgImFubm90YXRpb24iIDogWyB7CiAgICAgICAgICAgICAgICJ0eXBlIiA6ICJBbm5vdGF0aW9uIiwKICAgICAgICAgICAgICAgInMiIDogewogICAgICAgICAgICAgICAgICAiciIgOiAiMjEwIiwKICAgICAgICAgICAgICAgICAgInMiIDogWyB7CiAgICAgICAgICAgICAgICAgICAgICJ2YWx1ZSIgOiBbICIiLCJpbmNsdWRlICIgXQogICAgICAgICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAgICAgICJzIiA6IFsgewogICAgICAgICAgICAgICAgICAgICAgICAidmFsdWUiIDogWyAiQ3VtdWxhdGl2ZU1lZGljYXRpb25EdXJhdGlvbiIgXQogICAgICAgICAgICAgICAgICAgICB9IF0KICAgICAgICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgICAgICAidmFsdWUiIDogWyAiIHZlcnNpb24gIiwiJzIuMC4wLWNpYnVpbGQnIiwiIGNhbGxlZCAiLCJDTUQiIF0KICAgICAgICAgICAgICAgICAgfSBdCiAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSBdCiAgICAgICAgIH0gXQogICAgICB9LAogICAgICAiY29udGV4dHMiIDogewogICAgICAgICAiZGVmIiA6IFsgewogICAgICAgICAgICAibG9jYWxJZCIgOiAiMjE1IiwKICAgICAgICAgICAgImxvY2F0b3IiIDogIjk6MS05OjE1IiwKICAgICAgICAgICAgIm5hbWUiIDogIlBhdGllbnQiCiAgICAgICAgIH0gXQogICAgICB9LAogICAgICAic3RhdGVtZW50cyIgOiB7CiAgICAgICAgICJkZWYiIDogWyB7CiAgICAgICAgICAgICJsb2NhbElkIiA6ICIyMTMiLAogICAgICAgICAgICAibG9jYXRvciIgOiAiOToxLTk6MTUiLAogICAgICAgICAgICAibmFtZSIgOiAiUGF0aWVudCIsCiAgICAgICAgICAgICJjb250ZXh0IiA6ICJQYXRpZW50IiwKICAgICAgICAgICAgImV4cHJlc3Npb24iIDogewogICAgICAgICAgICAgICAibG9jYWxJZCIgOiAiMjE0IiwKICAgICAgICAgICAgICAgInR5cGUiIDogIlNpbmdsZXRvbkZyb20iLAogICAgICAgICAgICAgICAic2lnbmF0dXJlIiA6IFsgXSwKICAgICAgICAgICAgICAgIm9wZXJhbmQiIDogewogICAgICAgICAgICAgICAgICAibG9jYWxJZCIgOiAiMjEyIiwKICAgICAgICAgICAgICAgICAgImxvY2F0b3IiIDogIjk6MS05OjE1IiwKICAgICAgICAgICAgICAgICAgImRhdGFUeXBlIiA6ICJ7aHR0cDovL2hsNy5vcmcvZmhpcn1QYXRpZW50IiwKICAgICAgICAgICAgICAgICAgInRlbXBsYXRlSWQiIDogImh0dHA6Ly9obDcub3JnL2ZoaXIvU3RydWN0dXJlRGVmaW5pdGlvbi9QYXRpZW50IiwKICAgICAgICAgICAgICAgICAgInR5cGUiIDogIlJldHJpZXZlIiwKICAgICAgICAgICAgICAgICAgImluY2x1ZGUiIDogWyBdLAogICAgICAgICAgICAgICAgICAiY29kZUZpbHRlciIgOiBbIF0sCiAgICAgICAgICAgICAgICAgICJkYXRlRmlsdGVyIiA6IFsgXSwKICAgICAgICAgICAgICAgICAgIm90aGVyRmlsdGVyIiA6IFsgXQogICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgfSwgewogICAgICAgICAgICAibG9jYWxJZCIgOiAiMjE4IiwKICAgICAgICAgICAgImxvY2F0b3IiIDogIjExNDoxLTExNDo0MSIsCiAgICAgICAgICAgICJuYW1lIiA6ICJQcmVzY3JpcHRpb25zIiwKICAgICAgICAgICAgImNvbnRleHQiIDogIlBhdGllbnQiLAogICAgICAgICAgICAiYWNjZXNzTGV2ZWwiIDogIlB1YmxpYyIsCiAgICAgICAgICAgICJhbm5vdGF0aW9uIiA6IFsgewogICAgICAgICAgICAgICAidHlwZSIgOiAiQW5ub3RhdGlvbiIsCiAgICAgICAgICAgICAgICJzIiA6IHsKICAgICAgICAgICAgICAgICAgInIiIDogIjIxOCIsCiAgICAgICAgICAgICAgICAgICJzIiA6IFsgewogICAgICAgICAgICAgICAgICAgICAidmFsdWUiIDogWyAiLypcbiMgRXhhbXBsZSAxOlxuTWVkaWNhdGlvblJlcXVlc3QgMiB0YWJzIDN4L2RheSAgICMxODAvMlxuKiBkb3NhZ2UgPSAyXG4qIGZyZXF1ZW5jeSA9IDN4IC9kYXkgKGkuZS4sIHJlcGVhdHMgLyBwZXJpb2QgPSBkYXkpXG4qIHN1cHBseSA9IDE4MFxuKiBkYXlzU3VwcGxpZWQgPSAzMCBkYXlzXG4qIHJlZmlsbHMgPSAyXG5cbmRlcml2ZWQgZGF5c1N1cHBsaWVkID0gW3N1cHBseSAoMTgwKSAvICgoZG9zYWdlICgyKSB4IGZyZXF1ZW5jeSAoMykpXSA9IDMwXG5kYXlzU3VwcGxpZWRXaXRoUmVmaWxscyA9IFtzdXBwbHkgKDE4MCkgeCAoMSArIHJlZmlsbHMgKDIpKSAvICgoZG9zYWdlICgyKSB4IGZyZXF1ZW5jeSAoMykpXSA9IDMwIHggMyA9IDkwIGRheXNcbiovXG5cbi8qXG4jIyBFeGFtcGxlIDFhIC0gYm91bmRzUGVyaW9kIHNwZWNpZmllZFxuXG4jIyBFeGFtcGxlIDFiIC0gZXhwZWN0ZWRTdXBwbHlEdXJhdGlvbiBzcGVjaWZpZWRcblxuIyMgRXhhbXBsZSAxYyAtIENhbGN1bGF0ZWQgZnJvbSBkb3NpbmcgaW5mb3JtYXRpb25cbiovXG5cbi8qXG4jIEV4YW1wbGUgMjpcbk1lZGljYXRpb25EaXNwZW5zZSAyIHRhYnMgM3gvZGF5ICMxODAvMipcbiogZG9zYWdlID0gMlxuKiBmcmVxdWVuY3kgPSAzeCAvZGF5IChpLmUuLCByZXBlYXRzIC8gcGVyaW9kID0gZGF5KVxuKiBzdXBwbHkgPSAxODBcbiogZGF5c1N1cHBsaWVkID0gMzAgZGF5c1xuKiByZWZpbGxzID0gbi9hXG5cbmRlcml2ZWQgZGF5c1N1cHBsaWVkID0gW3N1cHBseSAoMTgwKSAvICgoZG9zYWdlICgyKSB4IGZyZXF1ZW5jeSAoMykpXSA9IDMwXG4qL1xuXG4vKlxuIyMgRXhhbXBsZSAyYSAtIGRheXNTdXBwbHkgU3BlY2lmaWVkXG5cbiMjIEV4YW1wbGUgMmIgLSBDYWxjdWxhdGVkIGZyb20gZG9zaW5nIGluZm9ybWF0aW9uXG4qL1xuXG4vKlxuIyBFeGFtcGxlIDM6XG5NZWRpY2F0aW9uUmVxdWVzdCDCvSB0YWIgMngvZGF5ICMzMC8yXG4qIGRvc2FnZSA9IDEvMlxuKiBmcmVxdWVuY3kgPSAyeCAvZGF5IChpLmUuLCByZXBlYXRzIC8gcGVyaW9kID0gZGF5KVxuKiBzdXBwbHkgPSAzMFxuKiBkYXlzU3VwcGxpZWQgPSAzMFxuKiByZWZpbGxzID0gMlxuXG5kZXJpdmVkIGRheXNTdXBwbGllZCA9IFtzdXBwbHkgKDMwKSAvICgoZG9zYWdlICgxLzIpIHggZnJlcXVlbmN5ICgyKSldID0gMzBcbmRheXNTdXBwbGllZFdpdGhSZWZpbGxzID0gW3N1cHBseSAoMzApIHggKDEgKyByZWZpbGxzICgyKSkgLyAoKGRvc2FnZSAoMS8yKSB4IGZyZXF1ZW5jeSAoMikgPSAzMCB4IDMgPSA5MCBkYXlzXG4qL1xuXG4vKlxuIyMgRXhhbXBsZSAzYSAtIGJvdW5kc1BlcmlvZCBzcGVjaWZpZWRcblxuIyMgRXhhbXBsZSAzYiAtIGV4cGVjdGVkU3VwcGx5RHVyYXRpb24gc3BlY2lmaWVkXG5cbiMjIEV4YW1wbGUgM2MgLSBDYWxjdWxhdGVkIGZyb20gZG9zaW5nIGluZm9ybWF0aW9uXG4qL1xuXG4vKjRcbiMgRXhhbXBsZSA0OlxuTWVkaWNhdGlvbkRpc3BlbnNlIMK9IHRhYiAyeC9kYXkgIzMwLzIqXG4qIGRvc2FnZSA9IDEvMlxuKiBmcmVxdWVuY3kgPSAyeCAvZGF5IChpLmUuLCByZXBlYXRzIC8gcGVyaW9kID0gZGF5KVxuKiBzdXBwbHkgPSAzMFxuKiBkYXlzU3VwcGxpZWQgPSAzMFxuKiByZWZpbGxzID0gbi9hXG5cbmRlcml2ZWQgZGF5c1N1cHBsaWVkID0gW3N1cHBseSAoMzApIC8gKChkb3NhZ2UgKDEvMikgeCBmcmVxdWVuY3kgKDIpKV0gPSAzMFxuKi9cblxuLypcbiMjIEV4YW1wbGUgNGEgLSBkYXlzU3VwcGx5IFNwZWNpZmllZFxuXG4jIyBFeGFtcGxlIDRiIC0gQ2FsY3VsYXRlZCBmcm9tIGRvc2luZyBpbmZvcm1hdGlvblxuKi9cblxuLypcbiMgRXhhbXBsZSA1OlxuTWVkaWNhdGlvblJlcXVlc3QgNSBtbCAzeC9kYXkgICMxNTAgbWwvMFxuKiBkb3NhZ2UgPSA1IG1sXG4qIGZyZXF1ZW5jeSA9IDN4IC9kYXkgKGkuZS4sIHJlcGVhdHMgLyBwZXJpb2QgPSBkYXkpXG4qIHN1cHBseSA9IDE1MCBtbFxuKiBkYXlzU3VwcGxpZWQgPSAxMFxuKiByZWZpbGxzID0gMFxuXG5kZXJpdmVkIGRheXNTdXBwbGllZCA9IFtzdXBwbHkgKDE1MCBtbCkgLyAoKGRvc2FnZSAoNSBtbCkgeCBmcmVxdWVuY3kgKDMpKSA9IDEwIGRheXNcbmRheXNTdXBwbGllZFdpdGhSZWZpbGxzID0gW3N1cHBseSAoMTUwIG1sKSB4ICgxICsgcmVmaWxscyAoMCkpIC8gKChkb3NhZ2UgKDUgbWwpIHggZnJlcXVlbmN5ICgzKSkgPSAxMCBkYXlzXG4qL1xuXG4vKlxuIyBFeGFtcGxlIDY6XG5NZWRpY2F0aW9uRGlzcGVuc2UgNSBtbCAzeC9kYXkgICMxNTAgbWwvMCpcbiogZG9zYWdlID0gNSBtbFxuKiBmcmVxdWVuY3kgPSAzeCAvZGF5IChpLmUuLCByZXBlYXRzIC8gcGVyaW9kID0gZGF5KVxuKiBzdXBwbHkgPSAxNTAgbWxcbiogZGF5c1N1cHBsaWVkID0gMTBcbiogcmVmaWxscyA9IG4vYVxuXG4qIENNRCBjYWxjdWxhdGVkIGZvciDigJxNZWRpY2F0aW9uLCBEaXNwZW5zZWTigJ0gZG9lcyBub3QgdXNlIHRoZSBudW1iZXIgb2YgcmVmaWxsczsgcmF0aGVyLCB0aGUgZGF5cyBjb3ZlcmVkIGJ5IGVhY2ggZGlzcGVuc2luZyBldmVudCBtdXN0IGJlIHJldHJpZXZlZCBhbmQgYWRkZWQuXG4qL1xuXG4iLCJkZWZpbmUgIiwiUHJlc2NyaXB0aW9ucyIsIjogIiBdCiAgICAgICAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICAgICAgInIiIDogIjIxOSIsCiAgICAgICAgICAgICAgICAgICAgICJzIiA6IFsgewogICAgICAgICAgICAgICAgICAgICAgICAidmFsdWUiIDogWyAiWyIsIk1lZGljYXRpb25SZXF1ZXN0IiwiXSIgXQogICAgICAgICAgICAgICAgICAgICB9IF0KICAgICAgICAgICAgICAgICAgfSBdCiAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSBdLAogICAgICAgICAgICAiZXhwcmVzc2lvbiIgOiB7CiAgICAgICAgICAgICAgICJsb2NhbElkIiA6ICIyMTkiLAogICAgICAgICAgICAgICAibG9jYXRvciIgOiAiMTE0OjIzLTExNDo0MSIsCiAgICAgICAgICAgICAgICJkYXRhVHlwZSIgOiAie2h0dHA6Ly9obDcub3JnL2ZoaXJ9TWVkaWNhdGlvblJlcXVlc3QiLAogICAgICAgICAgICAgICAidGVtcGxhdGVJZCIgOiAiaHR0cDovL2hsNy5vcmcvZmhpci9TdHJ1Y3R1cmVEZWZpbml0aW9uL01lZGljYXRpb25SZXF1ZXN0IiwKICAgICAgICAgICAgICAgInR5cGUiIDogIlJldHJpZXZlIiwKICAgICAgICAgICAgICAgImluY2x1ZGUiIDogWyBdLAogICAgICAgICAgICAgICAiY29kZUZpbHRlciIgOiBbIF0sCiAgICAgICAgICAgICAgICJkYXRlRmlsdGVyIiA6IFsgXSwKICAgICAgICAgICAgICAgIm90aGVyRmlsdGVyIiA6IFsgXQogICAgICAgICAgICB9CiAgICAgICAgIH0sIHsKICAgICAgICAgICAgImxvY2FsSWQiIDogIjIyMiIsCiAgICAgICAgICAgICJsb2NhdG9yIiA6ICIxMTU6MS0xMTU6MzgiLAogICAgICAgICAgICAibmFtZSIgOiAiRGlzcGVuc2VzIiwKICAgICAgICAgICAgImNvbnRleHQiIDogIlBhdGllbnQiLAogICAgICAgICAgICAiYWNjZXNzTGV2ZWwiIDogIlB1YmxpYyIsCiAgICAgICAgICAgICJhbm5vdGF0aW9uIiA6IFsgewogICAgICAgICAgICAgICAidHlwZSIgOiAiQW5ub3RhdGlvbiIsCiAgICAgICAgICAgICAgICJzIiA6IHsKICAgICAgICAgICAgICAgICAgInIiIDogIjIyMiIsCiAgICAgICAgICAgICAgICAgICJzIiA6IFsgewogICAgICAgICAgICAgICAgICAgICAidmFsdWUiIDogWyAiIiwiZGVmaW5lICIsIkRpc3BlbnNlcyIsIjogIiBdCiAgICAgICAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICAgICAgInIiIDogIjIyMyIsCiAgICAgICAgICAgICAgICAgICAgICJzIiA6IFsgewogICAgICAgICAgICAgICAgICAgICAgICAidmFsdWUiIDogWyAiWyIsIk1lZGljYXRpb25EaXNwZW5zZSIsIl0iIF0KICAgICAgICAgICAgICAgICAgICAgfSBdCiAgICAgICAgICAgICAgICAgIH0gXQogICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0gXSwKICAgICAgICAgICAgImV4cHJlc3Npb24iIDogewogICAgICAgICAgICAgICAibG9jYWxJZCIgOiAiMjIzIiwKICAgICAgICAgICAgICAgImxvY2F0b3IiIDogIjExNToxOS0xMTU6MzgiLAogICAgICAgICAgICAgICAiZGF0YVR5cGUiIDogIntodHRwOi8vaGw3Lm9yZy9maGlyfU1lZGljYXRpb25EaXNwZW5zZSIsCiAgICAgICAgICAgICAgICJ0ZW1wbGF0ZUlkIiA6ICJodHRwOi8vaGw3Lm9yZy9maGlyL1N0cnVjdHVyZURlZmluaXRpb24vTWVkaWNhdGlvbkRpc3BlbnNlIiwKICAgICAgICAgICAgICAgInR5cGUiIDogIlJldHJpZXZlIiwKICAgICAgICAgICAgICAgImluY2x1ZGUiIDogWyBdLAogICAgICAgICAgICAgICAiY29kZUZpbHRlciIgOiBbIF0sCiAgICAgICAgICAgICAgICJkYXRlRmlsdGVyIiA6IFsgXSwKICAgICAgICAgICAgICAgIm90aGVyRmlsdGVyIiA6IFsgXQogICAgICAgICAgICB9CiAgICAgICAgIH0sIHsKICAgICAgICAgICAgImxvY2FsSWQiIDogIjIyNiIsCiAgICAgICAgICAgICJsb2NhdG9yIiA6ICIxMTc6MS0xMTk6NDEiLAogICAgICAgICAgICAibmFtZSIgOiAiUHJlc2NyaXB0aW9uUGVyaW9kcyIsCiAgICAgICAgICAgICJjb250ZXh0IiA6ICJQYXRpZW50IiwKICAgICAgICAgICAgImFjY2Vzc0xldmVsIiA6ICJQdWJsaWMiLAogICAgICAgICAgICAiYW5ub3RhdGlvbiIgOiBbIHsKICAgICAgICAgICAgICAgInR5cGUiIDogIkFubm90YXRpb24iLAogICAgICAgICAgICAgICAicyIgOiB7CiAgICAgICAgICAgICAgICAgICJyIiA6ICIyMjYiLAogICAgICAgICAgICAgICAgICAicyIgOiBbIHsKICAgICAgICAgICAgICAgICAgICAgInZhbHVlIiA6IFsgIiIsImRlZmluZSAiLCJQcmVzY3JpcHRpb25QZXJpb2RzIiwiOlxuICAiIF0KICAgICAgICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgICAgICAiciIgOiAiMjM1IiwKICAgICAgICAgICAgICAgICAgICAgInMiIDogWyB7CiAgICAgICAgICAgICAgICAgICAgICAgICJzIiA6IFsgewogICAgICAgICAgICAgICAgICAgICAgICAgICAiciIgOiAiMjI3IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgInMiIDogWyB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJyIiA6ICIyMjgiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicyIgOiBbIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInMiIDogWyB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ2YWx1ZSIgOiBbICJQcmVzY3JpcHRpb25zIiBdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IF0KICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidmFsdWUiIDogWyAiICIsIlAiIF0KICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBdCiAgICAgICAgICAgICAgICAgICAgICAgIH0gXQogICAgICAgICAgICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAgICAgICAgICJ2YWx1ZSIgOiBbICJcbiAgICAiIF0KICAgICAgICAgICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgICAgICAgICAiciIgOiAiMjMwIiwKICAgICAgICAgICAgICAgICAgICAgICAgInMiIDogWyB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICJ2YWx1ZSIgOiBbICJyZXR1cm4gIiBdCiAgICAgICAgICAgICAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgInIiIDogIjIzMyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICJzIiA6IFsgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiciIgOiAiMjMxIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInMiIDogWyB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ2YWx1ZSIgOiBbICJDTUQiIF0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBdCiAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInZhbHVlIiA6IFsgIi4iIF0KICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiciIgOiAiMjMzIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInMiIDogWyB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ2YWx1ZSIgOiBbICJNZWRpY2F0aW9uUmVxdWVzdFBlcmlvZCIsIigiIF0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiciIgOiAiMjMyIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInMiIDogWyB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ2YWx1ZSIgOiBbICJQIiBdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ2YWx1ZSIgOiBbICIpIiBdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gXQogICAgICAgICAgICAgICAgICAgICAgICAgICB9IF0KICAgICAgICAgICAgICAgICAgICAgICAgfSBdCiAgICAgICAgICAgICAgICAgICAgIH0gXQogICAgICAgICAgICAgICAgICB9IF0KICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9IF0sCiAgICAgICAgICAgICJleHByZXNzaW9uIiA6IHsKICAgICAgICAgICAgICAgImxvY2FsSWQiIDogIjIzNSIsCiAgICAgICAgICAgICAgICJsb2NhdG9yIiA6ICIxMTg6My0xMTk6NDEiLAogICAgICAgICAgICAgICAidHlwZSIgOiAiUXVlcnkiLAogICAgICAgICAgICAgICAic291cmNlIiA6IFsgewogICAgICAgICAgICAgICAgICAibG9jYWxJZCIgOiAiMjI3IiwKICAgICAgICAgICAgICAgICAgImxvY2F0b3IiIDogIjExODozLTExODoxNyIsCiAgICAgICAgICAgICAgICAgICJhbGlhcyIgOiAiUCIsCiAgICAgICAgICAgICAgICAgICJleHByZXNzaW9uIiA6IHsKICAgICAgICAgICAgICAgICAgICAgImxvY2FsSWQiIDogIjIyOCIsCiAgICAgICAgICAgICAgICAgICAgICJsb2NhdG9yIiA6ICIxMTg6My0xMTg6MTUiLAogICAgICAgICAgICAgICAgICAgICAibmFtZSIgOiAiUHJlc2NyaXB0aW9ucyIsCiAgICAgICAgICAgICAgICAgICAgICJ0eXBlIiA6ICJFeHByZXNzaW9uUmVmIgogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgIH0gXSwKICAgICAgICAgICAgICAgImxldCIgOiBbIF0sCiAgICAgICAgICAgICAgICJyZWxhdGlvbnNoaXAiIDogWyBdLAogICAgICAgICAgICAgICAicmV0dXJuIiA6IHsKICAgICAgICAgICAgICAgICAgImxvY2FsSWQiIDogIjIzMCIsCiAgICAgICAgICAgICAgICAgICJsb2NhdG9yIiA6ICIxMTk6NS0xMTk6NDEiLAogICAgICAgICAgICAgICAgICAiZXhwcmVzc2lvbiIgOiB7CiAgICAgICAgICAgICAgICAgICAgICJsb2NhbElkIiA6ICIyMzMiLAogICAgICAgICAgICAgICAgICAgICAibG9jYXRvciIgOiAiMTE5OjEyLTExOTo0MSIsCiAgICAgICAgICAgICAgICAgICAgICJuYW1lIiA6ICJNZWRpY2F0aW9uUmVxdWVzdFBlcmlvZCIsCiAgICAgICAgICAgICAgICAgICAgICJsaWJyYXJ5TmFtZSIgOiAiQ01EIiwKICAgICAgICAgICAgICAgICAgICAgInR5cGUiIDogIkZ1bmN0aW9uUmVmIiwKICAgICAgICAgICAgICAgICAgICAgInNpZ25hdHVyZSIgOiBbIHsKICAgICAgICAgICAgICAgICAgICAgICAgImxvY2FsSWQiIDogIjIzNCIsCiAgICAgICAgICAgICAgICAgICAgICAgICJuYW1lIiA6ICJ7aHR0cDovL2hsNy5vcmcvZmhpcn1NZWRpY2F0aW9uUmVxdWVzdCIsCiAgICAgICAgICAgICAgICAgICAgICAgICJ0eXBlIiA6ICJOYW1lZFR5cGVTcGVjaWZpZXIiCiAgICAgICAgICAgICAgICAgICAgIH0gXSwKICAgICAgICAgICAgICAgICAgICAgIm9wZXJhbmQiIDogWyB7CiAgICAgICAgICAgICAgICAgICAgICAgICJsb2NhbElkIiA6ICIyMzIiLAogICAgICAgICAgICAgICAgICAgICAgICAibG9jYXRvciIgOiAiMTE5OjQwIiwKICAgICAgICAgICAgICAgICAgICAgICAgIm5hbWUiIDogIlAiLAogICAgICAgICAgICAgICAgICAgICAgICAidHlwZSIgOiAiQWxpYXNSZWYiCiAgICAgICAgICAgICAgICAgICAgIH0gXQogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICB9LCB7CiAgICAgICAgICAgICJsb2NhbElkIiA6ICIyMzgiLAogICAgICAgICAgICAibG9jYXRvciIgOiAiMTIxOjEtMTIzOjQyIiwKICAgICAgICAgICAgIm5hbWUiIDogIkRpc3BlbnNlUGVyaW9kcyIsCiAgICAgICAgICAgICJjb250ZXh0IiA6ICJQYXRpZW50IiwKICAgICAgICAgICAgImFjY2Vzc0xldmVsIiA6ICJQdWJsaWMiLAogICAgICAgICAgICAiYW5ub3RhdGlvbiIgOiBbIHsKICAgICAgICAgICAgICAgInR5cGUiIDogIkFubm90YXRpb24iLAogICAgICAgICAgICAgICAicyIgOiB7CiAgICAgICAgICAgICAgICAgICJyIiA6ICIyMzgiLAogICAgICAgICAgICAgICAgICAicyIgOiBbIHsKICAgICAgICAgICAgICAgICAgICAgInZhbHVlIiA6IFsgIiIsImRlZmluZSAiLCJEaXNwZW5zZVBlcmlvZHMiLCI6XG4gICIgXQogICAgICAgICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAgICAgICJyIiA6ICIyNDciLAogICAgICAgICAgICAgICAgICAgICAicyIgOiBbIHsKICAgICAgICAgICAgICAgICAgICAgICAgInMiIDogWyB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICJyIiA6ICIyMzkiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAicyIgOiBbIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInIiIDogIjI0MCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzIiA6IFsgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicyIgOiBbIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInZhbHVlIiA6IFsgIkRpc3BlbnNlcyIgXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IF0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBdCiAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInZhbHVlIiA6IFsgIiAiLCJEIiBdCiAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gXQogICAgICAgICAgICAgICAgICAgICAgICB9IF0KICAgICAgICAgICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgICAgICAgICAidmFsdWUiIDogWyAiXG4gICAgIiBdCiAgICAgICAgICAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICAgICAgICAgInIiIDogIjI0MiIsCiAgICAgICAgICAgICAgICAgICAgICAgICJzIiA6IFsgewogICAgICAgICAgICAgICAgICAgICAgICAgICAidmFsdWUiIDogWyAicmV0dXJuICIgXQogICAgICAgICAgICAgICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICJyIiA6ICIyNDUiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAicyIgOiBbIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInIiIDogIjI0MyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzIiA6IFsgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidmFsdWUiIDogWyAiQ01EIiBdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gXQogICAgICAgICAgICAgICAgICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ2YWx1ZSIgOiBbICIuIiBdCiAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInIiIDogIjI0NSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzIiA6IFsgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidmFsdWUiIDogWyAiTWVkaWNhdGlvbkRpc3BlbnNlUGVyaW9kIiwiKCIgXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJyIiA6ICIyNDQiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicyIgOiBbIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInZhbHVlIiA6IFsgIkQiIF0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInZhbHVlIiA6IFsgIikiIF0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBdCiAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gXQogICAgICAgICAgICAgICAgICAgICAgICB9IF0KICAgICAgICAgICAgICAgICAgICAgfSBdCiAgICAgICAgICAgICAgICAgIH0gXQogICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0gXSwKICAgICAgICAgICAgImV4cHJlc3Npb24iIDogewogICAgICAgICAgICAgICAibG9jYWxJZCIgOiAiMjQ3IiwKICAgICAgICAgICAgICAgImxvY2F0b3IiIDogIjEyMjozLTEyMzo0MiIsCiAgICAgICAgICAgICAgICJ0eXBlIiA6ICJRdWVyeSIsCiAgICAgICAgICAgICAgICJzb3VyY2UiIDogWyB7CiAgICAgICAgICAgICAgICAgICJsb2NhbElkIiA6ICIyMzkiLAogICAgICAgICAgICAgICAgICAibG9jYXRvciIgOiAiMTIyOjMtMTIyOjEzIiwKICAgICAgICAgICAgICAgICAgImFsaWFzIiA6ICJEIiwKICAgICAgICAgICAgICAgICAgImV4cHJlc3Npb24iIDogewogICAgICAgICAgICAgICAgICAgICAibG9jYWxJZCIgOiAiMjQwIiwKICAgICAgICAgICAgICAgICAgICAgImxvY2F0b3IiIDogIjEyMjozLTEyMjoxMSIsCiAgICAgICAgICAgICAgICAgICAgICJuYW1lIiA6ICJEaXNwZW5zZXMiLAogICAgICAgICAgICAgICAgICAgICAidHlwZSIgOiAiRXhwcmVzc2lvblJlZiIKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICB9IF0sCiAgICAgICAgICAgICAgICJsZXQiIDogWyBdLAogICAgICAgICAgICAgICAicmVsYXRpb25zaGlwIiA6IFsgXSwKICAgICAgICAgICAgICAgInJldHVybiIgOiB7CiAgICAgICAgICAgICAgICAgICJsb2NhbElkIiA6ICIyNDIiLAogICAgICAgICAgICAgICAgICAibG9jYXRvciIgOiAiMTIzOjUtMTIzOjQyIiwKICAgICAgICAgICAgICAgICAgImV4cHJlc3Npb24iIDogewogICAgICAgICAgICAgICAgICAgICAibG9jYWxJZCIgOiAiMjQ1IiwKICAgICAgICAgICAgICAgICAgICAgImxvY2F0b3IiIDogIjEyMzoxMi0xMjM6NDIiLAogICAgICAgICAgICAgICAgICAgICAibmFtZSIgOiAiTWVkaWNhdGlvbkRpc3BlbnNlUGVyaW9kIiwKICAgICAgICAgICAgICAgICAgICAgImxpYnJhcnlOYW1lIiA6ICJDTUQiLAogICAgICAgICAgICAgICAgICAgICAidHlwZSIgOiAiRnVuY3Rpb25SZWYiLAogICAgICAgICAgICAgICAgICAgICAic2lnbmF0dXJlIiA6IFsgewogICAgICAgICAgICAgICAgICAgICAgICAibG9jYWxJZCIgOiAiMjQ2IiwKICAgICAgICAgICAgICAgICAgICAgICAgIm5hbWUiIDogIntodHRwOi8vaGw3Lm9yZy9maGlyfU1lZGljYXRpb25EaXNwZW5zZSIsCiAgICAgICAgICAgICAgICAgICAgICAgICJ0eXBlIiA6ICJOYW1lZFR5cGVTcGVjaWZpZXIiCiAgICAgICAgICAgICAgICAgICAgIH0gXSwKICAgICAgICAgICAgICAgICAgICAgIm9wZXJhbmQiIDogWyB7CiAgICAgICAgICAgICAgICAgICAgICAgICJsb2NhbElkIiA6ICIyNDQiLAogICAgICAgICAgICAgICAgICAgICAgICAibG9jYXRvciIgOiAiMTIzOjQxIiwKICAgICAgICAgICAgICAgICAgICAgICAgIm5hbWUiIDogIkQiLAogICAgICAgICAgICAgICAgICAgICAgICAidHlwZSIgOiAiQWxpYXNSZWYiCiAgICAgICAgICAgICAgICAgICAgIH0gXQogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICB9LCB7CiAgICAgICAgICAgICJsb2NhbElkIiA6ICIyNTAiLAogICAgICAgICAgICAibG9jYXRvciIgOiAiMTI1OjEtMTI2OjY3IiwKICAgICAgICAgICAgIm5hbWUiIDogIkN1bXVsYXRpdmVEdXJhdGlvbiIsCiAgICAgICAgICAgICJjb250ZXh0IiA6ICJQYXRpZW50IiwKICAgICAgICAgICAgImFjY2Vzc0xldmVsIiA6ICJQdWJsaWMiLAogICAgICAgICAgICAiYW5ub3RhdGlvbiIgOiBbIHsKICAgICAgICAgICAgICAgInR5cGUiIDogIkFubm90YXRpb24iLAogICAgICAgICAgICAgICAicyIgOiB7CiAgICAgICAgICAgICAgICAgICJyIiA6ICIyNTAiLAogICAgICAgICAgICAgICAgICAicyIgOiBbIHsKICAgICAgICAgICAgICAgICAgICAgInZhbHVlIiA6IFsgIiIsImRlZmluZSAiLCJDdW11bGF0aXZlRHVyYXRpb24iLCI6XG4gICIgXQogICAgICAgICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAgICAgICJyIiA6ICIyNjEiLAogICAgICAgICAgICAgICAgICAgICAicyIgOiBbIHsKICAgICAgICAgICAgICAgICAgICAgICAgInIiIDogIjI1MSIsCiAgICAgICAgICAgICAgICAgICAgICAgICJzIiA6IFsgewogICAgICAgICAgICAgICAgICAgICAgICAgICAidmFsdWUiIDogWyAiQ01EIiBdCiAgICAgICAgICAgICAgICAgICAgICAgIH0gXQogICAgICAgICAgICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAgICAgICAgICJ2YWx1ZSIgOiBbICIuIiBdCiAgICAgICAgICAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICAgICAgICAgInIiIDogIjI2MSIsCiAgICAgICAgICAgICAgICAgICAgICAgICJzIiA6IFsgewogICAgICAgICAgICAgICAgICAgICAgICAgICAidmFsdWUiIDogWyAiQ3VtdWxhdGl2ZUR1cmF0aW9uIiwiKCIgXQogICAgICAgICAgICAgICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICJyIiA6ICIyNTQiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAicyIgOiBbIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInIiIDogIjI1MiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzIiA6IFsgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidmFsdWUiIDogWyAiUHJlc2NyaXB0aW9uUGVyaW9kcyIgXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IF0KICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidmFsdWUiIDogWyAiIHVuaW9uICIgXQogICAgICAgICAgICAgICAgICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJyIiA6ICIyNTMiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicyIgOiBbIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInZhbHVlIiA6IFsgIkRpc3BlbnNlUGVyaW9kcyIgXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IF0KICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBdCiAgICAgICAgICAgICAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgInZhbHVlIiA6IFsgIikiIF0KICAgICAgICAgICAgICAgICAgICAgICAgfSBdCiAgICAgICAgICAgICAgICAgICAgIH0gXQogICAgICAgICAgICAgICAgICB9IF0KICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9IF0sCiAgICAgICAgICAgICJleHByZXNzaW9uIiA6IHsKICAgICAgICAgICAgICAgImxvY2FsSWQiIDogIjI2MSIsCiAgICAgICAgICAgICAgICJsb2NhdG9yIiA6ICIxMjY6My0xMjY6NjciLAogICAgICAgICAgICAgICAibmFtZSIgOiAiQ3VtdWxhdGl2ZUR1cmF0aW9uIiwKICAgICAgICAgICAgICAgImxpYnJhcnlOYW1lIiA6ICJDTUQiLAogICAgICAgICAgICAgICAidHlwZSIgOiAiRnVuY3Rpb25SZWYiLAogICAgICAgICAgICAgICAic2lnbmF0dXJlIiA6IFsgewogICAgICAgICAgICAgICAgICAibG9jYWxJZCIgOiAiMjYyIiwKICAgICAgICAgICAgICAgICAgInR5cGUiIDogIkxpc3RUeXBlU3BlY2lmaWVyIiwKICAgICAgICAgICAgICAgICAgImVsZW1lbnRUeXBlIiA6IHsKICAgICAgICAgICAgICAgICAgICAgImxvY2FsSWQiIDogIjI2MyIsCiAgICAgICAgICAgICAgICAgICAgICJ0eXBlIiA6ICJJbnRlcnZhbFR5cGVTcGVjaWZpZXIiLAogICAgICAgICAgICAgICAgICAgICAicG9pbnRUeXBlIiA6IHsKICAgICAgICAgICAgICAgICAgICAgICAgImxvY2FsSWQiIDogIjI2NCIsCiAgICAgICAgICAgICAgICAgICAgICAgICJuYW1lIiA6ICJ7dXJuOmhsNy1vcmc6ZWxtLXR5cGVzOnIxfURhdGUiLAogICAgICAgICAgICAgICAgICAgICAgICAidHlwZSIgOiAiTmFtZWRUeXBlU3BlY2lmaWVyIgogICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgfSBdLAogICAgICAgICAgICAgICAib3BlcmFuZCIgOiBbIHsKICAgICAgICAgICAgICAgICAgImxvY2FsSWQiIDogIjI1NCIsCiAgICAgICAgICAgICAgICAgICJsb2NhdG9yIiA6ICIxMjY6MjYtMTI2OjY2IiwKICAgICAgICAgICAgICAgICAgInR5cGUiIDogIlVuaW9uIiwKICAgICAgICAgICAgICAgICAgInNpZ25hdHVyZSIgOiBbIHsKICAgICAgICAgICAgICAgICAgICAgImxvY2FsSWQiIDogIjI1NSIsCiAgICAgICAgICAgICAgICAgICAgICJ0eXBlIiA6ICJMaXN0VHlwZVNwZWNpZmllciIsCiAgICAgICAgICAgICAgICAgICAgICJlbGVtZW50VHlwZSIgOiB7CiAgICAgICAgICAgICAgICAgICAgICAgICJsb2NhbElkIiA6ICIyNTYiLAogICAgICAgICAgICAgICAgICAgICAgICAidHlwZSIgOiAiSW50ZXJ2YWxUeXBlU3BlY2lmaWVyIiwKICAgICAgICAgICAgICAgICAgICAgICAgInBvaW50VHlwZSIgOiB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICJsb2NhbElkIiA6ICIyNTciLAogICAgICAgICAgICAgICAgICAgICAgICAgICAibmFtZSIgOiAie3VybjpobDctb3JnOmVsbS10eXBlczpyMX1EYXRlIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgInR5cGUiIDogIk5hbWVkVHlwZVNwZWNpZmllciIKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICAgICAgImxvY2FsSWQiIDogIjI1OCIsCiAgICAgICAgICAgICAgICAgICAgICJ0eXBlIiA6ICJMaXN0VHlwZVNwZWNpZmllciIsCiAgICAgICAgICAgICAgICAgICAgICJlbGVtZW50VHlwZSIgOiB7CiAgICAgICAgICAgICAgICAgICAgICAgICJsb2NhbElkIiA6ICIyNTkiLAogICAgICAgICAgICAgICAgICAgICAgICAidHlwZSIgOiAiSW50ZXJ2YWxUeXBlU3BlY2lmaWVyIiwKICAgICAgICAgICAgICAgICAgICAgICAgInBvaW50VHlwZSIgOiB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICJsb2NhbElkIiA6ICIyNjAiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAibmFtZSIgOiAie3VybjpobDctb3JnOmVsbS10eXBlczpyMX1EYXRlIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgInR5cGUiIDogIk5hbWVkVHlwZVNwZWNpZmllciIKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgIH0gXSwKICAgICAgICAgICAgICAgICAgIm9wZXJhbmQiIDogWyB7CiAgICAgICAgICAgICAgICAgICAgICJsb2NhbElkIiA6ICIyNTIiLAogICAgICAgICAgICAgICAgICAgICAibG9jYXRvciIgOiAiMTI2OjI2LTEyNjo0NCIsCiAgICAgICAgICAgICAgICAgICAgICJuYW1lIiA6ICJQcmVzY3JpcHRpb25QZXJpb2RzIiwKICAgICAgICAgICAgICAgICAgICAgInR5cGUiIDogIkV4cHJlc3Npb25SZWYiCiAgICAgICAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICAgICAgImxvY2FsSWQiIDogIjI1MyIsCiAgICAgICAgICAgICAgICAgICAgICJsb2NhdG9yIiA6ICIxMjY6NTItMTI2OjY2IiwKICAgICAgICAgICAgICAgICAgICAgIm5hbWUiIDogIkRpc3BlbnNlUGVyaW9kcyIsCiAgICAgICAgICAgICAgICAgICAgICJ0eXBlIiA6ICJFeHByZXNzaW9uUmVmIgogICAgICAgICAgICAgICAgICB9IF0KICAgICAgICAgICAgICAgfSBdCiAgICAgICAgICAgIH0KICAgICAgICAgfSwgewogICAgICAgICAgICAibG9jYWxJZCIgOiAiMjY3IiwKICAgICAgICAgICAgImxvY2F0b3IiIDogIjEyOToxLTEzMzozIiwKICAgICAgICAgICAgIm5hbWUiIDogIkN1bXVsYXRpdmVNZWRpY2F0aW9uRHVyYXRpb24iLAogICAgICAgICAgICAiY29udGV4dCIgOiAiUGF0aWVudCIsCiAgICAgICAgICAgICJhY2Nlc3NMZXZlbCIgOiAiUHVibGljIiwKICAgICAgICAgICAgImFubm90YXRpb24iIDogWyB7CiAgICAgICAgICAgICAgICJ0eXBlIiA6ICJBbm5vdGF0aW9uIiwKICAgICAgICAgICAgICAgInMiIDogewogICAgICAgICAgICAgICAgICAiciIgOiAiMjY3IiwKICAgICAgICAgICAgICAgICAgInMiIDogWyB7CiAgICAgICAgICAgICAgICAgICAgICJ2YWx1ZSIgOiBbICIvLyBUT0RPOiBEZWJ1ZyB0aGlzXG4iLCJkZWZpbmUgIiwiQ3VtdWxhdGl2ZU1lZGljYXRpb25EdXJhdGlvbiIsIjpcbiAgIiBdCiAgICAgICAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICAgICAgInIiIDogIjI5MCIsCiAgICAgICAgICAgICAgICAgICAgICJzIiA6IFsgewogICAgICAgICAgICAgICAgICAgICAgICAiciIgOiAiMjY4IiwKICAgICAgICAgICAgICAgICAgICAgICAgInMiIDogWyB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICJ2YWx1ZSIgOiBbICJDTUQiIF0KICAgICAgICAgICAgICAgICAgICAgICAgfSBdCiAgICAgICAgICAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICAgICAgICAgInZhbHVlIiA6IFsgIi4iIF0KICAgICAgICAgICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgICAgICAgICAiciIgOiAiMjkwIiwKICAgICAgICAgICAgICAgICAgICAgICAgInMiIDogWyB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICJ2YWx1ZSIgOiBbICJDdW11bGF0aXZlTWVkaWNhdGlvbkR1cmF0aW9uIiwiKFxuICAgICIgXQogICAgICAgICAgICAgICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICJyIiA6ICIyODEiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAicyIgOiBbIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInIiIDogIjI2OSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzIiA6IFsgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidmFsdWUiIDogWyAiUHJlc2NyaXB0aW9ucyIgXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IF0KICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidmFsdWUiIDogWyAiXG4gICAgICB1bmlvbiAiIF0KICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiciIgOiAiMjcwIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInMiIDogWyB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ2YWx1ZSIgOiBbICJEaXNwZW5zZXMiIF0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBdCiAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gXQogICAgICAgICAgICAgICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICJ2YWx1ZSIgOiBbICJcbiAgKSIgXQogICAgICAgICAgICAgICAgICAgICAgICB9IF0KICAgICAgICAgICAgICAgICAgICAgfSBdCiAgICAgICAgICAgICAgICAgIH0gXQogICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0gXSwKICAgICAgICAgICAgImV4cHJlc3Npb24iIDogewogICAgICAgICAgICAgICAibG9jYWxJZCIgOiAiMjkwIiwKICAgICAgICAgICAgICAgImxvY2F0b3IiIDogIjEzMDozLTEzMzozIiwKICAgICAgICAgICAgICAgIm5hbWUiIDogIkN1bXVsYXRpdmVNZWRpY2F0aW9uRHVyYXRpb24iLAogICAgICAgICAgICAgICAibGlicmFyeU5hbWUiIDogIkNNRCIsCiAgICAgICAgICAgICAgICJ0eXBlIiA6ICJGdW5jdGlvblJlZiIsCiAgICAgICAgICAgICAgICJzaWduYXR1cmUiIDogWyB7CiAgICAgICAgICAgICAgICAgICJsb2NhbElkIiA6ICIyOTEiLAogICAgICAgICAgICAgICAgICAidHlwZSIgOiAiTGlzdFR5cGVTcGVjaWZpZXIiLAogICAgICAgICAgICAgICAgICAiZWxlbWVudFR5cGUiIDogewogICAgICAgICAgICAgICAgICAgICAibG9jYWxJZCIgOiAiMjkyIiwKICAgICAgICAgICAgICAgICAgICAgInR5cGUiIDogIkNob2ljZVR5cGVTcGVjaWZpZXIiLAogICAgICAgICAgICAgICAgICAgICAiY2hvaWNlIiA6IFsgewogICAgICAgICAgICAgICAgICAgICAgICAibG9jYWxJZCIgOiAiMjkzIiwKICAgICAgICAgICAgICAgICAgICAgICAgIm5hbWUiIDogIntodHRwOi8vaGw3Lm9yZy9maGlyfU1lZGljYXRpb25SZXF1ZXN0IiwKICAgICAgICAgICAgICAgICAgICAgICAgInR5cGUiIDogIk5hbWVkVHlwZVNwZWNpZmllciIKICAgICAgICAgICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgICAgICAgICAibG9jYWxJZCIgOiAiMjk0IiwKICAgICAgICAgICAgICAgICAgICAgICAgIm5hbWUiIDogIntodHRwOi8vaGw3Lm9yZy9maGlyfU1lZGljYXRpb25EaXNwZW5zZSIsCiAgICAgICAgICAgICAgICAgICAgICAgICJ0eXBlIiA6ICJOYW1lZFR5cGVTcGVjaWZpZXIiCiAgICAgICAgICAgICAgICAgICAgIH0gXQogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgIH0gXSwKICAgICAgICAgICAgICAgIm9wZXJhbmQiIDogWyB7CiAgICAgICAgICAgICAgICAgICJsb2NhbElkIiA6ICIyODEiLAogICAgICAgICAgICAgICAgICAibG9jYXRvciIgOiAiMTMxOjUtMTMyOjIxIiwKICAgICAgICAgICAgICAgICAgInR5cGUiIDogIlVuaW9uIiwKICAgICAgICAgICAgICAgICAgInNpZ25hdHVyZSIgOiBbIHsKICAgICAgICAgICAgICAgICAgICAgImxvY2FsSWQiIDogIjI4MiIsCiAgICAgICAgICAgICAgICAgICAgICJ0eXBlIiA6ICJMaXN0VHlwZVNwZWNpZmllciIsCiAgICAgICAgICAgICAgICAgICAgICJlbGVtZW50VHlwZSIgOiB7CiAgICAgICAgICAgICAgICAgICAgICAgICJsb2NhbElkIiA6ICIyODMiLAogICAgICAgICAgICAgICAgICAgICAgICAidHlwZSIgOiAiQ2hvaWNlVHlwZVNwZWNpZmllciIsCiAgICAgICAgICAgICAgICAgICAgICAgICJjaG9pY2UiIDogWyB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICJsb2NhbElkIiA6ICIyODQiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAibmFtZSIgOiAie2h0dHA6Ly9obDcub3JnL2ZoaXJ9TWVkaWNhdGlvblJlcXVlc3QiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAidHlwZSIgOiAiTmFtZWRUeXBlU3BlY2lmaWVyIgogICAgICAgICAgICAgICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICJsb2NhbElkIiA6ICIyODUiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAibmFtZSIgOiAie2h0dHA6Ly9obDcub3JnL2ZoaXJ9TWVkaWNhdGlvbkRpc3BlbnNlIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgInR5cGUiIDogIk5hbWVkVHlwZVNwZWNpZmllciIKICAgICAgICAgICAgICAgICAgICAgICAgfSBdCiAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgICAgICAibG9jYWxJZCIgOiAiMjg2IiwKICAgICAgICAgICAgICAgICAgICAgInR5cGUiIDogIkxpc3RUeXBlU3BlY2lmaWVyIiwKICAgICAgICAgICAgICAgICAgICAgImVsZW1lbnRUeXBlIiA6IHsKICAgICAgICAgICAgICAgICAgICAgICAgImxvY2FsSWQiIDogIjI4NyIsCiAgICAgICAgICAgICAgICAgICAgICAgICJ0eXBlIiA6ICJDaG9pY2VUeXBlU3BlY2lmaWVyIiwKICAgICAgICAgICAgICAgICAgICAgICAgImNob2ljZSIgOiBbIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgImxvY2FsSWQiIDogIjI4OCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICJuYW1lIiA6ICJ7aHR0cDovL2hsNy5vcmcvZmhpcn1NZWRpY2F0aW9uUmVxdWVzdCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICJ0eXBlIiA6ICJOYW1lZFR5cGVTcGVjaWZpZXIiCiAgICAgICAgICAgICAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgImxvY2FsSWQiIDogIjI4OSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICJuYW1lIiA6ICJ7aHR0cDovL2hsNy5vcmcvZmhpcn1NZWRpY2F0aW9uRGlzcGVuc2UiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAidHlwZSIgOiAiTmFtZWRUeXBlU3BlY2lmaWVyIgogICAgICAgICAgICAgICAgICAgICAgICB9IF0KICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICB9IF0sCiAgICAgICAgICAgICAgICAgICJvcGVyYW5kIiA6IFsgewogICAgICAgICAgICAgICAgICAgICAibG9jYWxJZCIgOiAiMjcxIiwKICAgICAgICAgICAgICAgICAgICAgInR5cGUiIDogIkFzIiwKICAgICAgICAgICAgICAgICAgICAgInNpZ25hdHVyZSIgOiBbIF0sCiAgICAgICAgICAgICAgICAgICAgICJvcGVyYW5kIiA6IHsKICAgICAgICAgICAgICAgICAgICAgICAgImxvY2FsSWQiIDogIjI2OSIsCiAgICAgICAgICAgICAgICAgICAgICAgICJsb2NhdG9yIiA6ICIxMzE6NS0xMzE6MTciLAogICAgICAgICAgICAgICAgICAgICAgICAibmFtZSIgOiAiUHJlc2NyaXB0aW9ucyIsCiAgICAgICAgICAgICAgICAgICAgICAgICJ0eXBlIiA6ICJFeHByZXNzaW9uUmVmIgogICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgICAiYXNUeXBlU3BlY2lmaWVyIiA6IHsKICAgICAgICAgICAgICAgICAgICAgICAgImxvY2FsSWQiIDogIjI3MiIsCiAgICAgICAgICAgICAgICAgICAgICAgICJ0eXBlIiA6ICJMaXN0VHlwZVNwZWNpZmllciIsCiAgICAgICAgICAgICAgICAgICAgICAgICJlbGVtZW50VHlwZSIgOiB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICJsb2NhbElkIiA6ICIyNzMiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAidHlwZSIgOiAiQ2hvaWNlVHlwZVNwZWNpZmllciIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICJjaG9pY2UiIDogWyB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJsb2NhbElkIiA6ICIyNzQiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAibmFtZSIgOiAie2h0dHA6Ly9obDcub3JnL2ZoaXJ9TWVkaWNhdGlvblJlcXVlc3QiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidHlwZSIgOiAiTmFtZWRUeXBlU3BlY2lmaWVyIgogICAgICAgICAgICAgICAgICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJsb2NhbElkIiA6ICIyNzUiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAibmFtZSIgOiAie2h0dHA6Ly9obDcub3JnL2ZoaXJ9TWVkaWNhdGlvbkRpc3BlbnNlIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInR5cGUiIDogIk5hbWVkVHlwZVNwZWNpZmllciIKICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBdCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAgICAgICJsb2NhbElkIiA6ICIyNzYiLAogICAgICAgICAgICAgICAgICAgICAidHlwZSIgOiAiQXMiLAogICAgICAgICAgICAgICAgICAgICAic2lnbmF0dXJlIiA6IFsgXSwKICAgICAgICAgICAgICAgICAgICAgIm9wZXJhbmQiIDogewogICAgICAgICAgICAgICAgICAgICAgICAibG9jYWxJZCIgOiAiMjcwIiwKICAgICAgICAgICAgICAgICAgICAgICAgImxvY2F0b3IiIDogIjEzMjoxMy0xMzI6MjEiLAogICAgICAgICAgICAgICAgICAgICAgICAibmFtZSIgOiAiRGlzcGVuc2VzIiwKICAgICAgICAgICAgICAgICAgICAgICAgInR5cGUiIDogIkV4cHJlc3Npb25SZWYiCiAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgICJhc1R5cGVTcGVjaWZpZXIiIDogewogICAgICAgICAgICAgICAgICAgICAgICAibG9jYWxJZCIgOiAiMjc3IiwKICAgICAgICAgICAgICAgICAgICAgICAgInR5cGUiIDogIkxpc3RUeXBlU3BlY2lmaWVyIiwKICAgICAgICAgICAgICAgICAgICAgICAgImVsZW1lbnRUeXBlIiA6IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgImxvY2FsSWQiIDogIjI3OCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICJ0eXBlIiA6ICJDaG9pY2VUeXBlU3BlY2lmaWVyIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgImNob2ljZSIgOiBbIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImxvY2FsSWQiIDogIjI3OSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJuYW1lIiA6ICJ7aHR0cDovL2hsNy5vcmcvZmhpcn1NZWRpY2F0aW9uUmVxdWVzdCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ0eXBlIiA6ICJOYW1lZFR5cGVTcGVjaWZpZXIiCiAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImxvY2FsSWQiIDogIjI4MCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJuYW1lIiA6ICJ7aHR0cDovL2hsNy5vcmcvZmhpcn1NZWRpY2F0aW9uRGlzcGVuc2UiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidHlwZSIgOiAiTmFtZWRUeXBlU3BlY2lmaWVyIgogICAgICAgICAgICAgICAgICAgICAgICAgICB9IF0KICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgIH0gXQogICAgICAgICAgICAgICB9IF0KICAgICAgICAgICAgfQogICAgICAgICB9IF0KICAgICAgfQogICB9Cn0="/>
</content>
</Library>