WHO SMART Guidelines - HIV
0.4.3 - ci-build

WHO SMART Guidelines - HIV - Local Development build (v0.4.3) built by the FHIR (HL7® FHIR® Standard) Build Tools. See the Directory of published versions

: HIV.IND.14 Logic - XML Representation

Draft as of 2025-02-07

Raw xml | Download


<Library xmlns="http://hl7.org/fhir">
  <id value="HIVIND14Logic"/>
  <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;">HIV.IND.14 Logic</td>
        </tr>
        

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

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

        
        <tr>
            <th scope="row"><b>Url: </b></th>
            <td style="padding-left: 4px;"><a href="Library-HIVIND14Logic.html">HIV.IND.14 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/6.0.2/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;">2025-02-07 14:15:45+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>% of OAMT recipients receiving a maintenance dose greater than or equal to the recommended minimum dose</p>
</div></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: HIV.IND.14 Logic
 * Ref No: PRV.14
 * Short Name: OAMT minimum dose
 *
 * Definition: % of OAMT recipients receiving a maintenance dose greater than or equal to the recommended minimum dose
 *
 * Numerator: Number of people, at a specified date, maintained on methadone or buprenorphine receiving recommended minimum maintenance dose (WHO guidance recommends doses of ≥60 mg of methadone or ≥8 mg of buprenorphine*)
 * Numerator Calculation: COUNT of clients with (&quot;Medications prescribed&quot;='Methadone' AND &quot;Dose of medications prescribed&quot; GREATER THAN OR EQUAL TO 60mg) OR (&quot;Medications prescribed&quot;='Buprenorphine' AND &quot;Dose of medications prescribed&quot; GREATER THAN OR EQUAL TO 8mg) for a specified &quot;Reporting date&quot;
 * Numerator Exclusions: &quot;Client being inducted on OAMT&quot; OR &quot;Client on reducing doses of OAMT&quot;
 *
 * Denominator: Number of people receiving maintenance dose of methadone or buprenorphine at a specified date, excluding: a) individuals currently being inducted on OAMT and yet to reach the maintenance dose and b) individuals on reducing doses of OAMT.
 * Denominator Calculation: COUNT of clients with &quot;Medications prescribed&quot; IN 'Methadone', 'Buprenorphine' for a specified &quot;Reporting date&quot;
 * Denominator Exclusions: &quot;Client being inducted on OAMT&quot; OR &quot;Client on reducing doses of OAMT&quot;
 *
 * Disaggregations:
 * • Gender (female, male, other**) 
 *  • Age (15–19, 20–24, 25–49, 50+ years) 
 *  • Provider type (key population-led or community-led organization, public sector provider, other entities such as private for-profit and not-for-profit organizations, including faith-based, international, nongovernmental) 
 *  • Setting: facility-based service (including hospitals, health clinics, general practice offices, etc.) or community-based service (including drop-in centres, community service delivery points, mobile clinics or vans, outreach teams, community support groups, etc.) 
 *  • Cities and other administrative regions of epidemiologic importance
 *
 * Disaggregation Elements: Gender | Age
 *
 * Numerator and Denominator Elements:
 * Dose of medications prescribed 
 *  Medications prescribed 
 *  Reporting date
 *
 * Reference: Consolidated guidelines on person-centred HIV strategic information: strengthening routine data for impact. Geneva: World Health Organization; 2022
 * 
 * Data Concepts:
 * HIV.A.DE17: Age | Calculated age (number of years) of the client based on date of birth
 * HIV.A.DE18: Gender* | Gender of the client*
 * HIV.A.DE19: Female | Client identifies as female
 * HIV.A.DE20: Male | Client identifies as male
 * HIV.A.DE21: Transgender male | Client identifies as transgender male
 * HIV.A.DE22: Transgender female | Client identifies as transgender female
 * HIV.A.DE23: Other | Additional category
 * HIV.C.DE75: Medications prescribed | Medications the client was prescribed
 * HIV.C.DE76: PrEP for HIV prevention | Client was prescribed pre-exposure prophylaxis (PrEP) for HIV prevention
 * HIV.C.DE77: PEP for HIV prevention | Client was prescribed post-exposure prophylaxis (PEP) for HIV prevention
 * HIV.C.DE78: Other | Client was prescribed other medications
 * HIV.D.DE457: Medications prescribed | Name or regimen code of all other medications prescribed during the visit
 * HIV.D.DE459: Dose of medications prescribed | Number of doses (quantity taken at a single point in time) of drugs prescribed/dispensed
 * HIV.Config.DE22: Reporting date | Reporting date, for surveys performed on a specific date
 *
 * Additional Context
 * - what it measures: Measures the proportion of OAMT recipients receiving the recommended minimum maintenance dose.
 * - rationale: Evidence demonstrates that maximum benefit from OAMT is gained when individuals receive at least the recommended minimum maintenance dose.
 * - method: Individual-level data obtained from programme records
 * 
 * Suggested Scoring Method: proportion | http://hl7.org/fhir/us/cqfmeasures/StructureDefinition/proportion-measure-cqfm
 
 * Profiles: HivTreatmentMedicationRequest, HivOamtEpisodeOfCare
 */

