WHO Immunization Implementation Guide
1.0.0 - release

WHO Immunization Implementation Guide, published by WHO. This guide is not an authorized publication; it is the continuous build for version 1.0.0 built by the FHIR (HL7® FHIR® Standard) CI Build. This version is based on the current content of https://github.com/WorldHealthOrganization/smart-immunizations/tree/132/merge and changes regularly. See the Directory of published versions

: IMMZD2DTRotavirusElements - XML Representation

Draft as of 2026-03-31

Raw xml | Download


<Library xmlns="http://hl7.org/fhir">
  <id value="IMMZD2DTRotavirusElements"/>
  <meta>
    <profile
             value="http://hl7.org/fhir/uv/crmi/StructureDefinition/crmi-shareablelibrary"/>
    <profile
             value="http://hl7.org/fhir/uv/crmi/StructureDefinition/crmi-publishablelibrary"/>
    <profile
             value="http://hl7.org/fhir/uv/cql/StructureDefinition/cql-library"/>
    <profile
             value="http://hl7.org/fhir/uv/cql/StructureDefinition/cql-module"/>
  </meta>
  <text>
    <status value="extensions"/>
    <div xmlns="http://www.w3.org/1999/xhtml">
<div>
    <table class="grid dict">
        
        
        <tr>
            <th scope="row"><b>Title: </b></th>
            <td style="padding-left: 4px;">IMMZD2DTRotavirusElements</td>
        </tr>
        

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

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

        
        <tr>
            <th scope="row"><b>Url: </b></th>
            <td style="padding-left: 4px;"><a href="Library-IMMZD2DTRotavirusElements.html">IMMZD2DTRotavirusElements</a></td>
        </tr>
        

        

        

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

        

        
        <tr>
            <th scope="row"><b>Type: </b></th>
            <td style="padding-left: 4px;">
                
                    
                        
                        <p style="margin-bottom: 5px;">
                            <b>system: </b> <span><a href="http://terminology.hl7.org/7.1.0/CodeSystem-library-type.html">http://terminology.hl7.org/CodeSystem/library-type</a></span>
                        </p>
                        
                        
                        <p style="margin-bottom: 5px;">
                            <b>code: </b> <span>logic-library</span>
                        </p>
                        
                        
                    
                
                
            </td>
        </tr>
        

        

        
        <tr>
            <th scope="row"><b>Date: </b></th>
            <td style="padding-left: 4px;">2026-03-31 13:54:17+0000</td>
        </tr>
        

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

        
        <tr>
            <th scope="row"><b>Description: </b></th>
            <td style="padding-left: 4px;"><div><p>This library defines context-independent elements for Rotavirus used throughout the Immunization CPG</p>
</div></td>
        </tr>
        

        

        

        

        

        

        

        

        

        

        

        
        <tr>
            <th scope="row"><b>Related Artifacts: </b></th>
            <td style="padding-left: 4px;">
                
                
                
                <p><b>Dependencies</b></p>
                <ul>
                  
                    <li><a href="Library-WHOConcepts.html">WHOConcepts</a></li>
                  
                    <li><a href="Library-WHOCommon.html">WHOCommon</a></li>
                  
                    <li><a href="Library-WHOElements.html">WHOElements</a></li>
                  
                    <li><a href="Library-IMMZCommon.html">IMMZCommon</a></li>
                  
                    <li><a href="Library-IMMZConcepts.html">IMMZConcepts</a></li>
                  
                    <li><a href="Library-IMMZElements.html">IMMZElements</a></li>
                  
                </ul>
                
                
                
                
                
            </td>
        </tr>
        

        
        <tr>
          <th scope="row"><b>Parameters: </b></th>
          <td style="padding-left: 4px;">
            <table class="grid-dict">
              <tr><th><b>Name</b></th><th><b>Type</b></th><th><b>Min</b></th><th><b>Max</b></th><th><b>In/Out</b></th></tr>
              
                <tr><th>Patient</th><th>Patient</th><th>0</th><th>1</th><th>Out</th></tr>
              
                <tr><th>Rotavirus Doses Administered to Patient</th><th>Immunization</th><th>0</th><th>*</th><th>Out</th></tr>
              
                <tr><th>Rotavirus Primary Series Doses Administered to Patient</th><th>Immunization</th><th>0</th><th>*</th><th>Out</th></tr>
              
                <tr><th>Number of Rotavirus Primary Series Doses Administered</th><th>integer</th><th>0</th><th>1</th><th>Out</th></tr>
              
                <tr><th>Client's age is less than 6 weeks</th><th>boolean</th><th>0</th><th>1</th><th>Out</th></tr>
              
                <tr><th>No rotavirus primary series doses were administered</th><th>boolean</th><th>0</th><th>1</th><th>Out</th></tr>
              
                <tr><th>Client's age is between 6 weeks and 24 months</th><th>boolean</th><th>0</th><th>1</th><th>Out</th></tr>
              
                <tr><th>No live vaccine was administered in the last 4 weeks</th><th>boolean</th><th>0</th><th>1</th><th>Out</th></tr>
              
                <tr><th>Live vaccine was administered in the last 4 weeks</th><th>boolean</th><th>0</th><th>1</th><th>Out</th></tr>
              
                <tr><th>One rotavirus primary series dose was administered</th><th>boolean</th><th>0</th><th>1</th><th>Out</th></tr>
              
                <tr><th>Two rotavirus primary series doses were administered</th><th>boolean</th><th>0</th><th>1</th><th>Out</th></tr>
              
                <tr><th>Brand of First Dose</th><th>CodeableConcept</th><th>0</th><th>1</th><th>Out</th></tr>
              
                <tr><th>Brand of Second Dose</th><th>CodeableConcept</th><th>0</th><th>1</th><th>Out</th></tr>
              
                <tr><th>The series administered to the client contains the same product</th><th>boolean</th><th>0</th><th>1</th><th>Out</th></tr>
              
                <tr><th>The series administered to the client is a mixed series or a series with unknown vaccine products</th><th>boolean</th><th>0</th><th>1</th><th>Out</th></tr>
              
                <tr><th>Live vaccines was administered in the last 4 weeks</th><th>boolean</th><th>0</th><th>1</th><th>Out</th></tr>
              
                <tr><th>No live vaccine was administered in last 4 weeks</th><th>boolean</th><th>0</th><th>1</th><th>Out</th></tr>
              
                <tr><th>The series contain more than two doses</th><th>boolean</th><th>0</th><th>1</th><th>Out</th></tr>
              
                <tr><th>Live vaccine was administered in last 4 weeks</th><th>boolean</th><th>0</th><th>1</th><th>Out</th></tr>
              
                <tr><th>The series contain less than or equal to two doses</th><th>boolean</th><th>0</th><th>1</th><th>Out</th></tr>
              
                <tr><th>Three rotavirus primary series doses were administered</th><th>boolean</th><th>0</th><th>1</th><th>Out</th></tr>
              
                <tr><th>Client's age is more than 24 months</th><th>boolean</th><th>0</th><th>1</th><th>Out</th></tr>
              
                <tr><th>Date of Latest Rotavirus Dose</th><th>date</th><th>0</th><th>1</th><th>Out</th></tr>
              
            </table>
          </td>
        </tr>
        

        

        
        
        <tr>
          <td colspan="2">
            <table>
              <tr><th><a id="cql-content"><b>Content: </b></a> text/cql</th></tr>
              <tr><td><pre><code class="language-cql">
