<?xml version="1.0" encoding="UTF-8"?>

<Library xmlns="http://hl7.org/fhir">
  <id value="CervicalCancerTriageDecision"/>
  <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;">Cervical Cancer Triage Decision Logic</td>
        </tr>
        

        
        
        <tr>
            <th scope="row"><b>Id: </b></th>
            <td style="padding-left: 4px;">CervicalCancerTriageDecision</td>
        </tr>
        

        
        
        <tr>
            <th scope="row"><b>Version: </b></th>
            <td style="padding-left: 4px;">0.1.0</td>
        </tr>
        

        
        <tr>
            <th scope="row"><b>Url: </b></th>
            <td style="padding-left: 4px;"><a href="Library-CervicalCancerTriageDecision.html">Cervical Cancer Triage Decision Logic</a></td>
        </tr>
        

        

        

        
        <tr>
            <th scope="row"><b>Status: </b></th>
            <td style="padding-left: 4px;">draft</td>
        </tr>
        

        
        <tr>
            <th scope="row"><b>Experimental: </b></th>
            <td style="padding-left: 4px;">true</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-04-21 19:55:49+0000</td>
        </tr>
        

        
        <tr>
            <th scope="row"><b>Publisher: </b></th>
            <td style="padding-left: 4px;">Hopena Health</td>
        </tr>
        

        

        

        

        

        
        <tr>
            <th scope="row"><b>Jurisdiction: </b></th>
            <td style="padding-left: 4px;">001</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-CervicalCancerScreeningCommon.html">Cervical Cancer Screening Common Definitions</a> version: 0.1.0</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>Patient</th><th>Patient</th><th>0</th><th>1</th><th>Out</th></tr>
              
                <tr><th>Triage Is Indicated</th><th>boolean</th><th>0</th><th>1</th><th>Out</th></tr>
              
                <tr><th>Triage Has Been Performed</th><th>boolean</th><th>0</th><th>1</th><th>Out</th></tr>
              
                <tr><th>VIA Triage Is Positive</th><th>boolean</th><th>0</th><th>1</th><th>Out</th></tr>
              
                <tr><th>VIA Triage Is Negative</th><th>boolean</th><th>0</th><th>1</th><th>Out</th></tr>
              
                <tr><th>Suspicious For Cancer</th><th>boolean</th><th>0</th><th>1</th><th>Out</th></tr>
              
                <tr><th>Proceed To Treatment</th><th>boolean</th><th>0</th><th>1</th><th>Out</th></tr>
              
                <tr><th>Proceed To Follow Up Retest</th><th>boolean</th><th>0</th><th>1</th><th>Out</th></tr>
              
                <tr><th>Needs Referral</th><th>boolean</th><th>0</th><th>1</th><th>Out</th></tr>
              
                <tr><th>Triage Recommended Action</th><th>string</th><th>0</th><th>1</th><th>Out</th></tr>
              
                <tr><th>Triage Status</th><th>string</th><th>0</th><th>1</th><th>Out</th></tr>
              
                <tr><th>Active Triage Algorithm</th><th>string</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">/*
 * CervicalCancerTriageDecision
 *
 * Triage pathway logic for HPV-positive women, implementing
 * WHO guideline Algorithm 5 (HPV DNA + VIA triage) with
 * extension points for Algorithms 3, 4, 6, 7.
 *
 * This library determines:
 *   - Whether triage is indicated
 *   - The appropriate triage method for the active algorithm
 *   - Interpretation of triage results
 *   - Routing to treatment vs follow-up vs referral
 *
 * Algorithm 5 cascade after HPV+:
 *   HPV positive → VIA triage
 *     ├── VIA positive → Treat (→ TreatmentDecision)
 *     ├── VIA negative → Retest at 12/24 months (→ FollowUpDecision)
 *     └── Suspicious for cancer → Refer to oncology
 *
 * WHO Recommendations covered:
 *   General population: 3b (screen-triage-treat), 11 (post-triage-negative retest)
 *   WLHIV: 22 (triage recommended), 23 (screen-triage-treat), 31 (retest timing)
 *
 * @author  Dan Heslinga / Hopena Health
 * @version 0.1.0
 * @date    2026-03-08
 */

library CervicalCancerTriageDecision version '0.1.0'

using FHIR version '4.0.1'

include FHIRHelpers version '4.0.1'
include CervicalCancerScreeningCommon version '0.1.0' called Common

context Patient

/*
 * =============================================================================
 * TRIAGE INDICATION
 * =============================================================================
 *
 * @guidance Triage is indicated when the primary HPV DNA test is positive.
 *           In Algorithm 5, VIA is the triage method.
 *           In screen-and-treat approaches (Algorithm 2), VIA is still done
 *           but for treatment modality selection rather than triage.
 */

/*
 * @output Boolean — true if triage is indicated (HPV+ without subsequent triage)
 * @pseudocode HPV test positive AND no VIA result after the HPV test
 */
define &quot;Triage Is Indicated&quot;:
  Common.&quot;Most Recent HPV Test Is Positive&quot;
    and (
      not exists(Common.&quot;VIA Screening Results&quot;)
      or Common.&quot;Date Of Most Recent VIA&quot; before Common.&quot;Date Of Most Recent HPV Test&quot;
    )

/*
 * @output Boolean — true if triage has been performed (VIA done after HPV+ result)
 */
define &quot;Triage Has Been Performed&quot;:
  Common.&quot;Most Recent HPV Test Is Positive&quot;
    and exists(Common.&quot;VIA Screening Results&quot;)
    and Common.&quot;Date Of Most Recent VIA&quot; on or after Common.&quot;Date Of Most Recent HPV Test&quot;

/*
 * =============================================================================
 * TRIAGE RESULT INTERPRETATION
 * =============================================================================
 */

/*
 * @output Boolean — true if VIA triage was positive
 * @guidance VIA positive → proceed to treatment assessment
 */
define &quot;VIA Triage Is Positive&quot;:
  &quot;Triage Has Been Performed&quot;
    and Common.&quot;Most Recent VIA Is Positive&quot;

/*
 * @output Boolean — true if VIA triage was negative
 * @guidance VIA negative → schedule follow-up HPV retest
 *           General: 24 months (WHO Rec 11)
 *           WLHIV: 12 months (WHO Rec 31)
 */
define &quot;VIA Triage Is Negative&quot;:
  &quot;Triage Has Been Performed&quot;
    and not Common.&quot;Most Recent VIA Is Positive&quot;

/*
 * =============================================================================
 * SUSPICIOUS FOR CANCER — Referral pathway
 * =============================================================================
 *
 * @guidance In all algorithms, if VIA or colposcopy reveals findings
 *           suspicious for invasive cancer, the patient must be referred
 *           for definitive diagnosis and staging. This bypasses triage/treatment.
 *
 * Note: &quot;Suspicious for cancer&quot; is a clinical judgment during VIA. In OpenMRS,
 * this would be recorded as a separate observation or as a specific coded value
 * on the VIA result. We model it as a distinct observation concept.
 *
 * CIEL concept needed (not yet loaded):
 *   - CIEL 159393: Cervical cancer screening outcome
 *     or a custom concept for &quot;suspicious for cancer&quot; finding
 *
 * For now, we check for an active cervical cancer condition as a proxy.
 * When the concept is loaded, this definition will be updated to check
 * the VIA observation value directly.
 */

/*
 * @output Boolean — true if findings are suspicious for cancer
 * @pseudocode Currently uses cervical cancer diagnosis as proxy;
 *             will be refined when suspicious-for-cancer observation concept is loaded
 */
define &quot;Suspicious For Cancer&quot;:
  Common.&quot;Has Cervical Cancer Diagnosis&quot;

/*
 * =============================================================================
 * TRIAGE ROUTING — Where does the patient go next?
 * =============================================================================
 */

/*
 * @output Boolean — true if patient should proceed to treatment assessment
 * @pseudocode VIA triage positive AND not suspicious for cancer
 */
define &quot;Proceed To Treatment&quot;:
  &quot;VIA Triage Is Positive&quot;
    and not &quot;Suspicious For Cancer&quot;

/*
 * @output Boolean — true if patient should be scheduled for follow-up retest
 * @pseudocode VIA triage negative AND not suspicious for cancer
 */
define &quot;Proceed To Follow Up Retest&quot;:
  &quot;VIA Triage Is Negative&quot;
    and not &quot;Suspicious For Cancer&quot;

/*
 * @output Boolean — true if patient needs oncology referral
 */
define &quot;Needs Referral&quot;:
  &quot;Suspicious For Cancer&quot;

/*
 * =============================================================================
 * RECOMMENDED ACTION — Triage-specific guidance
 * =============================================================================
 */

/*
 * @output String — the recommended triage action
 */
define &quot;Triage Recommended Action&quot;:
  case
    when &quot;Suspicious For Cancer&quot;
      then 'Findings suspicious for invasive cancer — refer for diagnosis and staging'

    when &quot;Triage Is Indicated&quot;
      then 'Perform VIA triage assessment'

    when &quot;Proceed To Treatment&quot;
      then 'VIA positive — proceed to treatment eligibility assessment (see TreatmentDecision)'

    when &quot;Proceed To Follow Up Retest&quot;
      then 'VIA negative — schedule HPV DNA retest in '
           + ToString(Common.&quot;Post Triage Negative Retest Months&quot;)
           + ' months'

    when not Common.&quot;Most Recent HPV Test Is Positive&quot;
      then 'No triage indicated — HPV test is not positive'

    else 'Unable to determine triage recommendation'
  end

/*
 * @output String — triage status for downstream routing
 */
define &quot;Triage Status&quot;:
  case
    when &quot;Suspicious For Cancer&quot; then 'refer-oncology'
    when &quot;Triage Is Indicated&quot; then 'awaiting-triage'
    when &quot;Proceed To Treatment&quot; then 'triage-positive'
    when &quot;Proceed To Follow Up Retest&quot; then 'triage-negative'
    when not Common.&quot;Most Recent HPV Test Is Positive&quot; then 'not-indicated'
    else 'unknown'
  end

/*
 * =============================================================================
 * ALGORITHM EXTENSION POINTS
 * =============================================================================
 *
 * The following definitions are stubs for future multi-algorithm support.
 * Currently only Algorithm 5 (VIA triage) is implemented.
 *
 * Algorithm 4: HPV16/18 genotyping triage
 *   - Requires: HPV genotyping observation concepts
 *   - Logic: HPV16/18+ → treat directly; other HPV+ → VIA triage
 *
 * Algorithm 6: Colposcopy triage
 *   - Requires: Colposcopy finding observation concepts
 *   - Logic: CIN1+ → treat; normal colposcopy → retest at 12 months
 *
 * Algorithm 7: Cytology + colposcopy triage
 *   - Requires: Cytology result concepts (ASCUS, LSIL, HSIL+)
 *   - Logic: HSIL+ → colposcopy → CIN1+ → treat
 */

/*
 * @output String — which triage algorithm is active
 * @guidance Currently hardcoded to Algorithm 5; will be parameterized
 *           when multi-algorithm support is added
 */
define &quot;Active Triage Algorithm&quot;:
  'Algorithm 5 — HPV DNA + VIA Triage'
</code></pre></td></tr>
            </table>
          </td>
        </tr>
        
        
        
        
        
        <tr>
          <td colspan="2">
            <table>
              <tr><th><b>Content: </b> application/elm+json</th></tr>
              <tr><td><pre><code>Encoded data (32196 characters)</code></pre></td></tr>
            </table>
          </td>
        </tr>
        
        
    </table>