library HIVIND14Logic

// Included Libraries
using FHIR version '4.0.1'

include HIVCommon version '0.0.1' called HIC
include FHIRHelpers version '4.0.1'
include WHOCommon called WCom

include HIVIndicatorElements called HIE
include HIVElements called HE

// Indicator Definition
parameter &quot;Measurement Period&quot; Interval&lt;Date&gt; default Interval[@2023-01-01, @2023-01-30]

context Patient
/* Populations */

/*
 *Initial Population
 */

define &quot;Initial Population&quot;:
  true

/**
 * Numerator
 * 
 * Definition: Number of people, at a specified date, maintained on methadone or buprenorphine receiving recommended minimum maintenance dose (WHO guidance recommends doses of ≥60 mg of methadone or ≥8 mg of buprenorphine*)
 * Calculation: COUNT of clients with (&quot;Medications prescribed&quot;='Methadone' AND &quot;Dose of medications prescribed&quot; GREATER THAN OR EQUAL TO 60mg) OR (&quot;Medications prescribed&quot;='Buprenorphine' AND &quot;Dose of medications prescribed&quot; GREATER THAN OR EQUAL TO 8mg) for a specified &quot;Reporting date&quot;
 */

define &quot;Numerator&quot;:
  First(HIE.&quot;Methadone D.DE555&quot;).dailyDose() &gt;= System.Quantity{ value: 60, unit: 'mg' }
  or First(HIE.&quot;Buprenorphine D.DE552&quot;).dailyDose() &gt;= System.Quantity{ value: 8, unit: 'mg' }

/**
 * Numerator Exclusions
 *
 * Calculation: &quot;Client being inducted on OAMT&quot; OR &quot;Client on reducing doses of OAMT&quot;
 */
    
define &quot;Numerator Exclusions&quot;:
  HIE.&quot;Client being inducted on OAMT&quot; or HIE.&quot;Client on reducing doses of OAMT&quot;

/**
 * Denominator
 *
 * Definition: Number of people receiving maintenance dose of methadone or buprenorphine at a specified date, excluding: a) individuals currently being inducted on OAMT and yet to reach the maintenance dose and b) individuals on reducing doses of OAMT.
 * Calculation: COUNT of clients with &quot;Medications prescribed&quot; IN 'Methadone', 'Buprenorphine' for a specified &quot;Reporting date&quot;
 */

define &quot;Denominator&quot;:
  Exists(HIE.&quot;Methadone D.DE555&quot;) or Exists(HIE.&quot;Buprenorphine D.DE552&quot;)
    