/*
  * Library: IMMZD2DTRotavirusElements
  */
library IMMZD2DTRotavirusElements

using FHIR version '4.0.1'
include FHIRHelpers version '4.0.1'

include WHOConcepts
include WHOCommon called WC
include WHOElements called WE

include IMMZCommon called Common
include IMMZConcepts called Concepts
include IMMZElements called Elements


context Patient

/*
@internal: Rotavirus containing Doses Administered to Patient
*/
define &quot;Rotavirus Doses Administered to Patient&quot;:
  Elements.&quot;Doses Administered to Patient&quot; I
  where
    I.vaccineCode in Concepts.&quot;Rotavirus vaccines&quot;

/*
@internal: Rotavirus containing Doses Administered to Patient that are in the Primary series
*/
define &quot;Rotavirus Primary Series Doses Administered to Patient&quot;:
  &quot;Rotavirus Doses Administered to Patient&quot;.seriesPrimary()

/*
@internal: Number of Rotavirus Primary Series doses
*/
define &quot;Number of Rotavirus Primary Series Doses Administered&quot;:
  Count(&quot;Rotavirus Primary Series Doses Administered to Patient&quot;)

/*
@input: Client's age is less than 6 weeks
@pseudocode: 'Today's date – &quot;Date of birth&quot; &lt; 6 weeks
@code: Client's age is less than 6 weeks-41
@decision: IMMZ.D2.DT.Rotavirus
*/
define &quot;Client's age is less than 6 weeks&quot;:
  Elements.&quot;Current Patient Age In Weeks&quot; &lt; 6

/*
@input: No rotavirus primary series doses were administered
@pseudocode: Count of vaccines administered (where &quot;Vaccine type&quot; = &quot;Rotavirus vaccines&quot; and &quot;Type of dose&quot; = &quot;Primary series&quot;) = 0
@code: No rotavirus primary series doses were administered-118
@decision: IMMZ.D2.DT.Rotavirus
*/
define &quot;No rotavirus primary series doses were administered&quot;:
  &quot;Number of Rotavirus Primary Series Doses Administered&quot; = 0

/*
@input: Client's age is between 6 weeks and 24 months
@pseudocode: 6 weeks ≤ Today's date – &quot;Date of birth&quot; &lt; 24 months
@code: Client's age is between 6 weeks and 24 months-52
@decision: IMMZ.D2.DT.Rotavirus
*/
define &quot;Client's age is between 6 weeks and 24 months&quot;:
  6 &lt;= Elements.&quot;Current Patient Age In Weeks&quot;
  and Elements.&quot;Current Patient Age In Months&quot; &lt; 24

/*
@input: No live vaccine was administered in the last 4 weeks
@pseudocode: Today's date - latest &quot;Date and time of vaccination&quot; (where &quot;Live vaccine&quot; = TRUE) ≥ 4 weeks
@code: No live vaccine was administered in the last 4 weeks-92
@decision: IMMZ.D2.DT.Rotavirus
*/
define &quot;No live vaccine was administered in the last 4 weeks&quot;:
  Elements.&quot;No live vaccine was administered in the last 4 weeks&quot;

/*
@input: Live vaccine was administered in the last 4 weeks
@pseudocode: Today's date - latest &quot;Date and time of vaccination&quot; (where &quot;Live vaccine&quot; = TRUE) &lt; 4 weeks
@code: Live vaccine was administered in the last 4 weeks-92
@decision: IMMZ.D2.DT.Rotavirus
*/
define &quot;Live vaccine was administered in the last 4 weeks&quot;:
  Elements.&quot;Live vaccine was administered in the last 4 weeks&quot;

/*
@input: One rotavirus primary series dose was administered
@pseudocode: Count of vaccines administered (where &quot;Vaccine type&quot; = &quot;Rotavirus vaccines&quot; and &quot;Type of dose&quot; = &quot;Primary series&quot;) = 1
@code: One rotavirus primary series dose was administered-118
@decision: IMMZ.D2.DT.Rotavirus
*/
define &quot;One rotavirus primary series dose was administered&quot;:
  &quot;Number of Rotavirus Primary Series Doses Administered&quot; = 1

/*
@input: Two rotavirus primary series doses were administered
@pseudocode: Count of vaccines administered (where &quot;Vaccine type&quot; = &quot;Rotavirus vaccines&quot; and &quot;Type of dose&quot; = &quot;Primary series&quot;) = 2
@code: Two rotavirus primary series doses were administered-118
@decision: IMMZ.D2.DT.Rotavirus
*/
define &quot;Two rotavirus primary series doses were administered&quot;:
  &quot;Number of Rotavirus Primary Series Doses Administered&quot; = 2