</div>
</div>
  </text>
  <url value="https://hopenahealth.com/fhir/cervical-cancer-cds/Library/CervicalCancerTriageDecision"/>
  <version value="0.1.0"/>
  <name value="CervicalCancerTriageDecision"/>
  <title value="Cervical Cancer Triage Decision Logic"/>
  <status value="draft"/>
  <experimental value="true"/>
  <type>
    <coding>
      <system value="http://terminology.hl7.org/CodeSystem/library-type"/>
      <code value="logic-library"/>
    </coding>
  </type>
  <date value="2026-04-21T19:55:49+00:00"/>
  <publisher value="Hopena Health"/>
  <contact>
    <name value="Hopena Health"/>
    <telecom>
      <system value="url"/>
      <value value="https://hopenahealth.com"/>
    </telecom>
  </contact>
  <contact>
    <name value="Dan Heslinga"/>
    <telecom>
      <system value="url"/>
      <value value="https://hopenahealth.com"/>
    </telecom>
  </contact>
  <jurisdiction>
    <coding>
      <system value="http://unstats.un.org/unsd/methods/m49/m49.htm"/>
      <code value="001"/>
    </coding>
  </jurisdiction>
  <relatedArtifact>
    <type value="depends-on"/>
    <display value="Library Common"/>
    <resource value="https://hopenahealth.com/fhir/cervical-cancer-cds/Library/CervicalCancerScreeningCommon|0.1.0"/>
  </relatedArtifact>
  <parameter>
    <name value="Patient"/>
    <use value="out"/>
    <min value="0"/>
    <max value="1"/>
    <type value="Patient"/>
  </parameter>
  <parameter>
    <name value="Triage Is Indicated"/>
    <use value="out"/>
    <min value="0"/>
    <max value="1"/>
    <type value="boolean"/>
  </parameter>
  <parameter>
    <name value="Triage Has Been Performed"/>
    <use value="out"/>
    <min value="0"/>
    <max value="1"/>
    <type value="boolean"/>
  </parameter>
  <parameter>
    <name value="VIA Triage Is Positive"/>
    <use value="out"/>
    <min value="0"/>
    <max value="1"/>
    <type value="boolean"/>
  </parameter>
  <parameter>
    <name value="VIA Triage Is Negative"/>
    <use value="out"/>
    <min value="0"/>
    <max value="1"/>
    <type value="boolean"/>
  </parameter>
  <parameter>
    <name value="Suspicious For Cancer"/>
    <use value="out"/>
    <min value="0"/>
    <max value="1"/>
    <type value="boolean"/>
  </parameter>
  <parameter>
    <name value="Proceed To Treatment"/>
    <use value="out"/>
    <min value="0"/>
    <max value="1"/>
    <type value="boolean"/>
  </parameter>
  <parameter>
    <name value="Proceed To Follow Up Retest"/>
    <use value="out"/>
    <min value="0"/>
    <max value="1"/>
    <type value="boolean"/>
  </parameter>
  <parameter>
    <name value="Needs Referral"/>
    <use value="out"/>
    <min value="0"/>
    <max value="1"/>
    <type value="boolean"/>
  </parameter>
  <parameter>
    <name value="Triage Recommended Action"/>
    <use value="out"/>
    <min value="0"/>
    <max value="1"/>
    <type value="string"/>
  </parameter>
  <parameter>
    <name value="Triage Status"/>
    <use value="out"/>
    <min value="0"/>
    <max value="1"/>
    <type value="string"/>
  </parameter>
  <parameter>
    <name value="Active Triage Algorithm"/>
    <use value="out"/>
    <min value="0"/>
    <max value="1"/>
    <type value="string"/>
  </parameter>
  <content>
    <contentType value="text/cql"/>
    <data value="LyoKICogQ2VydmljYWxDYW5jZXJUcmlhZ2VEZWNpc2lvbgogKgogKiBUcmlhZ2UgcGF0aHdheSBsb2dpYyBmb3IgSFBWLXBvc2l0aXZlIHdvbWVuLCBpbXBsZW1lbnRpbmcKICogV0hPIGd1aWRlbGluZSBBbGdvcml0aG0gNSAoSFBWIEROQSArIFZJQSB0cmlhZ2UpIHdpdGgKICogZXh0ZW5zaW9uIHBvaW50cyBmb3IgQWxnb3JpdGhtcyAzLCA0LCA2LCA3LgogKgogKiBUaGlzIGxpYnJhcnkgZGV0ZXJtaW5lczoKICogICAtIFdoZXRoZXIgdHJpYWdlIGlzIGluZGljYXRlZAogKiAgIC0gVGhlIGFwcHJvcHJpYXRlIHRyaWFnZSBtZXRob2QgZm9yIHRoZSBhY3RpdmUgYWxnb3JpdGhtCiAqICAgLSBJbnRlcnByZXRhdGlvbiBvZiB0cmlhZ2UgcmVzdWx0cwogKiAgIC0gUm91dGluZyB0byB0cmVhdG1lbnQgdnMgZm9sbG93LXVwIHZzIHJlZmVycmFsCiAqCiAqIEFsZ29yaXRobSA1IGNhc2NhZGUgYWZ0ZXIgSFBWKzoKICogICBIUFYgcG9zaXRpdmUg4oaSIFZJQSB0cmlhZ2UKICogICAgIOKUnOKUgOKUgCBWSUEgcG9zaXRpdmUg4oaSIFRyZWF0ICjihpIgVHJlYXRtZW50RGVjaXNpb24pCiAqICAgICDilJzilIDilIAgVklBIG5lZ2F0aXZlIOKGkiBSZXRlc3QgYXQgMTIvMjQgbW9udGhzICjihpIgRm9sbG93VXBEZWNpc2lvbikKICogICAgIOKUlOKUgOKUgCBTdXNwaWNpb3VzIGZvciBjYW5jZXIg4oaSIFJlZmVyIHRvIG9uY29sb2d5CiAqCiAqIFdITyBSZWNvbW1lbmRhdGlvbnMgY292ZXJlZDoKICogICBHZW5lcmFsIHBvcHVsYXRpb246IDNiIChzY3JlZW4tdHJpYWdlLXRyZWF0KSwgMTEgKHBvc3QtdHJpYWdlLW5lZ2F0aXZlIHJldGVzdCkKICogICBXTEhJVjogMjIgKHRyaWFnZSByZWNvbW1lbmRlZCksIDIzIChzY3JlZW4tdHJpYWdlLXRyZWF0KSwgMzEgKHJldGVzdCB0aW1pbmcpCiAqCiAqIEBhdXRob3IgIERhbiBIZXNsaW5nYSAvIEhvcGVuYSBIZWFsdGgKICogQHZlcnNpb24gMC4xLjAKICogQGRhdGUgICAgMjAyNi0wMy0wOAogKi8KCmxpYnJhcnkgQ2VydmljYWxDYW5jZXJUcmlhZ2VEZWNpc2lvbiB2ZXJzaW9uICcwLjEuMCcKCnVzaW5nIEZISVIgdmVyc2lvbiAnNC4wLjEnCgppbmNsdWRlIEZISVJIZWxwZXJzIHZlcnNpb24gJzQuMC4xJwppbmNsdWRlIENlcnZpY2FsQ2FuY2VyU2NyZWVuaW5nQ29tbW9uIHZlcnNpb24gJzAuMS4wJyBjYWxsZWQgQ29tbW9uCgpjb250ZXh0IFBhdGllbnQKCi8qCiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAqIFRSSUFHRSBJTkRJQ0FUSU9OCiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAqCiAqIEBndWlkYW5jZSBUcmlhZ2UgaXMgaW5kaWNhdGVkIHdoZW4gdGhlIHByaW1hcnkgSFBWIEROQSB0ZXN0IGlzIHBvc2l0aXZlLgogKiAgICAgICAgICAgSW4gQWxnb3JpdGhtIDUsIFZJQSBpcyB0aGUgdHJpYWdlIG1ldGhvZC4KICogICAgICAgICAgIEluIHNjcmVlbi1hbmQtdHJlYXQgYXBwcm9hY2hlcyAoQWxnb3JpdGhtIDIpLCBWSUEgaXMgc3RpbGwgZG9uZQogKiAgICAgICAgICAgYnV0IGZvciB0cmVhdG1lbnQgbW9kYWxpdHkgc2VsZWN0aW9uIHJhdGhlciB0aGFuIHRyaWFnZS4KICovCgovKgogKiBAb3V0cHV0IEJvb2xlYW4g4oCUIHRydWUgaWYgdHJpYWdlIGlzIGluZGljYXRlZCAoSFBWKyB3aXRob3V0IHN1YnNlcXVlbnQgdHJpYWdlKQogKiBAcHNldWRvY29kZSBIUFYgdGVzdCBwb3NpdGl2ZSBBTkQgbm8gVklBIHJlc3VsdCBhZnRlciB0aGUgSFBWIHRlc3QKICovCmRlZmluZSAiVHJpYWdlIElzIEluZGljYXRlZCI6CiAgQ29tbW9uLiJNb3N0IFJlY2VudCBIUFYgVGVzdCBJcyBQb3NpdGl2ZSIKICAgIGFuZCAoCiAgICAgIG5vdCBleGlzdHMoQ29tbW9uLiJWSUEgU2NyZWVuaW5nIFJlc3VsdHMiKQogICAgICBvciBDb21tb24uIkRhdGUgT2YgTW9zdCBSZWNlbnQgVklBIiBiZWZvcmUgQ29tbW9uLiJEYXRlIE9mIE1vc3QgUmVjZW50IEhQViBUZXN0IgogICAgKQoKLyoKICogQG91dHB1dCBCb29sZWFuIOKAlCB0cnVlIGlmIHRyaWFnZSBoYXMgYmVlbiBwZXJmb3JtZWQgKFZJQSBkb25lIGFmdGVyIEhQVisgcmVzdWx0KQogKi8KZGVmaW5lICJUcmlhZ2UgSGFzIEJlZW4gUGVyZm9ybWVkIjoKICBDb21tb24uIk1vc3QgUmVjZW50IEhQViBUZXN0IElzIFBvc2l0aXZlIgogICAgYW5kIGV4aXN0cyhDb21tb24uIlZJQSBTY3JlZW5pbmcgUmVzdWx0cyIpCiAgICBhbmQgQ29tbW9uLiJEYXRlIE9mIE1vc3QgUmVjZW50IFZJQSIgb24gb3IgYWZ0ZXIgQ29tbW9uLiJEYXRlIE9mIE1vc3QgUmVjZW50IEhQViBUZXN0IgoKLyoKICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICogVFJJQUdFIFJFU1VMVCBJTlRFUlBSRVRBVElPTgogKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogKi8KCi8qCiAqIEBvdXRwdXQgQm9vbGVhbiDigJQgdHJ1ZSBpZiBWSUEgdHJpYWdlIHdhcyBwb3NpdGl2ZQogKiBAZ3VpZGFuY2UgVklBIHBvc2l0aXZlIOKGkiBwcm9jZWVkIHRvIHRyZWF0bWVudCBhc3Nlc3NtZW50CiAqLwpkZWZpbmUgIlZJQSBUcmlhZ2UgSXMgUG9zaXRpdmUiOgogICJUcmlhZ2UgSGFzIEJlZW4gUGVyZm9ybWVkIgogICAgYW5kIENvbW1vbi4iTW9zdCBSZWNlbnQgVklBIElzIFBvc2l0aXZlIgoKLyoKICogQG91dHB1dCBCb29sZWFuIOKAlCB0cnVlIGlmIFZJQSB0cmlhZ2Ugd2FzIG5lZ2F0aXZlCiAqIEBndWlkYW5jZSBWSUEgbmVnYXRpdmUg4oaSIHNjaGVkdWxlIGZvbGxvdy11cCBIUFYgcmV0ZXN0CiAqICAgICAgICAgICBHZW5lcmFsOiAyNCBtb250aHMgKFdITyBSZWMgMTEpCiAqICAgICAgICAgICBXTEhJVjogMTIgbW9udGhzIChXSE8gUmVjIDMxKQogKi8KZGVmaW5lICJWSUEgVHJpYWdlIElzIE5lZ2F0aXZlIjoKICAiVHJpYWdlIEhhcyBCZWVuIFBlcmZvcm1lZCIKICAgIGFuZCBub3QgQ29tbW9uLiJNb3N0IFJlY2VudCBWSUEgSXMgUG9zaXRpdmUiCgovKgogKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogKiBTVVNQSUNJT1VTIEZPUiBDQU5DRVIg4oCUIFJlZmVycmFsIHBhdGh3YXkKICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICoKICogQGd1aWRhbmNlIEluIGFsbCBhbGdvcml0aG1zLCBpZiBWSUEgb3IgY29scG9zY29weSByZXZlYWxzIGZpbmRpbmdzCiAqICAgICAgICAgICBzdXNwaWNpb3VzIGZvciBpbnZhc2l2ZSBjYW5jZXIsIHRoZSBwYXRpZW50IG11c3QgYmUgcmVmZXJyZWQKICogICAgICAgICAgIGZvciBkZWZpbml0aXZlIGRpYWdub3NpcyBhbmQgc3RhZ2luZy4gVGhpcyBieXBhc3NlcyB0cmlhZ2UvdHJlYXRtZW50LgogKgogKiBOb3RlOiAiU3VzcGljaW91cyBmb3IgY2FuY2VyIiBpcyBhIGNsaW5pY2FsIGp1ZGdtZW50IGR1cmluZyBWSUEuIEluIE9wZW5NUlMsCiAqIHRoaXMgd291bGQgYmUgcmVjb3JkZWQgYXMgYSBzZXBhcmF0ZSBvYnNlcnZhdGlvbiBvciBhcyBhIHNwZWNpZmljIGNvZGVkIHZhbHVlCiAqIG9uIHRoZSBWSUEgcmVzdWx0LiBXZSBtb2RlbCBpdCBhcyBhIGRpc3RpbmN0IG9ic2VydmF0aW9uIGNvbmNlcHQuCiAqCiAqIENJRUwgY29uY2VwdCBuZWVkZWQgKG5vdCB5ZXQgbG9hZGVkKToKICogICAtIENJRUwgMTU5MzkzOiBDZXJ2aWNhbCBjYW5jZXIgc2NyZWVuaW5nIG91dGNvbWUKICogICAgIG9yIGEgY3VzdG9tIGNvbmNlcHQgZm9yICJzdXNwaWNpb3VzIGZvciBjYW5jZXIiIGZpbmRpbmcKICoKICogRm9yIG5vdywgd2UgY2hlY2sgZm9yIGFuIGFjdGl2ZSBjZXJ2aWNhbCBjYW5jZXIgY29uZGl0aW9uIGFzIGEgcHJveHkuCiAqIFdoZW4gdGhlIGNvbmNlcHQgaXMgbG9hZGVkLCB0aGlzIGRlZmluaXRpb24gd2lsbCBiZSB1cGRhdGVkIHRvIGNoZWNrCiAqIHRoZSBWSUEgb2JzZXJ2YXRpb24gdmFsdWUgZGlyZWN0bHkuCiAqLwoKLyoKICogQG91dHB1dCBCb29sZWFuIOKAlCB0cnVlIGlmIGZpbmRpbmdzIGFyZSBzdXNwaWNpb3VzIGZvciBjYW5jZXIKICogQHBzZXVkb2NvZGUgQ3VycmVudGx5IHVzZXMgY2VydmljYWwgY2FuY2VyIGRpYWdub3NpcyBhcyBwcm94eTsKICogICAgICAgICAgICAgd2lsbCBiZSByZWZpbmVkIHdoZW4gc3VzcGljaW91cy1mb3ItY2FuY2VyIG9ic2VydmF0aW9uIGNvbmNlcHQgaXMgbG9hZGVkCiAqLwpkZWZpbmUgIlN1c3BpY2lvdXMgRm9yIENhbmNlciI6CiAgQ29tbW9uLiJIYXMgQ2VydmljYWwgQ2FuY2VyIERpYWdub3NpcyIKCi8qCiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAqIFRSSUFHRSBST1VUSU5HIOKAlCBXaGVyZSBkb2VzIHRoZSBwYXRpZW50IGdvIG5leHQ/CiAqID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAqLwoKLyoKICogQG91dHB1dCBCb29sZWFuIOKAlCB0cnVlIGlmIHBhdGllbnQgc2hvdWxkIHByb2NlZWQgdG8gdHJlYXRtZW50IGFzc2Vzc21lbnQKICogQHBzZXVkb2NvZGUgVklBIHRyaWFnZSBwb3NpdGl2ZSBBTkQgbm90IHN1c3BpY2lvdXMgZm9yIGNhbmNlcgogKi8KZGVmaW5lICJQcm9jZWVkIFRvIFRyZWF0bWVudCI6CiAgIlZJQSBUcmlhZ2UgSXMgUG9zaXRpdmUiCiAgICBhbmQgbm90ICJTdXNwaWNpb3VzIEZvciBDYW5jZXIiCgovKgogKiBAb3V0cHV0IEJvb2xlYW4g4oCUIHRydWUgaWYgcGF0aWVudCBzaG91bGQgYmUgc2NoZWR1bGVkIGZvciBmb2xsb3ctdXAgcmV0ZXN0CiAqIEBwc2V1ZG9jb2RlIFZJQSB0cmlhZ2UgbmVnYXRpdmUgQU5EIG5vdCBzdXNwaWNpb3VzIGZvciBjYW5jZXIKICovCmRlZmluZSAiUHJvY2VlZCBUbyBGb2xsb3cgVXAgUmV0ZXN0IjoKICAiVklBIFRyaWFnZSBJcyBOZWdhdGl2ZSIKICAgIGFuZCBub3QgIlN1c3BpY2lvdXMgRm9yIENhbmNlciIKCi8qCiAqIEBvdXRwdXQgQm9vbGVhbiDigJQgdHJ1ZSBpZiBwYXRpZW50IG5lZWRzIG9uY29sb2d5IHJlZmVycmFsCiAqLwpkZWZpbmUgIk5lZWRzIFJlZmVycmFsIjoKICAiU3VzcGljaW91cyBGb3IgQ2FuY2VyIgoKLyoKICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICogUkVDT01NRU5ERUQgQUNUSU9OIOKAlCBUcmlhZ2Utc3BlY2lmaWMgZ3VpZGFuY2UKICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICovCgovKgogKiBAb3V0cHV0IFN0cmluZyDigJQgdGhlIHJlY29tbWVuZGVkIHRyaWFnZSBhY3Rpb24KICovCmRlZmluZSAiVHJpYWdlIFJlY29tbWVuZGVkIEFjdGlvbiI6CiAgY2FzZQogICAgd2hlbiAiU3VzcGljaW91cyBGb3IgQ2FuY2VyIgogICAgICB0aGVuICdGaW5kaW5ncyBzdXNwaWNpb3VzIGZvciBpbnZhc2l2ZSBjYW5jZXIg4oCUIHJlZmVyIGZvciBkaWFnbm9zaXMgYW5kIHN0YWdpbmcnCgogICAgd2hlbiAiVHJpYWdlIElzIEluZGljYXRlZCIKICAgICAgdGhlbiAnUGVyZm9ybSBWSUEgdHJpYWdlIGFzc2Vzc21lbnQnCgogICAgd2hlbiAiUHJvY2VlZCBUbyBUcmVhdG1lbnQiCiAgICAgIHRoZW4gJ1ZJQSBwb3NpdGl2ZSDigJQgcHJvY2VlZCB0byB0cmVhdG1lbnQgZWxpZ2liaWxpdHkgYXNzZXNzbWVudCAoc2VlIFRyZWF0bWVudERlY2lzaW9uKScKCiAgICB3aGVuICJQcm9jZWVkIFRvIEZvbGxvdyBVcCBSZXRlc3QiCiAgICAgIHRoZW4gJ1ZJQSBuZWdhdGl2ZSDigJQgc2NoZWR1bGUgSFBWIEROQSByZXRlc3QgaW4gJwogICAgICAgICAgICsgVG9TdHJpbmcoQ29tbW9uLiJQb3N0IFRyaWFnZSBOZWdhdGl2ZSBSZXRlc3QgTW9udGhzIikKICAgICAgICAgICArICcgbW9udGhzJwoKICAgIHdoZW4gbm90IENvbW1vbi4iTW9zdCBSZWNlbnQgSFBWIFRlc3QgSXMgUG9zaXRpdmUiCiAgICAgIHRoZW4gJ05vIHRyaWFnZSBpbmRpY2F0ZWQg4oCUIEhQViB0ZXN0IGlzIG5vdCBwb3NpdGl2ZScKCiAgICBlbHNlICdVbmFibGUgdG8gZGV0ZXJtaW5lIHRyaWFnZSByZWNvbW1lbmRhdGlvbicKICBlbmQKCi8qCiAqIEBvdXRwdXQgU3RyaW5nIOKAlCB0cmlhZ2Ugc3RhdHVzIGZvciBkb3duc3RyZWFtIHJvdXRpbmcKICovCmRlZmluZSAiVHJpYWdlIFN0YXR1cyI6CiAgY2FzZQogICAgd2hlbiAiU3VzcGljaW91cyBGb3IgQ2FuY2VyIiB0aGVuICdyZWZlci1vbmNvbG9neScKICAgIHdoZW4gIlRyaWFnZSBJcyBJbmRpY2F0ZWQiIHRoZW4gJ2F3YWl0aW5nLXRyaWFnZScKICAgIHdoZW4gIlByb2NlZWQgVG8gVHJlYXRtZW50IiB0aGVuICd0cmlhZ2UtcG9zaXRpdmUnCiAgICB3aGVuICJQcm9jZWVkIFRvIEZvbGxvdyBVcCBSZXRlc3QiIHRoZW4gJ3RyaWFnZS1uZWdhdGl2ZScKICAgIHdoZW4gbm90IENvbW1vbi4iTW9zdCBSZWNlbnQgSFBWIFRlc3QgSXMgUG9zaXRpdmUiIHRoZW4gJ25vdC1pbmRpY2F0ZWQnCiAgICBlbHNlICd1bmtub3duJwogIGVuZAoKLyoKICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICogQUxHT1JJVEhNIEVYVEVOU0lPTiBQT0lOVFMKICogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KICoKICogVGhlIGZvbGxvd2luZyBkZWZpbml0aW9ucyBhcmUgc3R1YnMgZm9yIGZ1dHVyZSBtdWx0aS1hbGdvcml0aG0gc3VwcG9ydC4KICogQ3VycmVudGx5IG9ubHkgQWxnb3JpdGhtIDUgKFZJQSB0cmlhZ2UpIGlzIGltcGxlbWVudGVkLgogKgogKiBBbGdvcml0aG0gNDogSFBWMTYvMTggZ2Vub3R5cGluZyB0cmlhZ2UKICogICAtIFJlcXVpcmVzOiBIUFYgZ2Vub3R5cGluZyBvYnNlcnZhdGlvbiBjb25jZXB0cwogKiAgIC0gTG9naWM6IEhQVjE2LzE4KyDihpIgdHJlYXQgZGlyZWN0bHk7IG90aGVyIEhQVisg4oaSIFZJQSB0cmlhZ2UKICoKICogQWxnb3JpdGhtIDY6IENvbHBvc2NvcHkgdHJpYWdlCiAqICAgLSBSZXF1aXJlczogQ29scG9zY29weSBmaW5kaW5nIG9ic2VydmF0aW9uIGNvbmNlcHRzCiAqICAgLSBMb2dpYzogQ0lOMSsg4oaSIHRyZWF0OyBub3JtYWwgY29scG9zY29weSDihpIgcmV0ZXN0IGF0IDEyIG1vbnRocwogKgogKiBBbGdvcml0aG0gNzogQ3l0b2xvZ3kgKyBjb2xwb3Njb3B5IHRyaWFnZQogKiAgIC0gUmVxdWlyZXM6IEN5dG9sb2d5IHJlc3VsdCBjb25jZXB0cyAoQVNDVVMsIExTSUwsIEhTSUwrKQogKiAgIC0gTG9naWM6IEhTSUwrIOKGkiBjb2xwb3Njb3B5IOKGkiBDSU4xKyDihpIgdHJlYXQKICovCgovKgogKiBAb3V0cHV0IFN0cmluZyDigJQgd2hpY2ggdHJpYWdlIGFsZ29yaXRobSBpcyBhY3RpdmUKICogQGd1aWRhbmNlIEN1cnJlbnRseSBoYXJkY29kZWQgdG8gQWxnb3JpdGhtIDU7IHdpbGwgYmUgcGFyYW1ldGVyaXplZAogKiAgICAgICAgICAgd2hlbiBtdWx0aS1hbGdvcml0aG0gc3VwcG9ydCBpcyBhZGRlZAogKi8KZGVmaW5lICJBY3RpdmUgVHJpYWdlIEFsZ29yaXRobSI6CiAgJ0FsZ29yaXRobSA1IOKAlCBIUFYgRE5BICsgVklBIFRyaWFnZScK"/>
  </content>
  <content>
    <contentType value="application/elm+json"/>
    <data value="ewogICAibGlicmFyeSIgOiB7CiAgICAgICJhbm5vdGF0aW9uIiA6IFsgewogICAgICAgICAidHJhbnNsYXRvck9wdGlvbnMiIDogIkVuYWJsZUxvY2F0b3JzLERpc2FibGVMaXN0RGVtb3Rpb24sRGlzYWJsZUxpc3RQcm9tb3Rpb24iLAogICAgICAgICAic2lnbmF0dXJlTGV2ZWwiIDogIk5vbmUiLAogICAgICAgICAidHlwZSIgOiAiQ3FsVG9FbG1JbmZvIgogICAgICB9LCB7CiAgICAgICAgICJtZXNzYWdlIiA6ICJBbiBvcGVyYW5kIGlkZW50aWZpZXIgcmVmZXJlbmNlIGlzIGhpZGluZyBhbm90aGVyIGlkZW50aWZpZXIgb2YgdGhlIHNhbWUgbmFtZS4iLAogICAgICAgICAiZXJyb3JUeXBlIiA6ICJzZW1hbnRpYyIsCiAgICAgICAgICJlcnJvclNldmVyaXR5IiA6ICJ3YXJuaW5nIiwKICAgICAgICAgInR5cGUiIDogIkNxbFRvRWxtRXJyb3IiCiAgICAgIH0sIHsKICAgICAgICAgIm1lc3NhZ2UiIDogIlRoZSBmdW5jdGlvbiBGSElSSGVscGVycy5Ub0ludGVydmFsIGhhcyBtdWx0aXBsZSBvdmVybG9hZHMgYW5kIGR1ZSB0byB0aGUgU2lnbmF0dXJlTGV2ZWwgc2V0dGluZyAoTm9uZSksIHRoZSBvdmVybG9hZCBzaWduYXR1cmUgaXMgbm90IGJlaW5nIGluY2x1ZGVkIGluIHRoZSBvdXRwdXQuIFRoaXMgbWF5IHJlc3VsdCBpbiBhbWJpZ3VvdXMgZnVuY3Rpb24gcmVzb2x1dGlvbiBhdCBydW50aW1lLCBjb25zaWRlciBzZXR0aW5nIHRoZSBTaWduYXR1cmVMZXZlbCB0byBPdmVybG9hZHMgb3IgQWxsIHRvIGVuc3VyZSB0aGF0IHRoZSBvdXRwdXQgaW5jbHVkZXMgc3VmZmljaWVudCBpbmZvcm1hdGlvbiB0byBzdXBwb3J0IGNvcnJlY3Qgb3ZlcmxvYWQgc2VsZWN0aW9uIGF0IHJ1bnRpbWUuIiwKICAgICAgICAgImVycm9yVHlwZSIgOiAic2VtYW50aWMiLAogICAgICAgICAiZXJyb3JTZXZlcml0eSIgOiAid2FybmluZyIsCiAgICAgICAgICJ0eXBlIiA6ICJDcWxUb0VsbUVycm9yIgogICAgICB9LCB7CiAgICAgICAgICJtZXNzYWdlIiA6ICJUaGUgZnVuY3Rpb24gRkhJUkhlbHBlcnMuVG9JbnRlcnZhbCBoYXMgbXVsdGlwbGUgb3ZlcmxvYWRzIGFuZCBkdWUgdG8gdGhlIFNpZ25hdHVyZUxldmVsIHNldHRpbmcgKE5vbmUpLCB0aGUgb3ZlcmxvYWQgc2lnbmF0dXJlIGlzIG5vdCBiZWluZyBpbmNsdWRlZCBpbiB0aGUgb3V0cHV0LiBUaGlzIG1heSByZXN1bHQgaW4gYW1iaWd1b3VzIGZ1bmN0aW9uIHJlc29sdXRpb24gYXQgcnVudGltZSwgY29uc2lkZXIgc2V0dGluZyB0aGUgU2lnbmF0dXJlTGV2ZWwgdG8gT3ZlcmxvYWRzIG9yIEFsbCB0byBlbnN1cmUgdGhhdCB0aGUgb3V0cHV0IGluY2x1ZGVzIHN1ZmZpY2llbnQgaW5mb3JtYXRpb24gdG8gc3VwcG9ydCBjb3JyZWN0IG92ZXJsb2FkIHNlbGVjdGlvbiBhdCBydW50aW1lLiIsCiAgICAgICAgICJlcnJvclR5cGUiIDogInNlbWFudGljIiwKICAgICAgICAgImVycm9yU2V2ZXJpdHkiIDogIndhcm5pbmciLAogICAgICAgICAidHlwZSIgOiAiQ3FsVG9FbG1FcnJvciIKICAgICAgfSwgewogICAgICAgICAibWVzc2FnZSIgOiAiQW4gb3BlcmFuZCBpZGVudGlmaWVyIHJlZmVyZW5jZSBpcyBoaWRpbmcgYW5vdGhlciBpZGVudGlmaWVyIG9mIHRoZSBzYW1lIG5hbWUuIiwKICAgICAgICAgImVycm9yVHlwZSIgOiAic2VtYW50aWMiLAogICAgICAgICAiZXJyb3JTZXZlcml0eSIgOiAid2FybmluZyIsCiAgICAgICAgICJ0eXBlIiA6ICJDcWxUb0VsbUVycm9yIgogICAgICB9LCB7CiAgICAgICAgICJtZXNzYWdlIiA6ICJBbiBvcGVyYW5kIGlkZW50aWZpZXIgcmVmZXJlbmNlIGlzIGhpZGluZyBhbm90aGVyIGlkZW50aWZpZXIgb2YgdGhlIHNhbWUgbmFtZS4iLAogICAgICAgICAiZXJyb3JUeXBlIiA6ICJzZW1hbnRpYyIsCiAgICAgICAgICJlcnJvclNldmVyaXR5IiA6ICJ3YXJuaW5nIiwKICAgICAgICAgInR5cGUiIDogIkNxbFRvRWxtRXJyb3IiCiAgICAgIH0gXSwKICAgICAgImlkZW50aWZpZXIiIDogewogICAgICAgICAiaWQiIDogIkNlcnZpY2FsQ2FuY2VyVHJpYWdlRGVjaXNpb24iLAogICAgICAgICAic3lzdGVtIiA6ICJodHRwczovL2hvcGVuYWhlYWx0aC5jb20vZmhpci9jZXJ2aWNhbC1jYW5jZXItY2RzIiwKICAgICAgICAgInZlcnNpb24iIDogIjAuMS4wIgogICAgICB9LAogICAgICAic2NoZW1hSWRlbnRpZmllciIgOiB7CiAgICAgICAgICJpZCIgOiAidXJuOmhsNy1vcmc6ZWxtIiwKICAgICAgICAgInZlcnNpb24iIDogInIxIgogICAgICB9LAogICAgICAidXNpbmdzIiA6IHsKICAgICAgICAgImRlZiIgOiBbIHsKICAgICAgICAgICAgImxvY2FsSWRlbnRpZmllciIgOiAiU3lzdGVtIiwKICAgICAgICAgICAgInVyaSIgOiAidXJuOmhsNy1vcmc6ZWxtLXR5cGVzOnIxIiwKICAgICAgICAgICAgInZlcnNpb24iIDogIjEuMC4wIiwKICAgICAgICAgICAgImFubm90YXRpb24iIDogWyBdCiAgICAgICAgIH0sIHsKICAgICAgICAgICAgImxvY2F0b3IiIDogIjMxOjEtMzE6MjYiLAogICAgICAgICAgICAibG9jYWxJZGVudGlmaWVyIiA6ICJGSElSIiwKICAgICAgICAgICAgInVyaSIgOiAiaHR0cDovL2hsNy5vcmcvZmhpciIsCiAgICAgICAgICAgICJ2ZXJzaW9uIiA6ICI0LjAuMSIsCiAgICAgICAgICAgICJhbm5vdGF0aW9uIiA6IFsgXQogICAgICAgICB9IF0KICAgICAgfSwKICAgICAgImluY2x1ZGVzIiA6IHsKICAgICAgICAgImRlZiIgOiBbIHsKICAgICAgICAgICAgImxvY2F0b3IiIDogIjMzOjEtMzM6MzUiLAogICAgICAgICAgICAibG9jYWxJZGVudGlmaWVyIiA6ICJGSElSSGVscGVycyIsCiAgICAgICAgICAgICJwYXRoIiA6ICJodHRwOi8vaGw3Lm9yZy9maGlyL0ZISVJIZWxwZXJzIiwKICAgICAgICAgICAgInZlcnNpb24iIDogIjQuMC4xIiwKICAgICAgICAgICAgImFubm90YXRpb24iIDogWyBdCiAgICAgICAgIH0sIHsKICAgICAgICAgICAgImxvY2F0b3IiIDogIjM0OjEtMzQ6NjciLAogICAgICAgICAgICAibG9jYWxJZGVudGlmaWVyIiA6ICJDb21tb24iLAogICAgICAgICAgICAicGF0aCIgOiAiaHR0cHM6Ly9ob3BlbmFoZWFsdGguY29tL2ZoaXIvY2VydmljYWwtY2FuY2VyLWNkcy9DZXJ2aWNhbENhbmNlclNjcmVlbmluZ0NvbW1vbiIsCiAgICAgICAgICAgICJ2ZXJzaW9uIiA6ICIwLjEuMCIsCiAgICAgICAgICAgICJhbm5vdGF0aW9uIiA6IFsgXQogICAgICAgICB9IF0KICAgICAgfSwKICAgICAgImNvbnRleHRzIiA6IHsKICAgICAgICAgImRlZiIgOiBbIHsKICAgICAgICAgICAgImxvY2F0b3IiIDogIjM2OjEtMzY6MTUiLAogICAgICAgICAgICAibmFtZSIgOiAiUGF0aWVudCIsCiAgICAgICAgICAgICJhbm5vdGF0aW9uIiA6IFsgXQogICAgICAgICB9IF0KICAgICAgfSwKICAgICAgInN0YXRlbWVudHMiIDogewogICAgICAgICAiZGVmIiA6IFsgewogICAgICAgICAgICAibG9jYXRvciIgOiAiMzY6MS0zNjoxNSIsCiAgICAgICAgICAgICJuYW1lIiA6ICJQYXRpZW50IiwKICAgICAgICAgICAgImNvbnRleHQiIDogIlBhdGllbnQiLAogICAgICAgICAgICAiYW5ub3RhdGlvbiIgOiBbIF0sCiAgICAgICAgICAgICJleHByZXNzaW9uIiA6IHsKICAgICAgICAgICAgICAgInR5cGUiIDogIlNpbmdsZXRvbkZyb20iLAogICAgICAgICAgICAgICAiYW5ub3RhdGlvbiIgOiBbIF0sCiAgICAgICAgICAgICAgICJzaWduYXR1cmUiIDogWyBdLAogICAgICAgICAgICAgICAib3BlcmFuZCIgOiB7CiAgICAgICAgICAgICAgICAgICJsb2NhdG9yIiA6ICIzNjoxLTM2OjE1IiwKICAgICAgICAgICAgICAgICAgImRhdGFUeXBlIiA6ICJ7aHR0cDovL2hsNy5vcmcvZmhpcn1QYXRpZW50IiwKICAgICAgICAgICAgICAgICAgInRlbXBsYXRlSWQiIDogImh0dHA6Ly9obDcub3JnL2ZoaXIvU3RydWN0dXJlRGVmaW5pdGlvbi9QYXRpZW50IiwKICAgICAgICAgICAgICAgICAgInR5cGUiIDogIlJldHJpZXZlIiwKICAgICAgICAgICAgICAgICAgImFubm90YXRpb24iIDogWyBdLAogICAgICAgICAgICAgICAgICAiaW5jbHVkZSIgOiBbIF0sCiAgICAgICAgICAgICAgICAgICJjb2RlRmlsdGVyIiA6IFsgXSwKICAgICAgICAgICAgICAgICAgImRhdGVGaWx0ZXIiIDogWyBdLAogICAgICAgICAgICAgICAgICAib3RoZXJGaWx0ZXIiIDogWyBdCiAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICB9LCB7CiAgICAgICAgICAgICJsb2NhdG9yIiA6ICI1MzoxLTU4OjUiLAogICAgICAgICAgICAibmFtZSIgOiAiVHJpYWdlIElzIEluZGljYXRlZCIsCiAgICAgICAgICAgICJjb250ZXh0IiA6ICJQYXRpZW50IiwKICAgICAgICAgICAgImFjY2Vzc0xldmVsIiA6ICJQdWJsaWMiLAogICAgICAgICAgICAiYW5ub3RhdGlvbiIgOiBbIF0sCiAgICAgICAgICAgICJleHByZXNzaW9uIiA6IHsKICAgICAgICAgICAgICAgImxvY2F0b3IiIDogIjU0OjMtNTg6NSIsCiAgICAgICAgICAgICAgICJ0eXBlIiA6ICJBbmQiLAogICAgICAgICAgICAgICAiYW5ub3RhdGlvbiIgOiBbIF0sCiAgICAgICAgICAgICAgICJzaWduYXR1cmUiIDogWyBdLAogICAgICAgICAgICAgICAib3BlcmFuZCIgOiBbIHsKICAgICAgICAgICAgICAgICAgImxvY2F0b3IiIDogIjU0OjMtNTQ6NDMiLAogICAgICAgICAgICAgICAgICAibmFtZSIgOiAiTW9zdCBSZWNlbnQgSFBWIFRlc3QgSXMgUG9zaXRpdmUiLAogICAgICAgICAgICAgICAgICAibGlicmFyeU5hbWUiIDogIkNvbW1vbiIsCiAgICAgICAgICAgICAgICAgICJ0eXBlIiA6ICJFeHByZXNzaW9uUmVmIiwKICAgICAgICAgICAgICAgICAgImFubm90YXRpb24iIDogWyBdCiAgICAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICAgImxvY2F0b3IiIDogIjU1OjktNTg6NSIsCiAgICAgICAgICAgICAgICAgICJ0eXBlIiA6ICJPciIsCiAgICAgICAgICAgICAgICAgICJhbm5vdGF0aW9uIiA6IFsgXSwKICAgICAgICAgICAgICAgICAgInNpZ25hdHVyZSIgOiBbIF0sCiAgICAgICAgICAgICAgICAgICJvcGVyYW5kIiA6IFsgewogICAgICAgICAgICAgICAgICAgICAibG9jYXRvciIgOiAiNTY6Ny01Njo0OCIsCiAgICAgICAgICAgICAgICAgICAgICJ0eXBlIiA6ICJOb3QiLAogICAgICAgICAgICAgICAgICAgICAiYW5ub3RhdGlvbiIgOiBbIF0sCiAgICAgICAgICAgICAgICAgICAgICJzaWduYXR1cmUiIDogWyBdLAogICAgICAgICAgICAgICAgICAgICAib3BlcmFuZCIgOiB7CiAgICAgICAgICAgICAgICAgICAgICAgICJsb2NhdG9yIiA6ICI1NjoxMS01Njo0OCIsCiAgICAgICAgICAgICAgICAgICAgICAgICJ0eXBlIiA6ICJFeGlzdHMiLAogICAgICAgICAgICAgICAgICAgICAgICAiYW5ub3RhdGlvbiIgOiBbIF0sCiAgICAgICAgICAgICAgICAgICAgICAgICJzaWduYXR1cmUiIDogWyBdLAogICAgICAgICAgICAgICAgICAgICAgICAib3BlcmFuZCIgOiB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICJsb2NhdG9yIiA6ICI1NjoxNy01Njo0OCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICJuYW1lIiA6ICJWSUEgU2NyZWVuaW5nIFJlc3VsdHMiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAibGlicmFyeU5hbWUiIDogIkNvbW1vbiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICJ0eXBlIiA6ICJFeHByZXNzaW9uUmVmIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgImFubm90YXRpb24iIDogWyBdCiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAgICAgICJsb2NhdG9yIiA6ICI1NzoxMC01Nzo4NiIsCiAgICAgICAgICAgICAgICAgICAgICJ0eXBlIiA6ICJCZWZvcmUiLAogICAgICAgICAgICAgICAgICAgICAiYW5ub3RhdGlvbiIgOiBbIF0sCiAgICAgICAgICAgICAgICAgICAgICJzaWduYXR1cmUiIDogWyBdLAogICAgICAgICAgICAgICAgICAgICAib3BlcmFuZCIgOiBbIHsKICAgICAgICAgICAgICAgICAgICAgICAgImxvY2F0b3IiIDogIjU3OjEwLTU3OjQxIiwKICAgICAgICAgICAgICAgICAgICAgICAgIm5hbWUiIDogIkRhdGUgT2YgTW9zdCBSZWNlbnQgVklBIiwKICAgICAgICAgICAgICAgICAgICAgICAgImxpYnJhcnlOYW1lIiA6ICJDb21tb24iLAogICAgICAgICAgICAgICAgICAgICAgICAidHlwZSIgOiAiRXhwcmVzc2lvblJlZiIsCiAgICAgICAgICAgICAgICAgICAgICAgICJhbm5vdGF0aW9uIiA6IFsgXQogICAgICAgICAgICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAgICAgICAgICJsb2NhdG9yIiA6ICI1Nzo1MC01Nzo4NiIsCiAgICAgICAgICAgICAgICAgICAgICAgICJuYW1lIiA6ICJEYXRlIE9mIE1vc3QgUmVjZW50IEhQViBUZXN0IiwKICAgICAgICAgICAgICAgICAgICAgICAgImxpYnJhcnlOYW1lIiA6ICJDb21tb24iLAogICAgICAgICAgICAgICAgICAgICAgICAidHlwZSIgOiAiRXhwcmVzc2lvblJlZiIsCiAgICAgICAgICAgICAgICAgICAgICAgICJhbm5vdGF0aW9uIiA6IFsgXQogICAgICAgICAgICAgICAgICAgICB9IF0KICAgICAgICAgICAgICAgICAgfSBdCiAgICAgICAgICAgICAgIH0gXQogICAgICAgICAgICB9CiAgICAgICAgIH0sIHsKICAgICAgICAgICAgImxvY2F0b3IiIDogIjYzOjEtNjY6OTAiLAogICAgICAgICAgICAibmFtZSIgOiAiVHJpYWdlIEhhcyBCZWVuIFBlcmZvcm1lZCIsCiAgICAgICAgICAgICJjb250ZXh0IiA6ICJQYXRpZW50IiwKICAgICAgICAgICAgImFjY2Vzc0xldmVsIiA6ICJQdWJsaWMiLAogICAgICAgICAgICAiYW5ub3RhdGlvbiIgOiBbIF0sCiAgICAgICAgICAgICJleHByZXNzaW9uIiA6IHsKICAgICAgICAgICAgICAgImxvY2F0b3IiIDogIjY0OjMtNjY6OTAiLAogICAgICAgICAgICAgICAidHlwZSIgOiAiQW5kIiwKICAgICAgICAgICAgICAgImFubm90YXRpb24iIDogWyBdLAogICAgICAgICAgICAgICAic2lnbmF0dXJlIiA6IFsgXSwKICAgICAgICAgICAgICAgIm9wZXJhbmQiIDogWyB7CiAgICAgICAgICAgICAgICAgICJsb2NhdG9yIiA6ICI2NDozLTY1OjQ2IiwKICAgICAgICAgICAgICAgICAgInR5cGUiIDogIkFuZCIsCiAgICAgICAgICAgICAgICAgICJhbm5vdGF0aW9uIiA6IFsgXSwKICAgICAgICAgICAgICAgICAgInNpZ25hdHVyZSIgOiBbIF0sCiAgICAgICAgICAgICAgICAgICJvcGVyYW5kIiA6IFsgewogICAgICAgICAgICAgICAgICAgICAibG9jYXRvciIgOiAiNjQ6My02NDo0MyIsCiAgICAgICAgICAgICAgICAgICAgICJuYW1lIiA6ICJNb3N0IFJlY2VudCBIUFYgVGVzdCBJcyBQb3NpdGl2ZSIsCiAgICAgICAgICAgICAgICAgICAgICJsaWJyYXJ5TmFtZSIgOiAiQ29tbW9uIiwKICAgICAgICAgICAgICAgICAgICAgInR5cGUiIDogIkV4cHJlc3Npb25SZWYiLAogICAgICAgICAgICAgICAgICAgICAiYW5ub3RhdGlvbiIgOiBbIF0KICAgICAgICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgICAgICAibG9jYXRvciIgOiAiNjU6OS02NTo0NiIsCiAgICAgICAgICAgICAgICAgICAgICJ0eXBlIiA6ICJFeGlzdHMiLAogICAgICAgICAgICAgICAgICAgICAiYW5ub3RhdGlvbiIgOiBbIF0sCiAgICAgICAgICAgICAgICAgICAgICJzaWduYXR1cmUiIDogWyBdLAogICAgICAgICAgICAgICAgICAgICAib3BlcmFuZCIgOiB7CiAgICAgICAgICAgICAgICAgICAgICAgICJsb2NhdG9yIiA6ICI2NToxNS02NTo0NiIsCiAgICAgICAgICAgICAgICAgICAgICAgICJuYW1lIiA6ICJWSUEgU2NyZWVuaW5nIFJlc3VsdHMiLAogICAgICAgICAgICAgICAgICAgICAgICAibGlicmFyeU5hbWUiIDogIkNvbW1vbiIsCiAgICAgICAgICAgICAgICAgICAgICAgICJ0eXBlIiA6ICJFeHByZXNzaW9uUmVmIiwKICAgICAgICAgICAgICAgICAgICAgICAgImFubm90YXRpb24iIDogWyBdCiAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgfSBdCiAgICAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICAgImxvY2F0b3IiIDogIjY2OjktNjY6OTAiLAogICAgICAgICAgICAgICAgICAidHlwZSIgOiAiU2FtZU9yQWZ0ZXIiLAogICAgICAgICAgICAgICAgICAiYW5ub3RhdGlvbiIgOiBbIF0sCiAgICAgICAgICAgICAgICAgICJzaWduYXR1cmUiIDogWyBdLAogICAgICAgICAgICAgICAgICAib3BlcmFuZCIgOiBbIHsKICAgICAgICAgICAgICAgICAgICAgImxvY2F0b3IiIDogIjY2OjktNjY6NDAiLAogICAgICAgICAgICAgICAgICAgICAibmFtZSIgOiAiRGF0ZSBPZiBNb3N0IFJlY2VudCBWSUEiLAogICAgICAgICAgICAgICAgICAgICAibGlicmFyeU5hbWUiIDogIkNvbW1vbiIsCiAgICAgICAgICAgICAgICAgICAgICJ0eXBlIiA6ICJFeHByZXNzaW9uUmVmIiwKICAgICAgICAgICAgICAgICAgICAgImFubm90YXRpb24iIDogWyBdCiAgICAgICAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICAgICAgImxvY2F0b3IiIDogIjY2OjU0LTY2OjkwIiwKICAgICAgICAgICAgICAgICAgICAgIm5hbWUiIDogIkRhdGUgT2YgTW9zdCBSZWNlbnQgSFBWIFRlc3QiLAogICAgICAgICAgICAgICAgICAgICAibGlicmFyeU5hbWUiIDogIkNvbW1vbiIsCiAgICAgICAgICAgICAgICAgICAgICJ0eXBlIiA6ICJFeHByZXNzaW9uUmVmIiwKICAgICAgICAgICAgICAgICAgICAgImFubm90YXRpb24iIDogWyBdCiAgICAgICAgICAgICAgICAgIH0gXQogICAgICAgICAgICAgICB9IF0KICAgICAgICAgICAgfQogICAgICAgICB9LCB7CiAgICAgICAgICAgICJsb2NhdG9yIiA6ICI3ODoxLTgwOjQ0IiwKICAgICAgICAgICAgIm5hbWUiIDogIlZJQSBUcmlhZ2UgSXMgUG9zaXRpdmUiLAogICAgICAgICAgICAiY29udGV4dCIgOiAiUGF0aWVudCIsCiAgICAgICAgICAgICJhY2Nlc3NMZXZlbCIgOiAiUHVibGljIiwKICAgICAgICAgICAgImFubm90YXRpb24iIDogWyBdLAogICAgICAgICAgICAiZXhwcmVzc2lvbiIgOiB7CiAgICAgICAgICAgICAgICJsb2NhdG9yIiA6ICI3OTozLTgwOjQ0IiwKICAgICAgICAgICAgICAgInR5cGUiIDogIkFuZCIsCiAgICAgICAgICAgICAgICJhbm5vdGF0aW9uIiA6IFsgXSwKICAgICAgICAgICAgICAgInNpZ25hdHVyZSIgOiBbIF0sCiAgICAgICAgICAgICAgICJvcGVyYW5kIiA6IFsgewogICAgICAgICAgICAgICAgICAibG9jYXRvciIgOiAiNzk6My03OToyOSIsCiAgICAgICAgICAgICAgICAgICJuYW1lIiA6ICJUcmlhZ2UgSGFzIEJlZW4gUGVyZm9ybWVkIiwKICAgICAgICAgICAgICAgICAgInR5cGUiIDogIkV4cHJlc3Npb25SZWYiLAogICAgICAgICAgICAgICAgICAiYW5ub3RhdGlvbiIgOiBbIF0KICAgICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgICAibG9jYXRvciIgOiAiODA6OS04MDo0NCIsCiAgICAgICAgICAgICAgICAgICJuYW1lIiA6ICJNb3N0IFJlY2VudCBWSUEgSXMgUG9zaXRpdmUiLAogICAgICAgICAgICAgICAgICAibGlicmFyeU5hbWUiIDogIkNvbW1vbiIsCiAgICAgICAgICAgICAgICAgICJ0eXBlIiA6ICJFeHByZXNzaW9uUmVmIiwKICAgICAgICAgICAgICAgICAgImFubm90YXRpb24iIDogWyBdCiAgICAgICAgICAgICAgIH0gXQogICAgICAgICAgICB9CiAgICAgICAgIH0sIHsKICAgICAgICAgICAgImxvY2F0b3IiIDogIjg4OjEtOTA6NDgiLAogICAgICAgICAgICAibmFtZSIgOiAiVklBIFRyaWFnZSBJcyBOZWdhdGl2ZSIsCiAgICAgICAgICAgICJjb250ZXh0IiA6ICJQYXRpZW50IiwKICAgICAgICAgICAgImFjY2Vzc0xldmVsIiA6ICJQdWJsaWMiLAogICAgICAgICAgICAiYW5ub3RhdGlvbiIgOiBbIF0sCiAgICAgICAgICAgICJleHByZXNzaW9uIiA6IHsKICAgICAgICAgICAgICAgImxvY2F0b3IiIDogIjg5OjMtOTA6NDgiLAogICAgICAgICAgICAgICAidHlwZSIgOiAiQW5kIiwKICAgICAgICAgICAgICAgImFubm90YXRpb24iIDogWyBdLAogICAgICAgICAgICAgICAic2lnbmF0dXJlIiA6IFsgXSwKICAgICAgICAgICAgICAgIm9wZXJhbmQiIDogWyB7CiAgICAgICAgICAgICAgICAgICJsb2NhdG9yIiA6ICI4OTozLTg5OjI5IiwKICAgICAgICAgICAgICAgICAgIm5hbWUiIDogIlRyaWFnZSBIYXMgQmVlbiBQZXJmb3JtZWQiLAogICAgICAgICAgICAgICAgICAidHlwZSIgOiAiRXhwcmVzc2lvblJlZiIsCiAgICAgICAgICAgICAgICAgICJhbm5vdGF0aW9uIiA6IFsgXQogICAgICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAgICJsb2NhdG9yIiA6ICI5MDo5LTkwOjQ4IiwKICAgICAgICAgICAgICAgICAgInR5cGUiIDogIk5vdCIsCiAgICAgICAgICAgICAgICAgICJhbm5vdGF0aW9uIiA6IFsgXSwKICAgICAgICAgICAgICAgICAgInNpZ25hdHVyZSIgOiBbIF0sCiAgICAgICAgICAgICAgICAgICJvcGVyYW5kIiA6IHsKICAgICAgICAgICAgICAgICAgICAgImxvY2F0b3IiIDogIjkwOjEzLTkwOjQ4IiwKICAgICAgICAgICAgICAgICAgICAgIm5hbWUiIDogIk1vc3QgUmVjZW50IFZJQSBJcyBQb3NpdGl2ZSIsCiAgICAgICAgICAgICAgICAgICAgICJsaWJyYXJ5TmFtZSIgOiAiQ29tbW9uIiwKICAgICAgICAgICAgICAgICAgICAgInR5cGUiIDogIkV4cHJlc3Npb25SZWYiLAogICAgICAgICAgICAgICAgICAgICAiYW5ub3RhdGlvbiIgOiBbIF0KICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICB9IF0KICAgICAgICAgICAgfQogICAgICAgICB9LCB7CiAgICAgICAgICAgICJsb2NhdG9yIiA6ICIxMTk6MS0xMjA6NDAiLAogICAgICAgICAgICAibmFtZSIgOiAiU3VzcGljaW91cyBGb3IgQ2FuY2VyIiwKICAgICAgICAgICAgImNvbnRleHQiIDogIlBhdGllbnQiLAogICAgICAgICAgICAiYWNjZXNzTGV2ZWwiIDogIlB1YmxpYyIsCiAgICAgICAgICAgICJhbm5vdGF0aW9uIiA6IFsgXSwKICAgICAgICAgICAgImV4cHJlc3Npb24iIDogewogICAgICAgICAgICAgICAibG9jYXRvciIgOiAiMTIwOjMtMTIwOjQwIiwKICAgICAgICAgICAgICAgIm5hbWUiIDogIkhhcyBDZXJ2aWNhbCBDYW5jZXIgRGlhZ25vc2lzIiwKICAgICAgICAgICAgICAgImxpYnJhcnlOYW1lIiA6ICJDb21tb24iLAogICAgICAgICAgICAgICAidHlwZSIgOiAiRXhwcmVzc2lvblJlZiIsCiAgICAgICAgICAgICAgICJhbm5vdGF0aW9uIiA6IFsgXQogICAgICAgICAgICB9CiAgICAgICAgIH0sIHsKICAgICAgICAgICAgImxvY2F0b3IiIDogIjEzMjoxLTEzNDozNSIsCiAgICAgICAgICAgICJuYW1lIiA6ICJQcm9jZWVkIFRvIFRyZWF0bWVudCIsCiAgICAgICAgICAgICJjb250ZXh0IiA6ICJQYXRpZW50IiwKICAgICAgICAgICAgImFjY2Vzc0xldmVsIiA6ICJQdWJsaWMiLAogICAgICAgICAgICAiYW5ub3RhdGlvbiIgOiBbIF0sCiAgICAgICAgICAgICJleHByZXNzaW9uIiA6IHsKICAgICAgICAgICAgICAgImxvY2F0b3IiIDogIjEzMzozLTEzNDozNSIsCiAgICAgICAgICAgICAgICJ0eXBlIiA6ICJBbmQiLAogICAgICAgICAgICAgICAiYW5ub3RhdGlvbiIgOiBbIF0sCiAgICAgICAgICAgICAgICJzaWduYXR1cmUiIDogWyBdLAogICAgICAgICAgICAgICAib3BlcmFuZCIgOiBbIHsKICAgICAgICAgICAgICAgICAgImxvY2F0b3IiIDogIjEzMzozLTEzMzoyNiIsCiAgICAgICAgICAgICAgICAgICJuYW1lIiA6ICJWSUEgVHJpYWdlIElzIFBvc2l0aXZlIiwKICAgICAgICAgICAgICAgICAgInR5cGUiIDogIkV4cHJlc3Npb25SZWYiLAogICAgICAgICAgICAgICAgICAiYW5ub3RhdGlvbiIgOiBbIF0KICAgICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgICAibG9jYXRvciIgOiAiMTM0OjktMTM0OjM1IiwKICAgICAgICAgICAgICAgICAgInR5cGUiIDogIk5vdCIsCiAgICAgICAgICAgICAgICAgICJhbm5vdGF0aW9uIiA6IFsgXSwKICAgICAgICAgICAgICAgICAgInNpZ25hdHVyZSIgOiBbIF0sCiAgICAgICAgICAgICAgICAgICJvcGVyYW5kIiA6IHsKICAgICAgICAgICAgICAgICAgICAgImxvY2F0b3IiIDogIjEzNDoxMy0xMzQ6MzUiLAogICAgICAgICAgICAgICAgICAgICAibmFtZSIgOiAiU3VzcGljaW91cyBGb3IgQ2FuY2VyIiwKICAgICAgICAgICAgICAgICAgICAgInR5cGUiIDogIkV4cHJlc3Npb25SZWYiLAogICAgICAgICAgICAgICAgICAgICAiYW5ub3RhdGlvbiIgOiBbIF0KICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICB9IF0KICAgICAgICAgICAgfQogICAgICAgICB9LCB7CiAgICAgICAgICAgICJsb2NhdG9yIiA6ICIxNDA6MS0xNDI6MzUiLAogICAgICAgICAgICAibmFtZSIgOiAiUHJvY2VlZCBUbyBGb2xsb3cgVXAgUmV0ZXN0IiwKICAgICAgICAgICAgImNvbnRleHQiIDogIlBhdGllbnQiLAogICAgICAgICAgICAiYWNjZXNzTGV2ZWwiIDogIlB1YmxpYyIsCiAgICAgICAgICAgICJhbm5vdGF0aW9uIiA6IFsgXSwKICAgICAgICAgICAgImV4cHJlc3Npb24iIDogewogICAgICAgICAgICAgICAibG9jYXRvciIgOiAiMTQxOjMtMTQyOjM1IiwKICAgICAgICAgICAgICAgInR5cGUiIDogIkFuZCIsCiAgICAgICAgICAgICAgICJhbm5vdGF0aW9uIiA6IFsgXSwKICAgICAgICAgICAgICAgInNpZ25hdHVyZSIgOiBbIF0sCiAgICAgICAgICAgICAgICJvcGVyYW5kIiA6IFsgewogICAgICAgICAgICAgICAgICAibG9jYXRvciIgOiAiMTQxOjMtMTQxOjI2IiwKICAgICAgICAgICAgICAgICAgIm5hbWUiIDogIlZJQSBUcmlhZ2UgSXMgTmVnYXRpdmUiLAogICAgICAgICAgICAgICAgICAidHlwZSIgOiAiRXhwcmVzc2lvblJlZiIsCiAgICAgICAgICAgICAgICAgICJhbm5vdGF0aW9uIiA6IFsgXQogICAgICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAgICJsb2NhdG9yIiA6ICIxNDI6OS0xNDI6MzUiLAogICAgICAgICAgICAgICAgICAidHlwZSIgOiAiTm90IiwKICAgICAgICAgICAgICAgICAgImFubm90YXRpb24iIDogWyBdLAogICAgICAgICAgICAgICAgICAic2lnbmF0dXJlIiA6IFsgXSwKICAgICAgICAgICAgICAgICAgIm9wZXJhbmQiIDogewogICAgICAgICAgICAgICAgICAgICAibG9jYXRvciIgOiAiMTQyOjEzLTE0MjozNSIsCiAgICAgICAgICAgICAgICAgICAgICJuYW1lIiA6ICJTdXNwaWNpb3VzIEZvciBDYW5jZXIiLAogICAgICAgICAgICAgICAgICAgICAidHlwZSIgOiAiRXhwcmVzc2lvblJlZiIsCiAgICAgICAgICAgICAgICAgICAgICJhbm5vdGF0aW9uIiA6IFsgXQogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgIH0gXQogICAgICAgICAgICB9CiAgICAgICAgIH0sIHsKICAgICAgICAgICAgImxvY2F0b3IiIDogIjE0NzoxLTE0ODoyNSIsCiAgICAgICAgICAgICJuYW1lIiA6ICJOZWVkcyBSZWZlcnJhbCIsCiAgICAgICAgICAgICJjb250ZXh0IiA6ICJQYXRpZW50IiwKICAgICAgICAgICAgImFjY2Vzc0xldmVsIiA6ICJQdWJsaWMiLAogICAgICAgICAgICAiYW5ub3RhdGlvbiIgOiBbIF0sCiAgICAgICAgICAgICJleHByZXNzaW9uIiA6IHsKICAgICAgICAgICAgICAgImxvY2F0b3IiIDogIjE0ODozLTE0ODoyNSIsCiAgICAgICAgICAgICAgICJuYW1lIiA6ICJTdXNwaWNpb3VzIEZvciBDYW5jZXIiLAogICAgICAgICAgICAgICAidHlwZSIgOiAiRXhwcmVzc2lvblJlZiIsCiAgICAgICAgICAgICAgICJhbm5vdGF0aW9uIiA6IFsgXQogICAgICAgICAgICB9CiAgICAgICAgIH0sIHsKICAgICAgICAgICAgImxvY2F0b3IiIDogIjE1OToxLTE3OTo1IiwKICAgICAgICAgICAgIm5hbWUiIDogIlRyaWFnZSBSZWNvbW1lbmRlZCBBY3Rpb24iLAogICAgICAgICAgICAiY29udGV4dCIgOiAiUGF0aWVudCIsCiAgICAgICAgICAgICJhY2Nlc3NMZXZlbCIgOiAiUHVibGljIiwKICAgICAgICAgICAgImFubm90YXRpb24iIDogWyBdLAogICAgICAgICAgICAiZXhwcmVzc2lvbiIgOiB7CiAgICAgICAgICAgICAgICJsb2NhdG9yIiA6ICIxNjA6My0xNzk6NSIsCiAgICAgICAgICAgICAgICJ0eXBlIiA6ICJDYXNlIiwKICAgICAgICAgICAgICAgImFubm90YXRpb24iIDogWyBdLAogICAgICAgICAgICAgICAiY2FzZUl0ZW0iIDogWyB7CiAgICAgICAgICAgICAgICAgICJsb2NhdG9yIiA6ICIxNjE6NS0xNjI6ODYiLAogICAgICAgICAgICAgICAgICAiYW5ub3RhdGlvbiIgOiBbIF0sCiAgICAgICAgICAgICAgICAgICJ3aGVuIiA6IHsKICAgICAgICAgICAgICAgICAgICAgImxvY2F0b3IiIDogIjE2MToxMC0xNjE6MzIiLAogICAgICAgICAgICAgICAgICAgICAibmFtZSIgOiAiU3VzcGljaW91cyBGb3IgQ2FuY2VyIiwKICAgICAgICAgICAgICAgICAgICAgInR5cGUiIDogIkV4cHJlc3Npb25SZWYiLAogICAgICAgICAgICAgICAgICAgICAiYW5ub3RhdGlvbiIgOiBbIF0KICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgInRoZW4iIDogewogICAgICAgICAgICAgICAgICAgICAibG9jYXRvciIgOiAiMTYyOjEyLTE2Mjo4NiIsCiAgICAgICAgICAgICAgICAgICAgICJ2YWx1ZVR5cGUiIDogInt1cm46aGw3LW9yZzplbG0tdHlwZXM6cjF9U3RyaW5nIiwKICAgICAgICAgICAgICAgICAgICAgInZhbHVlIiA6ICJGaW5kaW5ncyBzdXNwaWNpb3VzIGZvciBpbnZhc2l2ZSBjYW5jZXIg4oCUIHJlZmVyIGZvciBkaWFnbm9zaXMgYW5kIHN0YWdpbmciLAogICAgICAgICAgICAgICAgICAgICAidHlwZSIgOiAiTGl0ZXJhbCIsCiAgICAgICAgICAgICAgICAgICAgICJhbm5vdGF0aW9uIiA6IFsgXQogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICAgImxvY2F0b3IiIDogIjE2NDo1LTE2NTo0MiIsCiAgICAgICAgICAgICAgICAgICJhbm5vdGF0aW9uIiA6IFsgXSwKICAgICAgICAgICAgICAgICAgIndoZW4iIDogewogICAgICAgICAgICAgICAgICAgICAibG9jYXRvciIgOiAiMTY0OjEwLTE2NDozMCIsCiAgICAgICAgICAgICAgICAgICAgICJuYW1lIiA6ICJUcmlhZ2UgSXMgSW5kaWNhdGVkIiwKICAgICAgICAgICAgICAgICAgICAgInR5cGUiIDogIkV4cHJlc3Npb25SZWYiLAogICAgICAgICAgICAgICAgICAgICAiYW5ub3RhdGlvbiIgOiBbIF0KICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgInRoZW4iIDogewogICAgICAgICAgICAgICAgICAgICAibG9jYXRvciIgOiAiMTY1OjEyLTE2NTo0MiIsCiAgICAgICAgICAgICAgICAgICAgICJ2YWx1ZVR5cGUiIDogInt1cm46aGw3LW9yZzplbG0tdHlwZXM6cjF9U3RyaW5nIiwKICAgICAgICAgICAgICAgICAgICAgInZhbHVlIiA6ICJQZXJmb3JtIFZJQSB0cmlhZ2UgYXNzZXNzbWVudCIsCiAgICAgICAgICAgICAgICAgICAgICJ0eXBlIiA6ICJMaXRlcmFsIiwKICAgICAgICAgICAgICAgICAgICAgImFubm90YXRpb24iIDogWyBdCiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgICAibG9jYXRvciIgOiAiMTY3OjUtMTY4Ojk1IiwKICAgICAgICAgICAgICAgICAgImFubm90YXRpb24iIDogWyBdLAogICAgICAgICAgICAgICAgICAid2hlbiIgOiB7CiAgICAgICAgICAgICAgICAgICAgICJsb2NhdG9yIiA6ICIxNjc6MTAtMTY3OjMxIiwKICAgICAgICAgICAgICAgICAgICAgIm5hbWUiIDogIlByb2NlZWQgVG8gVHJlYXRtZW50IiwKICAgICAgICAgICAgICAgICAgICAgInR5cGUiIDogIkV4cHJlc3Npb25SZWYiLAogICAgICAgICAgICAgICAgICAgICAiYW5ub3RhdGlvbiIgOiBbIF0KICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgInRoZW4iIDogewogICAgICAgICAgICAgICAgICAgICAibG9jYXRvciIgOiAiMTY4OjEyLTE2ODo5NSIsCiAgICAgICAgICAgICAgICAgICAgICJ2YWx1ZVR5cGUiIDogInt1cm46aGw3LW9yZzplbG0tdHlwZXM6cjF9U3RyaW5nIiwKICAgICAgICAgICAgICAgICAgICAgInZhbHVlIiA6ICJWSUEgcG9zaXRpdmUg4oCUIHByb2NlZWQgdG8gdHJlYXRtZW50IGVsaWdpYmlsaXR5IGFzc2Vzc21lbnQgKHNlZSBUcmVhdG1lbnREZWNpc2lvbikiLAogICAgICAgICAgICAgICAgICAgICAidHlwZSIgOiAiTGl0ZXJhbCIsCiAgICAgICAgICAgICAgICAgICAgICJhbm5vdGF0aW9uIiA6IFsgXQogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICAgImxvY2F0b3IiIDogIjE3MDo1LTE3MzoyMiIsCiAgICAgICAgICAgICAgICAgICJhbm5vdGF0aW9uIiA6IFsgXSwKICAgICAgICAgICAgICAgICAgIndoZW4iIDogewogICAgICAgICAgICAgICAgICAgICAibG9jYXRvciIgOiAiMTcwOjEwLTE3MDozOCIsCiAgICAgICAgICAgICAgICAgICAgICJuYW1lIiA6ICJQcm9jZWVkIFRvIEZvbGxvdyBVcCBSZXRlc3QiLAogICAgICAgICAgICAgICAgICAgICAidHlwZSIgOiAiRXhwcmVzc2lvblJlZiIsCiAgICAgICAgICAgICAgICAgICAgICJhbm5vdGF0aW9uIiA6IFsgXQogICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAidGhlbiIgOiB7CiAgICAgICAgICAgICAgICAgICAgICJsb2NhdG9yIiA6ICIxNzE6MTItMTczOjIyIiwKICAgICAgICAgICAgICAgICAgICAgInR5cGUiIDogIkNvbmNhdGVuYXRlIiwKICAgICAgICAgICAgICAgICAgICAgImFubm90YXRpb24iIDogWyBdLAogICAgICAgICAgICAgICAgICAgICAic2lnbmF0dXJlIiA6IFsgXSwKICAgICAgICAgICAgICAgICAgICAgIm9wZXJhbmQiIDogWyB7CiAgICAgICAgICAgICAgICAgICAgICAgICJsb2NhdG9yIiA6ICIxNzE6MTItMTcyOjY2IiwKICAgICAgICAgICAgICAgICAgICAgICAgInR5cGUiIDogIkNvbmNhdGVuYXRlIiwKICAgICAgICAgICAgICAgICAgICAgICAgImFubm90YXRpb24iIDogWyBdLAogICAgICAgICAgICAgICAgICAgICAgICAic2lnbmF0dXJlIiA6IFsgXSwKICAgICAgICAgICAgICAgICAgICAgICAgIm9wZXJhbmQiIDogWyB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICJsb2NhdG9yIiA6ICIxNzE6MTItMTcxOjU1IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgInZhbHVlVHlwZSIgOiAie3VybjpobDctb3JnOmVsbS10eXBlczpyMX1TdHJpbmciLAogICAgICAgICAgICAgICAgICAgICAgICAgICAidmFsdWUiIDogIlZJQSBuZWdhdGl2ZSDigJQgc2NoZWR1bGUgSFBWIEROQSByZXRlc3QgaW4gIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgInR5cGUiIDogIkxpdGVyYWwiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAiYW5ub3RhdGlvbiIgOiBbIF0KICAgICAgICAgICAgICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgICAgICAgICAgICAibG9jYXRvciIgOiAiMTcyOjE0LTE3Mjo2NiIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICJ0eXBlIiA6ICJUb1N0cmluZyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICJhbm5vdGF0aW9uIiA6IFsgXSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgInNpZ25hdHVyZSIgOiBbIF0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICJvcGVyYW5kIiA6IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImxvY2F0b3IiIDogIjE3MjoyMy0xNzI6NjUiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAibmFtZSIgOiAiUG9zdCBUcmlhZ2UgTmVnYXRpdmUgUmV0ZXN0IE1vbnRocyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJsaWJyYXJ5TmFtZSIgOiAiQ29tbW9uIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInR5cGUiIDogIkV4cHJlc3Npb25SZWYiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiYW5ub3RhdGlvbiIgOiBbIF0KICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICB9IF0KICAgICAgICAgICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgICAgICAgICAibG9jYXRvciIgOiAiMTczOjE0LTE3MzoyMiIsCiAgICAgICAgICAgICAgICAgICAgICAgICJ2YWx1ZVR5cGUiIDogInt1cm46aGw3LW9yZzplbG0tdHlwZXM6cjF9U3RyaW5nIiwKICAgICAgICAgICAgICAgICAgICAgICAgInZhbHVlIiA6ICIgbW9udGhzIiwKICAgICAgICAgICAgICAgICAgICAgICAgInR5cGUiIDogIkxpdGVyYWwiLAogICAgICAgICAgICAgICAgICAgICAgICAiYW5ub3RhdGlvbiIgOiBbIF0KICAgICAgICAgICAgICAgICAgICAgfSBdCiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgfSwgewogICAgICAgICAgICAgICAgICAibG9jYXRvciIgOiAiMTc1OjUtMTc2OjU5IiwKICAgICAgICAgICAgICAgICAgImFubm90YXRpb24iIDogWyBdLAogICAgICAgICAgICAgICAgICAid2hlbiIgOiB7CiAgICAgICAgICAgICAgICAgICAgICJsb2NhdG9yIiA6ICIxNzU6MTAtMTc1OjU0IiwKICAgICAgICAgICAgICAgICAgICAgInR5cGUiIDogIk5vdCIsCiAgICAgICAgICAgICAgICAgICAgICJhbm5vdGF0aW9uIiA6IFsgXSwKICAgICAgICAgICAgICAgICAgICAgInNpZ25hdHVyZSIgOiBbIF0sCiAgICAgICAgICAgICAgICAgICAgICJvcGVyYW5kIiA6IHsKICAgICAgICAgICAgICAgICAgICAgICAgImxvY2F0b3IiIDogIjE3NToxNC0xNzU6NTQiLAogICAgICAgICAgICAgICAgICAgICAgICAibmFtZSIgOiAiTW9zdCBSZWNlbnQgSFBWIFRlc3QgSXMgUG9zaXRpdmUiLAogICAgICAgICAgICAgICAgICAgICAgICAibGlicmFyeU5hbWUiIDogIkNvbW1vbiIsCiAgICAgICAgICAgICAgICAgICAgICAgICJ0eXBlIiA6ICJFeHByZXNzaW9uUmVmIiwKICAgICAgICAgICAgICAgICAgICAgICAgImFubm90YXRpb24iIDogWyBdCiAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgInRoZW4iIDogewogICAgICAgICAgICAgICAgICAgICAibG9jYXRvciIgOiAiMTc2OjEyLTE3Njo1OSIsCiAgICAgICAgICAgICAgICAgICAgICJ2YWx1ZVR5cGUiIDogInt1cm46aGw3LW9yZzplbG0tdHlwZXM6cjF9U3RyaW5nIiwKICAgICAgICAgICAgICAgICAgICAgInZhbHVlIiA6ICJObyB0cmlhZ2UgaW5kaWNhdGVkIOKAlCBIUFYgdGVzdCBpcyBub3QgcG9zaXRpdmUiLAogICAgICAgICAgICAgICAgICAgICAidHlwZSIgOiAiTGl0ZXJhbCIsCiAgICAgICAgICAgICAgICAgICAgICJhbm5vdGF0aW9uIiA6IFsgXQogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgIH0gXSwKICAgICAgICAgICAgICAgImVsc2UiIDogewogICAgICAgICAgICAgICAgICAibG9jYXRvciIgOiAiMTc4OjEwLTE3ODo1MiIsCiAgICAgICAgICAgICAgICAgICJ2YWx1ZVR5cGUiIDogInt1cm46aGw3LW9yZzplbG0tdHlwZXM6cjF9U3RyaW5nIiwKICAgICAgICAgICAgICAgICAgInZhbHVlIiA6ICJVbmFibGUgdG8gZGV0ZXJtaW5lIHRyaWFnZSByZWNvbW1lbmRhdGlvbiIsCiAgICAgICAgICAgICAgICAgICJ0eXBlIiA6ICJMaXRlcmFsIiwKICAgICAgICAgICAgICAgICAgImFubm90YXRpb24iIDogWyBdCiAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICB9LCB7CiAgICAgICAgICAgICJsb2NhdG9yIiA6ICIxODQ6MS0xOTI6NSIsCiAgICAgICAgICAgICJuYW1lIiA6ICJUcmlhZ2UgU3RhdHVzIiwKICAgICAgICAgICAgImNvbnRleHQiIDogIlBhdGllbnQiLAogICAgICAgICAgICAiYWNjZXNzTGV2ZWwiIDogIlB1YmxpYyIsCiAgICAgICAgICAgICJhbm5vdGF0aW9uIiA6IFsgXSwKICAgICAgICAgICAgImV4cHJlc3Npb24iIDogewogICAgICAgICAgICAgICAibG9jYXRvciIgOiAiMTg1OjMtMTkyOjUiLAogICAgICAgICAgICAgICAidHlwZSIgOiAiQ2FzZSIsCiAgICAgICAgICAgICAgICJhbm5vdGF0aW9uIiA6IFsgXSwKICAgICAgICAgICAgICAgImNhc2VJdGVtIiA6IFsgewogICAgICAgICAgICAgICAgICAibG9jYXRvciIgOiAiMTg2OjUtMTg2OjU0IiwKICAgICAgICAgICAgICAgICAgImFubm90YXRpb24iIDogWyBdLAogICAgICAgICAgICAgICAgICAid2hlbiIgOiB7CiAgICAgICAgICAgICAgICAgICAgICJsb2NhdG9yIiA6ICIxODY6MTAtMTg2OjMyIiwKICAgICAgICAgICAgICAgICAgICAgIm5hbWUiIDogIlN1c3BpY2lvdXMgRm9yIENhbmNlciIsCiAgICAgICAgICAgICAgICAgICAgICJ0eXBlIiA6ICJFeHByZXNzaW9uUmVmIiwKICAgICAgICAgICAgICAgICAgICAgImFubm90YXRpb24iIDogWyBdCiAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICJ0aGVuIiA6IHsKICAgICAgICAgICAgICAgICAgICAgImxvY2F0b3IiIDogIjE4NjozOS0xODY6NTQiLAogICAgICAgICAgICAgICAgICAgICAidmFsdWVUeXBlIiA6ICJ7dXJuOmhsNy1vcmc6ZWxtLXR5cGVzOnIxfVN0cmluZyIsCiAgICAgICAgICAgICAgICAgICAgICJ2YWx1ZSIgOiAicmVmZXItb25jb2xvZ3kiLAogICAgICAgICAgICAgICAgICAgICAidHlwZSIgOiAiTGl0ZXJhbCIsCiAgICAgICAgICAgICAgICAgICAgICJhbm5vdGF0aW9uIiA6IFsgXQogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICAgImxvY2F0b3IiIDogIjE4Nzo1LTE4Nzo1MyIsCiAgICAgICAgICAgICAgICAgICJhbm5vdGF0aW9uIiA6IFsgXSwKICAgICAgICAgICAgICAgICAgIndoZW4iIDogewogICAgICAgICAgICAgICAgICAgICAibG9jYXRvciIgOiAiMTg3OjEwLTE4NzozMCIsCiAgICAgICAgICAgICAgICAgICAgICJuYW1lIiA6ICJUcmlhZ2UgSXMgSW5kaWNhdGVkIiwKICAgICAgICAgICAgICAgICAgICAgInR5cGUiIDogIkV4cHJlc3Npb25SZWYiLAogICAgICAgICAgICAgICAgICAgICAiYW5ub3RhdGlvbiIgOiBbIF0KICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgInRoZW4iIDogewogICAgICAgICAgICAgICAgICAgICAibG9jYXRvciIgOiAiMTg3OjM3LTE4Nzo1MyIsCiAgICAgICAgICAgICAgICAgICAgICJ2YWx1ZVR5cGUiIDogInt1cm46aGw3LW9yZzplbG0tdHlwZXM6cjF9U3RyaW5nIiwKICAgICAgICAgICAgICAgICAgICAgInZhbHVlIiA6ICJhd2FpdGluZy10cmlhZ2UiLAogICAgICAgICAgICAgICAgICAgICAidHlwZSIgOiAiTGl0ZXJhbCIsCiAgICAgICAgICAgICAgICAgICAgICJhbm5vdGF0aW9uIiA6IFsgXQogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICAgImxvY2F0b3IiIDogIjE4ODo1LTE4ODo1NCIsCiAgICAgICAgICAgICAgICAgICJhbm5vdGF0aW9uIiA6IFsgXSwKICAgICAgICAgICAgICAgICAgIndoZW4iIDogewogICAgICAgICAgICAgICAgICAgICAibG9jYXRvciIgOiAiMTg4OjEwLTE4ODozMSIsCiAgICAgICAgICAgICAgICAgICAgICJuYW1lIiA6ICJQcm9jZWVkIFRvIFRyZWF0bWVudCIsCiAgICAgICAgICAgICAgICAgICAgICJ0eXBlIiA6ICJFeHByZXNzaW9uUmVmIiwKICAgICAgICAgICAgICAgICAgICAgImFubm90YXRpb24iIDogWyBdCiAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICJ0aGVuIiA6IHsKICAgICAgICAgICAgICAgICAgICAgImxvY2F0b3IiIDogIjE4ODozOC0xODg6NTQiLAogICAgICAgICAgICAgICAgICAgICAidmFsdWVUeXBlIiA6ICJ7dXJuOmhsNy1vcmc6ZWxtLXR5cGVzOnIxfVN0cmluZyIsCiAgICAgICAgICAgICAgICAgICAgICJ2YWx1ZSIgOiAidHJpYWdlLXBvc2l0aXZlIiwKICAgICAgICAgICAgICAgICAgICAgInR5cGUiIDogIkxpdGVyYWwiLAogICAgICAgICAgICAgICAgICAgICAiYW5ub3RhdGlvbiIgOiBbIF0KICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICB9LCB7CiAgICAgICAgICAgICAgICAgICJsb2NhdG9yIiA6ICIxODk6NS0xODk6NjEiLAogICAgICAgICAgICAgICAgICAiYW5ub3RhdGlvbiIgOiBbIF0sCiAgICAgICAgICAgICAgICAgICJ3aGVuIiA6IHsKICAgICAgICAgICAgICAgICAgICAgImxvY2F0b3IiIDogIjE4OToxMC0xODk6MzgiLAogICAgICAgICAgICAgICAgICAgICAibmFtZSIgOiAiUHJvY2VlZCBUbyBGb2xsb3cgVXAgUmV0ZXN0IiwKICAgICAgICAgICAgICAgICAgICAgInR5cGUiIDogIkV4cHJlc3Npb25SZWYiLAogICAgICAgICAgICAgICAgICAgICAiYW5ub3RhdGlvbiIgOiBbIF0KICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgInRoZW4iIDogewogICAgICAgICAgICAgICAgICAgICAibG9jYXRvciIgOiAiMTg5OjQ1LTE4OTo2MSIsCiAgICAgICAgICAgICAgICAgICAgICJ2YWx1ZVR5cGUiIDogInt1cm46aGw3LW9yZzplbG0tdHlwZXM6cjF9U3RyaW5nIiwKICAgICAgICAgICAgICAgICAgICAgInZhbHVlIiA6ICJ0cmlhZ2UtbmVnYXRpdmUiLAogICAgICAgICAgICAgICAgICAgICAidHlwZSIgOiAiTGl0ZXJhbCIsCiAgICAgICAgICAgICAgICAgICAgICJhbm5vdGF0aW9uIiA6IFsgXQogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgIH0sIHsKICAgICAgICAgICAgICAgICAgImxvY2F0b3IiIDogIjE5MDo1LTE5MDo3NSIsCiAgICAgICAgICAgICAgICAgICJhbm5vdGF0aW9uIiA6IFsgXSwKICAgICAgICAgICAgICAgICAgIndoZW4iIDogewogICAgICAgICAgICAgICAgICAgICAibG9jYXRvciIgOiAiMTkwOjEwLTE5MDo1NCIsCiAgICAgICAgICAgICAgICAgICAgICJ0eXBlIiA6ICJOb3QiLAogICAgICAgICAgICAgICAgICAgICAiYW5ub3RhdGlvbiIgOiBbIF0sCiAgICAgICAgICAgICAgICAgICAgICJzaWduYXR1cmUiIDogWyBdLAogICAgICAgICAgICAgICAgICAgICAib3BlcmFuZCIgOiB7CiAgICAgICAgICAgICAgICAgICAgICAgICJsb2NhdG9yIiA6ICIxOTA6MTQtMTkwOjU0IiwKICAgICAgICAgICAgICAgICAgICAgICAgIm5hbWUiIDogIk1vc3QgUmVjZW50IEhQViBUZXN0IElzIFBvc2l0aXZlIiwKICAgICAgICAgICAgICAgICAgICAgICAgImxpYnJhcnlOYW1lIiA6ICJDb21tb24iLAogICAgICAgICAgICAgICAgICAgICAgICAidHlwZSIgOiAiRXhwcmVzc2lvblJlZiIsCiAgICAgICAgICAgICAgICAgICAgICAgICJhbm5vdGF0aW9uIiA6IFsgXQogICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICJ0aGVuIiA6IHsKICAgICAgICAgICAgICAgICAgICAgImxvY2F0b3IiIDogIjE5MDo2MS0xOTA6NzUiLAogICAgICAgICAgICAgICAgICAgICAidmFsdWVUeXBlIiA6ICJ7dXJuOmhsNy1vcmc6ZWxtLXR5cGVzOnIxfVN0cmluZyIsCiAgICAgICAgICAgICAgICAgICAgICJ2YWx1ZSIgOiAibm90LWluZGljYXRlZCIsCiAgICAgICAgICAgICAgICAgICAgICJ0eXBlIiA6ICJMaXRlcmFsIiwKICAgICAgICAgICAgICAgICAgICAgImFubm90YXRpb24iIDogWyBdCiAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgfSBdLAogICAgICAgICAgICAgICAiZWxzZSIgOiB7CiAgICAgICAgICAgICAgICAgICJsb2NhdG9yIiA6ICIxOTE6MTAtMTkxOjE4IiwKICAgICAgICAgICAgICAgICAgInZhbHVlVHlwZSIgOiAie3VybjpobDctb3JnOmVsbS10eXBlczpyMX1TdHJpbmciLAogICAgICAgICAgICAgICAgICAidmFsdWUiIDogInVua25vd24iLAogICAgICAgICAgICAgICAgICAidHlwZSIgOiAiTGl0ZXJhbCIsCiAgICAgICAgICAgICAgICAgICJhbm5vdGF0aW9uIiA6IFsgXQogICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgfSwgewogICAgICAgICAgICAibG9jYXRvciIgOiAiMjIwOjEtMjIxOjM4IiwKICAgICAgICAgICAgIm5hbWUiIDogIkFjdGl2ZSBUcmlhZ2UgQWxnb3JpdGhtIiwKICAgICAgICAgICAgImNvbnRleHQiIDogIlBhdGllbnQiLAogICAgICAgICAgICAiYWNjZXNzTGV2ZWwiIDogIlB1YmxpYyIsCiAgICAgICAgICAgICJhbm5vdGF0aW9uIiA6IFsgXSwKICAgICAgICAgICAgImV4cHJlc3Npb24iIDogewogICAgICAgICAgICAgICAibG9jYXRvciIgOiAiMjIxOjMtMjIxOjM4IiwKICAgICAgICAgICAgICAgInZhbHVlVHlwZSIgOiAie3VybjpobDctb3JnOmVsbS10eXBlczpyMX1TdHJpbmciLAogICAgICAgICAgICAgICAidmFsdWUiIDogIkFsZ29yaXRobSA1IOKAlCBIUFYgRE5BICsgVklBIFRyaWFnZSIsCiAgICAgICAgICAgICAgICJ0eXBlIiA6ICJMaXRlcmFsIiwKICAgICAgICAgICAgICAgImFubm90YXRpb24iIDogWyBdCiAgICAgICAgICAgIH0KICAgICAgICAgfSBdCiAgICAgIH0KICAgfQp9"/>
  </content>
</Library>