/**
* Denominator Exclusions
*
* Calculation: &quot;Client being inducted on OAMT&quot; OR &quot;Client on reducing doses of OAMT&quot;
*/

define &quot;Denominator Exclusions&quot;:
  HIE.&quot;Client being inducted on OAMT&quot; or HIE.&quot;Client on reducing doses of OAMT&quot;

/* end Populations */


/*
 * Disaggregators
 */

define &quot;Administrative Gender Stratifier&quot;:
	HIE.&quot;By Administrative Gender Stratifier&quot;

define &quot;Age Stratifier&quot;:
	HIE.&quot;By Age Stratifier 3&quot;

define &quot;Geographic Region Stratifier&quot;:
	HIE.&quot;By Geographic Region Stratifier&quot;

define &quot;Setting&quot;:
    HIE.&quot;setting&quot;

//provider type not provided?

define &quot;Stratification&quot;:
 HIE.&quot;By Administrative Gender Stratifier&quot;.code 
  + ':' + HIE.&quot;By Age Stratifier 3&quot;
+ ':' + HIE.&quot;By Geographic Region Stratifier&quot;
 + ':' + HIE.&quot;setting&quot;.code</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/hiv/Library/HIVIND14Logic"/>
  <version value="0.4.3"/>
  <name value="HIVIND14Logic"/>
  <title value="HIV.IND.14 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="2025-02-07T14:15:45+00:00"/>
  <publisher value="WHO"/>
  <contact>
    <name value="WHO"/>
    <telecom>
      <system value="url"/>
      <value value="http://who.int"/>
    </telecom>
  </contact>
  <description
               value="% of OAMT recipients receiving a maintenance dose greater than or equal to the recommended minimum dose"/>
  <content>
    <contentType value="text/cql"/>
    <data
          value="LyoqCiAqIExpYnJhcnk6IEhJVi5JTkQuMTQgTG9naWMKICogUmVmIE5vOiBQUlYuMTQKICogU2hvcnQgTmFtZTogT0FNVCBtaW5pbXVtIGRvc2UKICoKICogRGVmaW5pdGlvbjogJSBvZiBPQU1UIHJlY2lwaWVudHMgcmVjZWl2aW5nIGEgbWFpbnRlbmFuY2UgZG9zZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gdGhlIHJlY29tbWVuZGVkIG1pbmltdW0gZG9zZQogKgogKiBOdW1lcmF0b3I6IE51bWJlciBvZiBwZW9wbGUsIGF0IGEgc3BlY2lmaWVkIGRhdGUsIG1haW50YWluZWQgb24gbWV0aGFkb25lIG9yIGJ1cHJlbm9ycGhpbmUgcmVjZWl2aW5nIHJlY29tbWVuZGVkIG1pbmltdW0gbWFpbnRlbmFuY2UgZG9zZSAoV0hPIGd1aWRhbmNlIHJlY29tbWVuZHMgZG9zZXMgb2Yg4omlNjAgbWcgb2YgbWV0aGFkb25lIG9yIOKJpTggbWcgb2YgYnVwcmVub3JwaGluZSopCiAqIE51bWVyYXRvciBDYWxjdWxhdGlvbjogQ09VTlQgb2YgY2xpZW50cyB3aXRoICgiTWVkaWNhdGlvbnMgcHJlc2NyaWJlZCI9J01ldGhhZG9uZScgQU5EICJEb3NlIG9mIG1lZGljYXRpb25zIHByZXNjcmliZWQiIEdSRUFURVIgVEhBTiBPUiBFUVVBTCBUTyA2MG1nKSBPUiAoIk1lZGljYXRpb25zIHByZXNjcmliZWQiPSdCdXByZW5vcnBoaW5lJyBBTkQgIkRvc2Ugb2YgbWVkaWNhdGlvbnMgcHJlc2NyaWJlZCIgR1JFQVRFUiBUSEFOIE9SIEVRVUFMIFRPIDhtZykgZm9yIGEgc3BlY2lmaWVkICJSZXBvcnRpbmcgZGF0ZSIKICogTnVtZXJhdG9yIEV4Y2x1c2lvbnM6ICJDbGllbnQgYmVpbmcgaW5kdWN0ZWQgb24gT0FNVCIgT1IgIkNsaWVudCBvbiByZWR1Y2luZyBkb3NlcyBvZiBPQU1UIgogKgogKiBEZW5vbWluYXRvcjogTnVtYmVyIG9mIHBlb3BsZSByZWNlaXZpbmcgbWFpbnRlbmFuY2UgZG9zZSBvZiBtZXRoYWRvbmUgb3IgYnVwcmVub3JwaGluZSBhdCBhIHNwZWNpZmllZCBkYXRlLCBleGNsdWRpbmc6IGEpIGluZGl2aWR1YWxzIGN1cnJlbnRseSBiZWluZyBpbmR1Y3RlZCBvbiBPQU1UIGFuZCB5ZXQgdG8gcmVhY2ggdGhlIG1haW50ZW5hbmNlIGRvc2UgYW5kIGIpIGluZGl2aWR1YWxzIG9uIHJlZHVjaW5nIGRvc2VzIG9mIE9BTVQuCiAqIERlbm9taW5hdG9yIENhbGN1bGF0aW9uOiBDT1VOVCBvZiBjbGllbnRzIHdpdGggIk1lZGljYXRpb25zIHByZXNjcmliZWQiIElOICdNZXRoYWRvbmUnLCAnQnVwcmVub3JwaGluZScgZm9yIGEgc3BlY2lmaWVkICJSZXBvcnRpbmcgZGF0ZSIKICogRGVub21pbmF0b3IgRXhjbHVzaW9uczogIkNsaWVudCBiZWluZyBpbmR1Y3RlZCBvbiBPQU1UIiBPUiAiQ2xpZW50IG9uIHJlZHVjaW5nIGRvc2VzIG9mIE9BTVQiCiAqCiAqIERpc2FnZ3JlZ2F0aW9uczoKICog4oCiIEdlbmRlciAoZmVtYWxlLCBtYWxlLCBvdGhlcioqKSAKICogIOKAoiBBZ2UgKDE14oCTMTksIDIw4oCTMjQsIDI14oCTNDksIDUwKyB5ZWFycykgCiAqICDigKIgUHJvdmlkZXIgdHlwZSAoa2V5IHBvcHVsYXRpb24tbGVkIG9yIGNvbW11bml0eS1sZWQgb3JnYW5pemF0aW9uLCBwdWJsaWMgc2VjdG9yIHByb3ZpZGVyLCBvdGhlciBlbnRpdGllcyBzdWNoIGFzIHByaXZhdGUgZm9yLXByb2ZpdCBhbmQgbm90LWZvci1wcm9maXQgb3JnYW5pemF0aW9ucywgaW5jbHVkaW5nIGZhaXRoLWJhc2VkLCBpbnRlcm5hdGlvbmFsLCBub25nb3Zlcm5tZW50YWwpIAogKiAg4oCiIFNldHRpbmc6IGZhY2lsaXR5LWJhc2VkIHNlcnZpY2UgKGluY2x1ZGluZyBob3NwaXRhbHMsIGhlYWx0aCBjbGluaWNzLCBnZW5lcmFsIHByYWN0aWNlIG9mZmljZXMsIGV0Yy4pIG9yIGNvbW11bml0eS1iYXNlZCBzZXJ2aWNlIChpbmNsdWRpbmcgZHJvcC1pbiBjZW50cmVzLCBjb21tdW5pdHkgc2VydmljZSBkZWxpdmVyeSBwb2ludHMsIG1vYmlsZSBjbGluaWNzIG9yIHZhbnMsIG91dHJlYWNoIHRlYW1zLCBjb21tdW5pdHkgc3VwcG9ydCBncm91cHMsIGV0Yy4pIAogKiAg4oCiwqBDaXRpZXMgYW5kIG90aGVyIGFkbWluaXN0cmF0aXZlIHJlZ2lvbnMgb2YgZXBpZGVtaW9sb2dpYyBpbXBvcnRhbmNlCiAqCiAqIERpc2FnZ3JlZ2F0aW9uIEVsZW1lbnRzOiBHZW5kZXIgfCBBZ2UKICoKICogTnVtZXJhdG9yIGFuZCBEZW5vbWluYXRvciBFbGVtZW50czoKICogRG9zZSBvZiBtZWRpY2F0aW9ucyBwcmVzY3JpYmVkIAogKiAgTWVkaWNhdGlvbnMgcHJlc2NyaWJlZCAKICogIFJlcG9ydGluZyBkYXRlCiAqCiAqIFJlZmVyZW5jZTogQ29uc29saWRhdGVkIGd1aWRlbGluZXMgb24gcGVyc29uLWNlbnRyZWQgSElWIHN0cmF0ZWdpYyBpbmZvcm1hdGlvbjogc3RyZW5ndGhlbmluZyByb3V0aW5lIGRhdGEgZm9yIGltcGFjdC4gR2VuZXZhOiBXb3JsZCBIZWFsdGggT3JnYW5pemF0aW9uOyAyMDIyCiAqIAogKiBEYXRhIENvbmNlcHRzOgogKiBISVYuQS5ERTE3OiBBZ2UgfCBDYWxjdWxhdGVkIGFnZSAobnVtYmVyIG9mIHllYXJzKSBvZiB0aGUgY2xpZW50IGJhc2VkIG9uIGRhdGUgb2YgYmlydGgKICogSElWLkEuREUxODogR2VuZGVyKiB8IEdlbmRlciBvZiB0aGUgY2xpZW50KgogKiBISVYuQS5ERTE5OiBGZW1hbGUgfCBDbGllbnQgaWRlbnRpZmllcyBhcyBmZW1hbGUKICogSElWLkEuREUyMDogTWFsZSB8IENsaWVudCBpZGVudGlmaWVzIGFzIG1hbGUKICogSElWLkEuREUyMTogVHJhbnNnZW5kZXIgbWFsZSB8IENsaWVudCBpZGVudGlmaWVzIGFzIHRyYW5zZ2VuZGVyIG1hbGUKICogSElWLkEuREUyMjogVHJhbnNnZW5kZXIgZmVtYWxlIHwgQ2xpZW50IGlkZW50aWZpZXMgYXMgdHJhbnNnZW5kZXIgZmVtYWxlCiAqIEhJVi5BLkRFMjM6IE90aGVyIHwgQWRkaXRpb25hbCBjYXRlZ29yeQogKiBISVYuQy5ERTc1OiBNZWRpY2F0aW9ucyBwcmVzY3JpYmVkIHwgTWVkaWNhdGlvbnMgdGhlIGNsaWVudCB3YXMgcHJlc2NyaWJlZAogKiBISVYuQy5ERTc2OiBQckVQIGZvciBISVYgcHJldmVudGlvbiB8IENsaWVudCB3YXMgcHJlc2NyaWJlZCBwcmUtZXhwb3N1cmUgcHJvcGh5bGF4aXMgKFByRVApIGZvciBISVYgcHJldmVudGlvbgogKiBISVYuQy5ERTc3OiBQRVAgZm9yIEhJViBwcmV2ZW50aW9uIHwgQ2xpZW50IHdhcyBwcmVzY3JpYmVkIHBvc3QtZXhwb3N1cmUgcHJvcGh5bGF4aXMgKFBFUCkgZm9yIEhJViBwcmV2ZW50aW9uCiAqIEhJVi5DLkRFNzg6IE90aGVyIHwgQ2xpZW50IHdhcyBwcmVzY3JpYmVkIG90aGVyIG1lZGljYXRpb25zCiAqIEhJVi5ELkRFNDU3OiBNZWRpY2F0aW9ucyBwcmVzY3JpYmVkIHwgTmFtZSBvciByZWdpbWVuIGNvZGUgb2YgYWxsIG90aGVyIG1lZGljYXRpb25zIHByZXNjcmliZWQgZHVyaW5nIHRoZSB2aXNpdAogKiBISVYuRC5ERTQ1OTogRG9zZSBvZiBtZWRpY2F0aW9ucyBwcmVzY3JpYmVkIHwgTnVtYmVyIG9mIGRvc2VzIChxdWFudGl0eSB0YWtlbiBhdCBhIHNpbmdsZSBwb2ludCBpbiB0aW1lKSBvZiBkcnVncyBwcmVzY3JpYmVkL2Rpc3BlbnNlZAogKiBISVYuQ29uZmlnLkRFMjI6IFJlcG9ydGluZyBkYXRlIHwgUmVwb3J0aW5nIGRhdGUsIGZvciBzdXJ2ZXlzIHBlcmZvcm1lZCBvbiBhIHNwZWNpZmljIGRhdGUKICoKICogQWRkaXRpb25hbCBDb250ZXh0CiAqIC0gd2hhdCBpdCBtZWFzdXJlczogTWVhc3VyZXMgdGhlIHByb3BvcnRpb24gb2YgT0FNVCByZWNpcGllbnRzIHJlY2VpdmluZyB0aGUgcmVjb21tZW5kZWQgbWluaW11bSBtYWludGVuYW5jZSBkb3NlLgogKiAtIHJhdGlvbmFsZTogRXZpZGVuY2UgZGVtb25zdHJhdGVzIHRoYXQgbWF4aW11bSBiZW5lZml0IGZyb20gT0FNVCBpcyBnYWluZWQgd2hlbiBpbmRpdmlkdWFscyByZWNlaXZlIGF0IGxlYXN0IHRoZSByZWNvbW1lbmRlZCBtaW5pbXVtIG1haW50ZW5hbmNlIGRvc2UuCiAqIC0gbWV0aG9kOiBJbmRpdmlkdWFsLWxldmVsIGRhdGEgb2J0YWluZWQgZnJvbSBwcm9ncmFtbWUgcmVjb3JkcwogKiAKICogU3VnZ2VzdGVkIFNjb3JpbmcgTWV0aG9kOiBwcm9wb3J0aW9uIHwgaHR0cDovL2hsNy5vcmcvZmhpci91cy9jcWZtZWFzdXJlcy9TdHJ1Y3R1cmVEZWZpbml0aW9uL3Byb3BvcnRpb24tbWVhc3VyZS1jcWZtCiAKICogUHJvZmlsZXM6IEhpdlRyZWF0bWVudE1lZGljYXRpb25SZXF1ZXN0LCBIaXZPYW10RXBpc29kZU9mQ2FyZQogKi8KCmxpYnJhcnkgSElWSU5EMTRMb2dpYwoKLy8gSW5jbHVkZWQgTGlicmFyaWVzCnVzaW5nIEZISVIgdmVyc2lvbiAnNC4wLjEnCgppbmNsdWRlIEhJVkNvbW1vbiB2ZXJzaW9uICcwLjAuMScgY2FsbGVkIEhJQwppbmNsdWRlIEZISVJIZWxwZXJzIHZlcnNpb24gJzQuMC4xJwppbmNsdWRlIFdIT0NvbW1vbiBjYWxsZWQgV0NvbQoKaW5jbHVkZSBISVZJbmRpY2F0b3JFbGVtZW50cyBjYWxsZWQgSElFCmluY2x1ZGUgSElWRWxlbWVudHMgY2FsbGVkIEhFCgovLyBJbmRpY2F0b3IgRGVmaW5pdGlvbgpwYXJhbWV0ZXIgIk1lYXN1cmVtZW50IFBlcmlvZCIgSW50ZXJ2YWw8RGF0ZT4gZGVmYXVsdCBJbnRlcnZhbFtAMjAyMy0wMS0wMSwgQDIwMjMtMDEtMzBdCgpjb250ZXh0IFBhdGllbnQKLyogUG9wdWxhdGlvbnMgKi8KCi8qCiAqSW5pdGlhbCBQb3B1bGF0aW9uCiAqLwoKZGVmaW5lICJJbml0aWFsIFBvcHVsYXRpb24iOgogIHRydWUKCi8qKgogKiBOdW1lcmF0b3IKICogCiAqIERlZmluaXRpb246IE51bWJlciBvZiBwZW9wbGUsIGF0IGEgc3BlY2lmaWVkIGRhdGUsIG1haW50YWluZWQgb24gbWV0aGFkb25lIG9yIGJ1cHJlbm9ycGhpbmUgcmVjZWl2aW5nIHJlY29tbWVuZGVkIG1pbmltdW0gbWFpbnRlbmFuY2UgZG9zZSAoV0hPIGd1aWRhbmNlIHJlY29tbWVuZHMgZG9zZXMgb2Yg4omlNjAgbWcgb2YgbWV0aGFkb25lIG9yIOKJpTggbWcgb2YgYnVwcmVub3JwaGluZSopCiAqIENhbGN1bGF0aW9uOiBDT1VOVCBvZiBjbGllbnRzIHdpdGggKCJNZWRpY2F0aW9ucyBwcmVzY3JpYmVkIj0nTWV0aGFkb25lJyBBTkQgIkRvc2Ugb2YgbWVkaWNhdGlvbnMgcHJlc2NyaWJlZCIgR1JFQVRFUiBUSEFOIE9SIEVRVUFMIFRPIDYwbWcpIE9SICgiTWVkaWNhdGlvbnMgcHJlc2NyaWJlZCI9J0J1cHJlbm9ycGhpbmUnIEFORCAiRG9zZSBvZiBtZWRpY2F0aW9ucyBwcmVzY3JpYmVkIiBHUkVBVEVSIFRIQU4gT1IgRVFVQUwgVE8gOG1nKSBmb3IgYSBzcGVjaWZpZWQgIlJlcG9ydGluZyBkYXRlIgogKi8KCmRlZmluZSAiTnVtZXJhdG9yIjoKICBGaXJzdChISUUuIk1ldGhhZG9uZSBELkRFNTU1IikuZGFpbHlEb3NlKCkgPj0gU3lzdGVtLlF1YW50aXR5eyB2YWx1ZTogNjAsIHVuaXQ6ICdtZycgfQogIG9yIEZpcnN0KEhJRS4iQnVwcmVub3JwaGluZSBELkRFNTUyIikuZGFpbHlEb3NlKCkgPj0gU3lzdGVtLlF1YW50aXR5eyB2YWx1ZTogOCwgdW5pdDogJ21nJyB9CgovKioKICogTnVtZXJhdG9yIEV4Y2x1c2lvbnMKICoKICogQ2FsY3VsYXRpb246ICJDbGllbnQgYmVpbmcgaW5kdWN0ZWQgb24gT0FNVCIgT1IgIkNsaWVudCBvbiByZWR1Y2luZyBkb3NlcyBvZiBPQU1UIgogKi8KICAgIApkZWZpbmUgIk51bWVyYXRvciBFeGNsdXNpb25zIjoKICBISUUuIkNsaWVudCBiZWluZyBpbmR1Y3RlZCBvbiBPQU1UIiBvciBISUUuIkNsaWVudCBvbiByZWR1Y2luZyBkb3NlcyBvZiBPQU1UIgoKLyoqCiAqIERlbm9taW5hdG9yCiAqCiAqIERlZmluaXRpb246IE51bWJlciBvZiBwZW9wbGUgcmVjZWl2aW5nIG1haW50ZW5hbmNlIGRvc2Ugb2YgbWV0aGFkb25lIG9yIGJ1cHJlbm9ycGhpbmUgYXQgYSBzcGVjaWZpZWQgZGF0ZSwgZXhjbHVkaW5nOiBhKSBpbmRpdmlkdWFscyBjdXJyZW50bHkgYmVpbmcgaW5kdWN0ZWQgb24gT0FNVCBhbmQgeWV0IHRvIHJlYWNoIHRoZSBtYWludGVuYW5jZSBkb3NlIGFuZCBiKSBpbmRpdmlkdWFscyBvbiByZWR1Y2luZyBkb3NlcyBvZiBPQU1ULgogKiBDYWxjdWxhdGlvbjogQ09VTlQgb2YgY2xpZW50cyB3aXRoICJNZWRpY2F0aW9ucyBwcmVzY3JpYmVkIiBJTiAnTWV0aGFkb25lJywgJ0J1cHJlbm9ycGhpbmUnIGZvciBhIHNwZWNpZmllZCAiUmVwb3J0aW5nIGRhdGUiCiAqLwoKZGVmaW5lICJEZW5vbWluYXRvciI6CiAgRXhpc3RzKEhJRS4iTWV0aGFkb25lIEQuREU1NTUiKSBvciBFeGlzdHMoSElFLiJCdXByZW5vcnBoaW5lIEQuREU1NTIiKQogICAgCi8qKgoqIERlbm9taW5hdG9yIEV4Y2x1c2lvbnMKKgoqIENhbGN1bGF0aW9uOiAiQ2xpZW50IGJlaW5nIGluZHVjdGVkIG9uIE9BTVQiIE9SICJDbGllbnQgb24gcmVkdWNpbmcgZG9zZXMgb2YgT0FNVCIKKi8KCmRlZmluZSAiRGVub21pbmF0b3IgRXhjbHVzaW9ucyI6CiAgSElFLiJDbGllbnQgYmVpbmcgaW5kdWN0ZWQgb24gT0FNVCIgb3IgSElFLiJDbGllbnQgb24gcmVkdWNpbmcgZG9zZXMgb2YgT0FNVCIKCi8qIGVuZCBQb3B1bGF0aW9ucyAqLwoKCi8qCiAqIERpc2FnZ3JlZ2F0b3JzCiAqLwoKZGVmaW5lICJBZG1pbmlzdHJhdGl2ZSBHZW5kZXIgU3RyYXRpZmllciI6CglISUUuIkJ5IEFkbWluaXN0cmF0aXZlIEdlbmRlciBTdHJhdGlmaWVyIgoKZGVmaW5lICJBZ2UgU3RyYXRpZmllciI6CglISUUuIkJ5IEFnZSBTdHJhdGlmaWVyIDMiCgpkZWZpbmUgIkdlb2dyYXBoaWMgUmVnaW9uIFN0cmF0aWZpZXIiOgoJSElFLiJCeSBHZW9ncmFwaGljIFJlZ2lvbiBTdHJhdGlmaWVyIgoKZGVmaW5lICJTZXR0aW5nIjoKICAgIEhJRS4ic2V0dGluZyIKCi8vcHJvdmlkZXIgdHlwZSBub3QgcHJvdmlkZWQ/CgpkZWZpbmUgIlN0cmF0aWZpY2F0aW9uIjoKIEhJRS4iQnkgQWRtaW5pc3RyYXRpdmUgR2VuZGVyIFN0cmF0aWZpZXIiLmNvZGUgCiAgKyAnOicgKyBISUUuIkJ5IEFnZSBTdHJhdGlmaWVyIDMiCisgJzonICsgSElFLiJCeSBHZW9ncmFwaGljIFJlZ2lvbiBTdHJhdGlmaWVyIgogKyAnOicgKyBISUUuInNldHRpbmciLmNvZGU="/>
  </content>
</Library>