/*
@input: The series administered to the client is a mixed series or a series with unknown vaccine products
@pseudocode: &quot;Vaccine brand&quot; (where &quot;Vaccine type&quot; = &quot;Rotavirus vaccines&quot; AND &quot;Dose number&quot; = 1) ≠ &quot;Vaccine brand&quot; (where &quot;Vaccine type&quot; = &quot;Rotavirus vaccines&quot; AND &quot;Dose number&quot; = 2)
@code: The series administered to the client is a mixed series or a series with unknown vaccine products-169
@decision: IMMZ.D2.DT.Rotavirus
*/
define &quot;The series administered to the client is a mixed series or a series with unknown vaccine products&quot;:
  not &quot;The series administered to the client contains the same product&quot;

/*
@input: Live vaccines was administered in the last 4 weeks
@pseudocode: Today's date - latest &quot;Date and time of vaccination&quot; (where &quot;Live vaccine&quot; = TRUE) &lt; 4 weeks
@code: Live vaccines was administered in the last 4 weeks-92
@decision: IMMZ.D2.DT.Rotavirus
*/
define &quot;Live vaccines was administered in the last 4 weeks&quot;:
  Elements.&quot;Live vaccine was administered in the last 4 weeks&quot;

/*
@input: No live vaccine was administered in last 4 weeks
@pseudocode: Today's date - latest &quot;Date and time of vaccination&quot; (where &quot;Live vaccine&quot; = TRUE) ≥ 4 weeks
@code: No live vaccine was administered in last 4 weeks-92
@decision: IMMZ.D2.DT.Rotavirus
*/
define &quot;No live vaccine was administered in last 4 weeks&quot;:
  Elements.&quot;No live vaccine was administered in the last 4 weeks&quot;

/*
@input: The series administered to the client contains the same product
@pseudocode: &quot;Vaccine brand&quot; (where &quot;Vaccine type&quot; = &quot;Rotavirus vaccines&quot; AND &quot;Dose number&quot; = 1) = &quot;Vaccine brand&quot; (where &quot;Vaccine type&quot; = &quot;Rotavirus vaccines&quot; AND &quot;Dose number&quot; = 2)
@code: The series administered to the client contains the same product-169
@decision: IMMZ.D2.DT.Rotavirus
*/
define &quot;The series administered to the client contains the same product&quot;:
  &quot;Brand of First Dose&quot; is not null and
  &quot;Brand of First Dose&quot; ~ &quot;Brand of Second Dose&quot;

/*
@input: The series contain more than two doses
@pseudocode: &quot;Total doses in series&quot; &gt; 2
@code: The series contain more than two doses-27
@decision: IMMZ.D2.DT.Rotavirus
*/
define &quot;The series contain more than two doses&quot;:
  ToInteger(&quot;Rotavirus Doses Administered to Patient&quot;.mostRecent().seriesDoses()) &gt; 2

/*
@input: Live vaccine was administered in last 4 weeks
@pseudocode: Today's date - latest &quot;Date and time of vaccination&quot; (where &quot;Live vaccine&quot; = TRUE) &lt; 4 weeks
@code: Live vaccine was administered in last 4 weeks-92
@decision: IMMZ.D2.DT.Rotavirus
*/
define &quot;Live vaccine was administered in last 4 weeks&quot;:
  Elements.&quot;Live vaccine was administered in the last 4 weeks&quot;

/*
@input: The series contain less than or equal to two doses
@pseudocode: &quot;Total doses in series&quot; ≤ 2
@code: The series contain less than or equal to two doses-27
@decision: IMMZ.D2.DT.Rotavirus
*/
define &quot;The series contain less than or equal to two doses&quot;:
  ToInteger(&quot;Rotavirus Doses Administered to Patient&quot;.mostRecent().seriesDoses()) &lt;= 2

/*
@input: Three rotavirus primary series doses were administered
@pseudocode: Count of vaccines administered (where &quot;Vaccine type&quot; = &quot;Rotavirus vaccines&quot; and &quot;Type of dose&quot; = &quot;Primary series&quot;) = 3
@code: Three rotavirus primary series doses were administered-118
@decision: IMMZ.D2.DT.Rotavirus
*/
define &quot;Three rotavirus primary series doses were administered&quot;:
  &quot;Number of Rotavirus Primary Series Doses Administered&quot; = 3

/*
@input: Client's age is more than 24 months
@pseudocode: &quot;Date of birth&quot; &gt; 24 months
@code: Client's age is more than 24 months-27
@decision: IMMZ.D2.DT.Rotavirus
*/
define &quot;Client's age is more than 24 months&quot;:
  Elements.&quot;Current Patient Age In Months&quot; &gt;= 24

/*
@internal: Date of Latest Rotavirus Dose
*/
define &quot;Date of Latest Rotavirus Dose&quot;:
  date from start of &quot;Rotavirus Doses Administered to Patient&quot;.mostRecent().occurrence.toInterval()

/*
@internal: Brand of First Dose
*/
define &quot;Brand of First Dose&quot;:
  First(&quot;Rotavirus Doses Administered to Patient&quot;.getDose('1')).brand()

/*
@internal: Brand of Second Dose
*/
define &quot;Brand of Second Dose&quot;:
  First(&quot;Rotavirus Doses Administered to Patient&quot;.getDose('2')).brand()
</code></pre></td></tr>
            </table>
          </td>
        </tr>
        
        
        
    </table>
</div>
</div>
  </text>
  <extension
             url="http://hl7.org/fhir/StructureDefinition/cqf-knowledgeCapability">
    <valueCode value="computable"/>
  </extension>
  <url
       value="http://smart.who.int/immunizations/Library/IMMZD2DTRotavirusElements"/>
  <version value="1.0.0"/>
  <name value="IMMZD2DTRotavirusElements"/>
  <title value="IMMZD2DTRotavirusElements"/>
  <status value="draft"/>
  <experimental value="false"/>
  <type>
    <coding>
      <system value="http://terminology.hl7.org/CodeSystem/library-type"/>
      <code value="logic-library"/>
    </coding>
  </type>
  <date value="2026-03-31T13:54:17+00:00"/>
  <publisher value="WHO"/>
  <contact>
    <name value="WHO"/>
    <telecom>
      <system value="url"/>
      <value value="http://who.int"/>
    </telecom>
  </contact>
  <description
               value="This library defines context-independent elements for Rotavirus used throughout the Immunization CPG"/>
  <relatedArtifact>
    <type value="depends-on"/>
    <display value="Library WHOConcepts"/>
    <resource value="http://smart.who.int/immunizations/Library/WHOConcepts"/>
  </relatedArtifact>
  <relatedArtifact>
    <type value="depends-on"/>
    <display value="Library WC"/>
    <resource value="http://smart.who.int/immunizations/Library/WHOCommon"/>
  </relatedArtifact>
  <relatedArtifact>
    <type value="depends-on"/>
    <display value="Library WE"/>
    <resource value="http://smart.who.int/immunizations/Library/WHOElements"/>
  </relatedArtifact>
  <relatedArtifact>
    <type value="depends-on"/>
    <display value="Library Common"/>
    <resource value="http://smart.who.int/immunizations/Library/IMMZCommon"/>
  </relatedArtifact>
  <relatedArtifact>
    <type value="depends-on"/>
    <display value="Library Concepts"/>
    <resource
              value="http://smart.who.int/immunizations/Library/IMMZConcepts"/>
  </relatedArtifact>
  <relatedArtifact>
    <type value="depends-on"/>
    <display value="Library Elements"/>
    <resource
              value="http://smart.who.int/immunizations/Library/IMMZElements"/>
  </relatedArtifact>
  <parameter>
    <name value="Patient"/>
    <use value="out"/>
    <min value="0"/>
    <max value="1"/>
    <type value="Patient"/>
  </parameter>
  <parameter>
    <name value="Rotavirus Doses Administered to Patient"/>
    <use value="out"/>
    <min value="0"/>
    <max value="*"/>
    <type value="Immunization"/>
  </parameter>
  <parameter>
    <name value="Rotavirus Primary Series Doses Administered to Patient"/>
    <use value="out"/>
    <min value="0"/>
    <max value="*"/>
    <type value="Immunization"/>
  </parameter>
  <parameter>
    <name value="Number of Rotavirus Primary Series Doses Administered"/>
    <use value="out"/>
    <min value="0"/>
    <max value="1"/>
    <type value="integer"/>
  </parameter>
  <parameter>
    <name value="Client's age is less than 6 weeks"/>
    <use value="out"/>
    <min value="0"/>
    <max value="1"/>
    <type value="boolean"/>
  </parameter>
  <parameter>
    <name value="No rotavirus primary series doses were administered"/>
    <use value="out"/>
    <min value="0"/>
    <max value="1"/>
    <type value="boolean"/>
  </parameter>
  <parameter>
    <name value="Client's age is between 6 weeks and 24 months"/>
    <use value="out"/>
    <min value="0"/>
    <max value="1"/>
    <type value="boolean"/>
  </parameter>
  <parameter>
    <name value="No live vaccine was administered in the last 4 weeks"/>
    <use value="out"/>
    <min value="0"/>
    <max value="1"/>
    <type value="boolean"/>
  </parameter>
  <parameter>
    <name value="Live vaccine was administered in the last 4 weeks"/>
    <use value="out"/>
    <min value="0"/>
    <max value="1"/>
    <type value="boolean"/>
  </parameter>
  <parameter>
    <name value="One rotavirus primary series dose was administered"/>
    <use value="out"/>
    <min value="0"/>
    <max value="1"/>
    <type value="boolean"/>
  </parameter>
  <parameter>
    <name value="Two rotavirus primary series doses were administered"/>
    <use value="out"/>
    <min value="0"/>
    <max value="1"/>
    <type value="boolean"/>
  </parameter>
  <parameter>
    <name value="Brand of First Dose"/>
    <use value="out"/>
    <min value="0"/>
    <max value="1"/>
    <type value="CodeableConcept"/>
  </parameter>
  <parameter>
    <name value="Brand of Second Dose"/>
    <use value="out"/>
    <min value="0"/>
    <max value="1"/>
    <type value="CodeableConcept"/>
  </parameter>
  <parameter>
    <name
          value="The series administered to the client contains the same product"/>
    <use value="out"/>
    <min value="0"/>
    <max value="1"/>
    <type value="boolean"/>
  </parameter>
  <parameter>
    <name
          value="The series administered to the client is a mixed series or a series with unknown vaccine products"/>
    <use value="out"/>
    <min value="0"/>
    <max value="1"/>
    <type value="boolean"/>
  </parameter>
  <parameter>
    <name value="Live vaccines was administered in the last 4 weeks"/>
    <use value="out"/>
    <min value="0"/>
    <max value="1"/>
    <type value="boolean"/>
  </parameter>
  <parameter>
    <name value="No live vaccine was administered in last 4 weeks"/>
    <use value="out"/>
    <min value="0"/>
    <max value="1"/>
    <type value="boolean"/>
  </parameter>
  <parameter>
    <name value="The series contain more than two doses"/>
    <use value="out"/>
    <min value="0"/>
    <max value="1"/>
    <type value="boolean"/>
  </parameter>
  <parameter>
    <name value="Live vaccine was administered in last 4 weeks"/>
    <use value="out"/>
    <min value="0"/>
    <max value="1"/>
    <type value="boolean"/>
  </parameter>
  <parameter>
    <name value="The series contain less than or equal to two doses"/>
    <use value="out"/>
    <min value="0"/>
    <max value="1"/>
    <type value="boolean"/>
  </parameter>
  <parameter>
    <name value="Three rotavirus primary series doses were administered"/>
    <use value="out"/>
    <min value="0"/>
    <max value="1"/>
    <type value="boolean"/>
  </parameter>
  <parameter>
    <name value="Client's age is more than 24 months"/>
    <use value="out"/>
    <min value="0"/>
    <max value="1"/>
    <type value="boolean"/>
  </parameter>
  <parameter>
    <name value="Date of Latest Rotavirus Dose"/>
    <use value="out"/>
    <min value="0"/>
    <max value="1"/>
    <type value="date"/>
  </parameter>
  <content>
    <contentType value="text/cql"/>
    <data
          value="Ci8qCiAgKiBMaWJyYXJ5OiBJTU1aRDJEVFJvdGF2aXJ1c0VsZW1lbnRzCiAgKi8KbGlicmFyeSBJTU1aRDJEVFJvdGF2aXJ1c0VsZW1lbnRzCgp1c2luZyBGSElSIHZlcnNpb24gJzQuMC4xJwppbmNsdWRlIEZISVJIZWxwZXJzIHZlcnNpb24gJzQuMC4xJwoKaW5jbHVkZSBXSE9Db25jZXB0cwppbmNsdWRlIFdIT0NvbW1vbiBjYWxsZWQgV0MKaW5jbHVkZSBXSE9FbGVtZW50cyBjYWxsZWQgV0UKCmluY2x1ZGUgSU1NWkNvbW1vbiBjYWxsZWQgQ29tbW9uCmluY2x1ZGUgSU1NWkNvbmNlcHRzIGNhbGxlZCBDb25jZXB0cwppbmNsdWRlIElNTVpFbGVtZW50cyBjYWxsZWQgRWxlbWVudHMKCgpjb250ZXh0IFBhdGllbnQKCi8qCkBpbnRlcm5hbDogUm90YXZpcnVzIGNvbnRhaW5pbmcgRG9zZXMgQWRtaW5pc3RlcmVkIHRvIFBhdGllbnQKKi8KZGVmaW5lICJSb3RhdmlydXMgRG9zZXMgQWRtaW5pc3RlcmVkIHRvIFBhdGllbnQiOgogIEVsZW1lbnRzLiJEb3NlcyBBZG1pbmlzdGVyZWQgdG8gUGF0aWVudCIgSQogIHdoZXJlCiAgICBJLnZhY2NpbmVDb2RlIGluIENvbmNlcHRzLiJSb3RhdmlydXMgdmFjY2luZXMiCgovKgpAaW50ZXJuYWw6IFJvdGF2aXJ1cyBjb250YWluaW5nIERvc2VzIEFkbWluaXN0ZXJlZCB0byBQYXRpZW50IHRoYXQgYXJlIGluIHRoZSBQcmltYXJ5IHNlcmllcwoqLwpkZWZpbmUgIlJvdGF2aXJ1cyBQcmltYXJ5IFNlcmllcyBEb3NlcyBBZG1pbmlzdGVyZWQgdG8gUGF0aWVudCI6CiAgIlJvdGF2aXJ1cyBEb3NlcyBBZG1pbmlzdGVyZWQgdG8gUGF0aWVudCIuc2VyaWVzUHJpbWFyeSgpCgovKgpAaW50ZXJuYWw6IE51bWJlciBvZiBSb3RhdmlydXMgUHJpbWFyeSBTZXJpZXMgZG9zZXMKKi8KZGVmaW5lICJOdW1iZXIgb2YgUm90YXZpcnVzIFByaW1hcnkgU2VyaWVzIERvc2VzIEFkbWluaXN0ZXJlZCI6CiAgQ291bnQoIlJvdGF2aXJ1cyBQcmltYXJ5IFNlcmllcyBEb3NlcyBBZG1pbmlzdGVyZWQgdG8gUGF0aWVudCIpCgovKgpAaW5wdXQ6IENsaWVudCdzIGFnZSBpcyBsZXNzIHRoYW4gNiB3ZWVrcwpAcHNldWRvY29kZTogJ1RvZGF5J3MgZGF0ZSDigJMgIkRhdGUgb2YgYmlydGgiIDwgNiB3ZWVrcwpAY29kZTogQ2xpZW50J3MgYWdlIGlzIGxlc3MgdGhhbiA2IHdlZWtzLTQxCkBkZWNpc2lvbjogSU1NWi5EMi5EVC5Sb3RhdmlydXMKKi8KZGVmaW5lICJDbGllbnQncyBhZ2UgaXMgbGVzcyB0aGFuIDYgd2Vla3MiOgogIEVsZW1lbnRzLiJDdXJyZW50IFBhdGllbnQgQWdlIEluIFdlZWtzIiA8IDYKCi8qCkBpbnB1dDogTm8gcm90YXZpcnVzIHByaW1hcnkgc2VyaWVzIGRvc2VzIHdlcmUgYWRtaW5pc3RlcmVkCkBwc2V1ZG9jb2RlOiBDb3VudCBvZiB2YWNjaW5lcyBhZG1pbmlzdGVyZWQgKHdoZXJlICJWYWNjaW5lIHR5cGUiID0gIlJvdGF2aXJ1cyB2YWNjaW5lcyIgYW5kICJUeXBlIG9mIGRvc2UiID0gIlByaW1hcnkgc2VyaWVzIikgPSAwCkBjb2RlOiBObyByb3RhdmlydXMgcHJpbWFyeSBzZXJpZXMgZG9zZXMgd2VyZSBhZG1pbmlzdGVyZWQtMTE4CkBkZWNpc2lvbjogSU1NWi5EMi5EVC5Sb3RhdmlydXMKKi8KZGVmaW5lICJObyByb3RhdmlydXMgcHJpbWFyeSBzZXJpZXMgZG9zZXMgd2VyZSBhZG1pbmlzdGVyZWQiOgogICJOdW1iZXIgb2YgUm90YXZpcnVzIFByaW1hcnkgU2VyaWVzIERvc2VzIEFkbWluaXN0ZXJlZCIgPSAwCgovKgpAaW5wdXQ6IENsaWVudCdzIGFnZSBpcyBiZXR3ZWVuIDYgd2Vla3MgYW5kIDI0IG1vbnRocwpAcHNldWRvY29kZTogNiB3ZWVrcyDiiaQgVG9kYXkncyBkYXRlIOKAkyAiRGF0ZSBvZiBiaXJ0aCIgPCAyNCBtb250aHMKQGNvZGU6IENsaWVudCdzIGFnZSBpcyBiZXR3ZWVuIDYgd2Vla3MgYW5kIDI0IG1vbnRocy01MgpAZGVjaXNpb246IElNTVouRDIuRFQuUm90YXZpcnVzCiovCmRlZmluZSAiQ2xpZW50J3MgYWdlIGlzIGJldHdlZW4gNiB3ZWVrcyBhbmQgMjQgbW9udGhzIjoKICA2IDw9IEVsZW1lbnRzLiJDdXJyZW50IFBhdGllbnQgQWdlIEluIFdlZWtzIgogIGFuZCBFbGVtZW50cy4iQ3VycmVudCBQYXRpZW50IEFnZSBJbiBNb250aHMiIDwgMjQKCi8qCkBpbnB1dDogTm8gbGl2ZSB2YWNjaW5lIHdhcyBhZG1pbmlzdGVyZWQgaW4gdGhlIGxhc3QgNCB3ZWVrcwpAcHNldWRvY29kZTogVG9kYXkncyBkYXRlIC0gbGF0ZXN0ICJEYXRlIGFuZCB0aW1lIG9mIHZhY2NpbmF0aW9uIiAod2hlcmUgIkxpdmUgdmFjY2luZSIgPSBUUlVFKSDiiaUgNCB3ZWVrcwpAY29kZTogTm8gbGl2ZSB2YWNjaW5lIHdhcyBhZG1pbmlzdGVyZWQgaW4gdGhlIGxhc3QgNCB3ZWVrcy05MgpAZGVjaXNpb246IElNTVouRDIuRFQuUm90YXZpcnVzCiovCmRlZmluZSAiTm8gbGl2ZSB2YWNjaW5lIHdhcyBhZG1pbmlzdGVyZWQgaW4gdGhlIGxhc3QgNCB3ZWVrcyI6CiAgRWxlbWVudHMuIk5vIGxpdmUgdmFjY2luZSB3YXMgYWRtaW5pc3RlcmVkIGluIHRoZSBsYXN0IDQgd2Vla3MiCgovKgpAaW5wdXQ6IExpdmUgdmFjY2luZSB3YXMgYWRtaW5pc3RlcmVkIGluIHRoZSBsYXN0IDQgd2Vla3MKQHBzZXVkb2NvZGU6IFRvZGF5J3MgZGF0ZSAtIGxhdGVzdCAiRGF0ZSBhbmQgdGltZSBvZiB2YWNjaW5hdGlvbiIgKHdoZXJlICJMaXZlIHZhY2NpbmUiID0gVFJVRSkgPCA0IHdlZWtzCkBjb2RlOiBMaXZlIHZhY2NpbmUgd2FzIGFkbWluaXN0ZXJlZCBpbiB0aGUgbGFzdCA0IHdlZWtzLTkyCkBkZWNpc2lvbjogSU1NWi5EMi5EVC5Sb3RhdmlydXMKKi8KZGVmaW5lICJMaXZlIHZhY2NpbmUgd2FzIGFkbWluaXN0ZXJlZCBpbiB0aGUgbGFzdCA0IHdlZWtzIjoKICBFbGVtZW50cy4iTGl2ZSB2YWNjaW5lIHdhcyBhZG1pbmlzdGVyZWQgaW4gdGhlIGxhc3QgNCB3ZWVrcyIKCi8qCkBpbnB1dDogT25lIHJvdGF2aXJ1cyBwcmltYXJ5IHNlcmllcyBkb3NlIHdhcyBhZG1pbmlzdGVyZWQKQHBzZXVkb2NvZGU6IENvdW50IG9mIHZhY2NpbmVzIGFkbWluaXN0ZXJlZCAod2hlcmUgIlZhY2NpbmUgdHlwZSIgPSAiUm90YXZpcnVzIHZhY2NpbmVzIiBhbmQgIlR5cGUgb2YgZG9zZSIgPSAiUHJpbWFyeSBzZXJpZXMiKSA9IDEKQGNvZGU6IE9uZSByb3RhdmlydXMgcHJpbWFyeSBzZXJpZXMgZG9zZSB3YXMgYWRtaW5pc3RlcmVkLTExOApAZGVjaXNpb246IElNTVouRDIuRFQuUm90YXZpcnVzCiovCmRlZmluZSAiT25lIHJvdGF2aXJ1cyBwcmltYXJ5IHNlcmllcyBkb3NlIHdhcyBhZG1pbmlzdGVyZWQiOgogICJOdW1iZXIgb2YgUm90YXZpcnVzIFByaW1hcnkgU2VyaWVzIERvc2VzIEFkbWluaXN0ZXJlZCIgPSAxCgovKgpAaW5wdXQ6IFR3byByb3RhdmlydXMgcHJpbWFyeSBzZXJpZXMgZG9zZXMgd2VyZSBhZG1pbmlzdGVyZWQKQHBzZXVkb2NvZGU6IENvdW50IG9mIHZhY2NpbmVzIGFkbWluaXN0ZXJlZCAod2hlcmUgIlZhY2NpbmUgdHlwZSIgPSAiUm90YXZpcnVzIHZhY2NpbmVzIiBhbmQgIlR5cGUgb2YgZG9zZSIgPSAiUHJpbWFyeSBzZXJpZXMiKSA9IDIKQGNvZGU6IFR3byByb3RhdmlydXMgcHJpbWFyeSBzZXJpZXMgZG9zZXMgd2VyZSBhZG1pbmlzdGVyZWQtMTE4CkBkZWNpc2lvbjogSU1NWi5EMi5EVC5Sb3RhdmlydXMKKi8KZGVmaW5lICJUd28gcm90YXZpcnVzIHByaW1hcnkgc2VyaWVzIGRvc2VzIHdlcmUgYWRtaW5pc3RlcmVkIjoKICAiTnVtYmVyIG9mIFJvdGF2aXJ1cyBQcmltYXJ5IFNlcmllcyBEb3NlcyBBZG1pbmlzdGVyZWQiID0gMgoKLyoKQGlucHV0OiBUaGUgc2VyaWVzIGFkbWluaXN0ZXJlZCB0byB0aGUgY2xpZW50IGlzIGEgbWl4ZWQgc2VyaWVzIG9yIGEgc2VyaWVzIHdpdGggdW5rbm93biB2YWNjaW5lIHByb2R1Y3RzCkBwc2V1ZG9jb2RlOiAiVmFjY2luZSBicmFuZCIgKHdoZXJlICJWYWNjaW5lIHR5cGUiID0gIlJvdGF2aXJ1cyB2YWNjaW5lcyIgQU5EICJEb3NlIG51bWJlciIgPSAxKSDiiaAgIlZhY2NpbmUgYnJhbmQiICh3aGVyZSAiVmFjY2luZSB0eXBlIiA9ICJSb3RhdmlydXMgdmFjY2luZXMiIEFORCAiRG9zZSBudW1iZXIiID0gMikKQGNvZGU6IFRoZSBzZXJpZXMgYWRtaW5pc3RlcmVkIHRvIHRoZSBjbGllbnQgaXMgYSBtaXhlZCBzZXJpZXMgb3IgYSBzZXJpZXMgd2l0aCB1bmtub3duIHZhY2NpbmUgcHJvZHVjdHMtMTY5CkBkZWNpc2lvbjogSU1NWi5EMi5EVC5Sb3RhdmlydXMKKi8KZGVmaW5lICJUaGUgc2VyaWVzIGFkbWluaXN0ZXJlZCB0byB0aGUgY2xpZW50IGlzIGEgbWl4ZWQgc2VyaWVzIG9yIGEgc2VyaWVzIHdpdGggdW5rbm93biB2YWNjaW5lIHByb2R1Y3RzIjoKICBub3QgIlRoZSBzZXJpZXMgYWRtaW5pc3RlcmVkIHRvIHRoZSBjbGllbnQgY29udGFpbnMgdGhlIHNhbWUgcHJvZHVjdCIKCi8qCkBpbnB1dDogTGl2ZSB2YWNjaW5lcyB3YXMgYWRtaW5pc3RlcmVkIGluIHRoZSBsYXN0IDQgd2Vla3MKQHBzZXVkb2NvZGU6IFRvZGF5J3MgZGF0ZSAtIGxhdGVzdCAiRGF0ZSBhbmQgdGltZSBvZiB2YWNjaW5hdGlvbiIgKHdoZXJlICJMaXZlIHZhY2NpbmUiID0gVFJVRSkgPCA0IHdlZWtzCkBjb2RlOiBMaXZlIHZhY2NpbmVzIHdhcyBhZG1pbmlzdGVyZWQgaW4gdGhlIGxhc3QgNCB3ZWVrcy05MgpAZGVjaXNpb246IElNTVouRDIuRFQuUm90YXZpcnVzCiovCmRlZmluZSAiTGl2ZSB2YWNjaW5lcyB3YXMgYWRtaW5pc3RlcmVkIGluIHRoZSBsYXN0IDQgd2Vla3MiOgogIEVsZW1lbnRzLiJMaXZlIHZhY2NpbmUgd2FzIGFkbWluaXN0ZXJlZCBpbiB0aGUgbGFzdCA0IHdlZWtzIgoKLyoKQGlucHV0OiBObyBsaXZlIHZhY2NpbmUgd2FzIGFkbWluaXN0ZXJlZCBpbiBsYXN0IDQgd2Vla3MKQHBzZXVkb2NvZGU6IFRvZGF5J3MgZGF0ZSAtIGxhdGVzdCAiRGF0ZSBhbmQgdGltZSBvZiB2YWNjaW5hdGlvbiIgKHdoZXJlICJMaXZlIHZhY2NpbmUiID0gVFJVRSkg4omlIDQgd2Vla3MKQGNvZGU6IE5vIGxpdmUgdmFjY2luZSB3YXMgYWRtaW5pc3RlcmVkIGluIGxhc3QgNCB3ZWVrcy05MgpAZGVjaXNpb246IElNTVouRDIuRFQuUm90YXZpcnVzCiovCmRlZmluZSAiTm8gbGl2ZSB2YWNjaW5lIHdhcyBhZG1pbmlzdGVyZWQgaW4gbGFzdCA0IHdlZWtzIjoKICBFbGVtZW50cy4iTm8gbGl2ZSB2YWNjaW5lIHdhcyBhZG1pbmlzdGVyZWQgaW4gdGhlIGxhc3QgNCB3ZWVrcyIKCi8qCkBpbnB1dDogVGhlIHNlcmllcyBhZG1pbmlzdGVyZWQgdG8gdGhlIGNsaWVudCBjb250YWlucyB0aGUgc2FtZSBwcm9kdWN0CkBwc2V1ZG9jb2RlOiAiVmFjY2luZSBicmFuZCIgKHdoZXJlICJWYWNjaW5lIHR5cGUiID0gIlJvdGF2aXJ1cyB2YWNjaW5lcyIgQU5EICJEb3NlIG51bWJlciIgPSAxKSA9ICJWYWNjaW5lIGJyYW5kIiAod2hlcmUgIlZhY2NpbmUgdHlwZSIgPSAiUm90YXZpcnVzIHZhY2NpbmVzIiBBTkQgIkRvc2UgbnVtYmVyIiA9IDIpCkBjb2RlOiBUaGUgc2VyaWVzIGFkbWluaXN0ZXJlZCB0byB0aGUgY2xpZW50IGNvbnRhaW5zIHRoZSBzYW1lIHByb2R1Y3QtMTY5CkBkZWNpc2lvbjogSU1NWi5EMi5EVC5Sb3RhdmlydXMKKi8KZGVmaW5lICJUaGUgc2VyaWVzIGFkbWluaXN0ZXJlZCB0byB0aGUgY2xpZW50IGNvbnRhaW5zIHRoZSBzYW1lIHByb2R1Y3QiOgogICJCcmFuZCBvZiBGaXJzdCBEb3NlIiBpcyBub3QgbnVsbCBhbmQKICAiQnJhbmQgb2YgRmlyc3QgRG9zZSIgfiAiQnJhbmQgb2YgU2Vjb25kIERvc2UiCgovKgpAaW5wdXQ6IFRoZSBzZXJpZXMgY29udGFpbiBtb3JlIHRoYW4gdHdvIGRvc2VzCkBwc2V1ZG9jb2RlOiAiVG90YWwgZG9zZXMgaW4gc2VyaWVzIiA+IDIKQGNvZGU6IFRoZSBzZXJpZXMgY29udGFpbiBtb3JlIHRoYW4gdHdvIGRvc2VzLTI3CkBkZWNpc2lvbjogSU1NWi5EMi5EVC5Sb3RhdmlydXMKKi8KZGVmaW5lICJUaGUgc2VyaWVzIGNvbnRhaW4gbW9yZSB0aGFuIHR3byBkb3NlcyI6CiAgVG9JbnRlZ2VyKCJSb3RhdmlydXMgRG9zZXMgQWRtaW5pc3RlcmVkIHRvIFBhdGllbnQiLm1vc3RSZWNlbnQoKS5zZXJpZXNEb3NlcygpKSA+IDIKCi8qCkBpbnB1dDogTGl2ZSB2YWNjaW5lIHdhcyBhZG1pbmlzdGVyZWQgaW4gbGFzdCA0IHdlZWtzCkBwc2V1ZG9jb2RlOiBUb2RheSdzIGRhdGUgLSBsYXRlc3QgIkRhdGUgYW5kIHRpbWUgb2YgdmFjY2luYXRpb24iICh3aGVyZSAiTGl2ZSB2YWNjaW5lIiA9IFRSVUUpIDwgNCB3ZWVrcwpAY29kZTogTGl2ZSB2YWNjaW5lIHdhcyBhZG1pbmlzdGVyZWQgaW4gbGFzdCA0IHdlZWtzLTkyCkBkZWNpc2lvbjogSU1NWi5EMi5EVC5Sb3RhdmlydXMKKi8KZGVmaW5lICJMaXZlIHZhY2NpbmUgd2FzIGFkbWluaXN0ZXJlZCBpbiBsYXN0IDQgd2Vla3MiOgogIEVsZW1lbnRzLiJMaXZlIHZhY2NpbmUgd2FzIGFkbWluaXN0ZXJlZCBpbiB0aGUgbGFzdCA0IHdlZWtzIgoKLyoKQGlucHV0OiBUaGUgc2VyaWVzIGNvbnRhaW4gbGVzcyB0aGFuIG9yIGVxdWFsIHRvIHR3byBkb3NlcwpAcHNldWRvY29kZTogIlRvdGFsIGRvc2VzIGluIHNlcmllcyIg4omkIDIKQGNvZGU6IFRoZSBzZXJpZXMgY29udGFpbiBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gdHdvIGRvc2VzLTI3CkBkZWNpc2lvbjogSU1NWi5EMi5EVC5Sb3RhdmlydXMKKi8KZGVmaW5lICJUaGUgc2VyaWVzIGNvbnRhaW4gbGVzcyB0aGFuIG9yIGVxdWFsIHRvIHR3byBkb3NlcyI6CiAgVG9JbnRlZ2VyKCJSb3RhdmlydXMgRG9zZXMgQWRtaW5pc3RlcmVkIHRvIFBhdGllbnQiLm1vc3RSZWNlbnQoKS5zZXJpZXNEb3NlcygpKSA8PSAyCgovKgpAaW5wdXQ6IFRocmVlIHJvdGF2aXJ1cyBwcmltYXJ5IHNlcmllcyBkb3NlcyB3ZXJlIGFkbWluaXN0ZXJlZApAcHNldWRvY29kZTogQ291bnQgb2YgdmFjY2luZXMgYWRtaW5pc3RlcmVkICh3aGVyZSAiVmFjY2luZSB0eXBlIiA9ICJSb3RhdmlydXMgdmFjY2luZXMiIGFuZCAiVHlwZSBvZiBkb3NlIiA9ICJQcmltYXJ5IHNlcmllcyIpID0gMwpAY29kZTogVGhyZWUgcm90YXZpcnVzIHByaW1hcnkgc2VyaWVzIGRvc2VzIHdlcmUgYWRtaW5pc3RlcmVkLTExOApAZGVjaXNpb246IElNTVouRDIuRFQuUm90YXZpcnVzCiovCmRlZmluZSAiVGhyZWUgcm90YXZpcnVzIHByaW1hcnkgc2VyaWVzIGRvc2VzIHdlcmUgYWRtaW5pc3RlcmVkIjoKICAiTnVtYmVyIG9mIFJvdGF2aXJ1cyBQcmltYXJ5IFNlcmllcyBEb3NlcyBBZG1pbmlzdGVyZWQiID0gMwoKLyoKQGlucHV0OiBDbGllbnQncyBhZ2UgaXMgbW9yZSB0aGFuIDI0IG1vbnRocwpAcHNldWRvY29kZTogIkRhdGUgb2YgYmlydGgiID4gMjQgbW9udGhzCkBjb2RlOiBDbGllbnQncyBhZ2UgaXMgbW9yZSB0aGFuIDI0IG1vbnRocy0yNwpAZGVjaXNpb246IElNTVouRDIuRFQuUm90YXZpcnVzCiovCmRlZmluZSAiQ2xpZW50J3MgYWdlIGlzIG1vcmUgdGhhbiAyNCBtb250aHMiOgogIEVsZW1lbnRzLiJDdXJyZW50IFBhdGllbnQgQWdlIEluIE1vbnRocyIgPj0gMjQKCi8qCkBpbnRlcm5hbDogRGF0ZSBvZiBMYXRlc3QgUm90YXZpcnVzIERvc2UKKi8KZGVmaW5lICJEYXRlIG9mIExhdGVzdCBSb3RhdmlydXMgRG9zZSI6CiAgZGF0ZSBmcm9tIHN0YXJ0IG9mICJSb3RhdmlydXMgRG9zZXMgQWRtaW5pc3RlcmVkIHRvIFBhdGllbnQiLm1vc3RSZWNlbnQoKS5vY2N1cnJlbmNlLnRvSW50ZXJ2YWwoKQoKLyoKQGludGVybmFsOiBCcmFuZCBvZiBGaXJzdCBEb3NlCiovCmRlZmluZSAiQnJhbmQgb2YgRmlyc3QgRG9zZSI6CiAgRmlyc3QoIlJvdGF2aXJ1cyBEb3NlcyBBZG1pbmlzdGVyZWQgdG8gUGF0aWVudCIuZ2V0RG9zZSgnMScpKS5icmFuZCgpCgovKgpAaW50ZXJuYWw6IEJyYW5kIG9mIFNlY29uZCBEb3NlCiovCmRlZmluZSAiQnJhbmQgb2YgU2Vjb25kIERvc2UiOgogIEZpcnN0KCJSb3RhdmlydXMgRG9zZXMgQWRtaW5pc3RlcmVkIHRvIFBhdGllbnQiLmdldERvc2UoJzInKSkuYnJhbmQoKQo="/>
  </content>
</Library>