Draft dQM CMS Content Implementation Guide
2025.1.0 - CI Build
Draft dQM CMS Content Implementation Guide, published by cqframework. This guide is not an authorized publication; it is the continuous build for version 2025.1.0 built by the FHIR (HL7® FHIR® Standard) CI Build. This version is based on the current content of https://github.com/cqframework/dqm-content-cms-2025/ and changes regularly. See the Directory of published versions
| Active as of 2025-08-21 |
<Library xmlns="http://hl7.org/fhir">
<id value="NHSNGlycemicControlHypoglycemiaInitialPopulation"/>
<meta>
<profile
value="http://hl7.org/fhir/uv/crmi/StructureDefinition/crmi-shareablelibrary"/>
<profile
value="http://hl7.org/fhir/uv/crmi/StructureDefinition/crmi-computablelibrary"/>
<profile
value="http://hl7.org/fhir/uv/crmi/StructureDefinition/crmi-publishablelibrary"/>
<profile
value="http://hl7.org/fhir/uv/crmi/StructureDefinition/crmi-executablelibrary"/>
<profile
value="http://hl7.org/fhir/uv/cql/StructureDefinition/cql-library"/>
<profile
value="http://hl7.org/fhir/uv/cql/StructureDefinition/elm-json-library"/>
<profile
value="http://hl7.org/fhir/uv/cql/StructureDefinition/elm-xml-library"/>
</meta>
<language value="en"/>
<text>
<status value="extensions"/>
<div xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<table class="narrative-table">
<tbody>
<tr>
<th colspan="2" scope="row" class="row-header"><a name="metadata"> </a>Metadata</th>
</tr>
<tr>
<th scope="row" class="row-header">Title</th>
<td class="content-container">NHSNGlycemicControlHypoglycemiaInitialPopulation</td>
</tr>
<tr>
<th scope="row" class="row-header">Version</th>
<td class="content-container">1.1.000</td>
</tr>
<tr>
<th scope="row" class="row-header">Identifier</th>
<td class="content-container">NHSNGlycemicControlHypoglycemiaInitialPopulation</td>
</tr>
<tr>
<th scope="row" class="row-header">Topic</th>
<td class="content-container">FHIR
</td>
</tr>
<tr>
<th scope="row" class="row-header">Topic</th>
<td class="content-container">CQL
</td>
</tr>
<tr>
<th scope="row" class="row-header">Steward (Publisher)</th>
<td class="content-container">Centers for Disease Control and Prevention (CDC)</td>
</tr>
<tr>
<th scope="row" class="row-header">Description</th>
<td class="content-container"><div><p>NHSNGlycemicControlHypoglycemiaInitialPopulation</p>
</div></td>
</tr>
<tr>
<th scope="row" class="row-header">Type</th>
<td class="content-container">
<a href="http://terminology.hl7.org/7.1.0/CodeSystem-library-type.html">http://terminology.hl7.org/CodeSystem/library-type</a>#logic-library
</td>
</tr>
<tr>
<th colspan="2" scope="row" class="row-header"><a name="parameters"> </a>Parameters</th>
</tr>
<tr>
<th scope="row" class="row-header">Parameter</th>
<td class="content-container">None</td>
</tr>
<tr>
<th colspan="2" scope="row" class="row-header">Library Content</th>
</tr>
<tr>
<th scope="row" class="row-header">CQL Content</th>
<td>
<a name="cql-content"> </a>
<pre style="border: none;" class="content-container highlight language-cql"><code class="language-cql">/*
NOTE: For use by March 2026 US Realm Connectathon participants for internal use only. Not for use or distribution in commercial products.
*/
library NHSNGlycemicControlHypoglycemiaInitialPopulation version '1.1.000'
using USQualityCore version '0.1.0-cibuild'
using USCore version '6.1.0-derived'
using FHIR version '4.0.1'
include hl7.fhir.uv.cql.FHIRHelpers version '4.0.1' called FHIRHelpers
include hl7.fhir.uv.cql.FHIRCommon version '2.0.0' called FHIRCommon
include hl7.fhir.us.cql.USCoreCommon version '2.0.0-ballot' called USCoreCommon
include hl7.fhir.us.cql.USCoreElements version '2.0.0-ballot' called USCoreElements
include USQualityCoreCommon version '0.1.0-cibuild' called USQualityCoreCommon
include SupplementalDataElements version '6.1.000' called SDE
include CQMCommon version '5.1.000' called CQMCommon
codesystem "ActCode": 'http://terminology.hl7.org/CodeSystem/v3-ActCode'
codesystem "HSLOC": 'https://www.cdc.gov/nhsn/cdaportal/terminology/codesystem/hsloc.html'
codesystem "LOINC": 'http://loinc.org'
codesystem "RxNorm": 'https://www.nlm.nih.gov/research/umls/rxnorm/index.html'
codesystem "SNOMEDCT": 'http://snomed.info/sct'
valueset "Blood Glucose Laboratory and Point of Care Tests": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1190.38'
valueset "Diabetes Medications": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1190.58'
valueset "Encounter Inpatient": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.666.5.307'
valueset "Inpatient, Emergency, and Observation Locations": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1046.265'
valueset "NHSN Inpatient Encounter Class Codes": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1046.274'
parameter "Measurement Period" Interval<DateTime>
default Interval[@2026-01-01T00:00:00.000Z, @2027-01-01T00:00:00.000Z)
context Patient
// Initial Population
define "Initial Population":
( "Inpatient Encounters During Measurement Period"
union "Encounters with Patient Hospital Locations" ) InpatientEncounters
with "Antidiabetic Drugs Administered or Ordered" ADD
such that Coalesce(start of ADD.effective.toInterval(), ADD.authoredOn) during InpatientEncounters."hospitalizationWithObservation" ( )
where ( InpatientEncounters.status = 'finished'
or InpatientEncounters.status = 'in-progress'
or InpatientEncounters.status = 'triaged'
or InpatientEncounters.status = 'onleave'
or InpatientEncounters.status = 'entered-in-error'
)
define "Inpatient Encounters During Measurement Period":
[Encounter: "Encounter Inpatient"] InpatientEncounters
where InpatientEncounters.period ends during day of "Measurement Period"
and ( InpatientEncounters.class ~ USQualityCoreCommon."inpatient non-acute"
or InpatientEncounters.class ~ USQualityCoreCommon."inpatient non-acute"
or InpatientEncounters.class ~ USQualityCoreCommon."short stay"
or InpatientEncounters.class ~ USQualityCoreCommon."inpatient acute"
or InpatientEncounters.class ~ USQualityCoreCommon."inpatient encounter"
)
define "Encounters with Patient Hospital Locations":
"Inpatient Encounters During Measurement Period" InpatientEncounter
where exists ( InpatientEncounter.location HospitalLocation
where HospitalLocation.location.getLocation ( ).type in "Inpatient, Emergency, and Observation Locations"
and HospitalLocation.period during day of InpatientEncounter.period
)
define "Antidiabetic Drugs Administered or Ordered":
( "MedicationRequests"
union "MedicationAdministrations" ) MedReqOrAdmin
where MedReqOrAdmin.getMedicationCode() in "Diabetes Medications"
//Supplemental Data Elements
define "SDE Blood Glucose Observation":
( ["LaboratoryResultObservation": "Blood Glucose Laboratory and Point of Care Tests"] GlucoseTest
where exists ( "Initial Population" InitialPopulation
where start of GlucoseTest.effective.toInterval ( ) during day of InitialPopulation.period
or GlucoseTest.issued during day of InitialPopulation.period
)
return { GlucoseTest.id, GlucoseTest.extension, GlucoseTest.text, GlucoseTest.referenceRange, GlucoseTest.component, GlucoseTest.basedOn, GlucoseTest.partOf, GlucoseTest.category, GlucoseTest.status, GlucoseTest.subject, GlucoseTest.focus, GlucoseTest.encounter, GlucoseTest.effective, GlucoseTest.issued, GlucoseTest.performer, GlucoseTest.value, GlucoseTest.dataAbsentReason, GlucoseTest.interpretation, GlucoseTest.note, GlucoseTest.bodySite, GlucoseTest.method, GlucoseTest.specimen, GlucoseTest.device, GlucoseTest.hasMember, GlucoseTest.derivedFrom }
)
define "SDE Chief Complaint":
"Initial Population" IP
where exists ( IP.diagnosis InitialPopulationDiagnosis
where InitialPopulationDiagnosis.use ~ FHIRCommon."CC"
)
return { IP.id, IP.meta, IP.identifier, IP.status, IP.statusHistory, IP.class, IP.classHistory, IP.type, IP.serviceType, IP.priority, IP.subject, IP.period, IP.length, IP.reasonCode, IP.reasonReference, IP.diagnosis, IP.account, IP.hospitalization, IP.location, IP.partOf }
define "Conditions":
["ConditionProblemsHealthConcerns"]
union ["ConditionEncounterDiagnosis"]
define "SDE Condition":
["ConditionProblemsHealthConcerns"] Diagnosis
where exists ( "Initial Population" IP
where Diagnosis.prevalenceInterval ( ) overlaps day of IP.period
)
return { Diagnosis.id, Diagnosis.meta, Diagnosis.clinicalStatus, Diagnosis.verificationStatus, Diagnosis.category, Diagnosis.severity, Diagnosis.code, Diagnosis.bodySite, Diagnosis.subject, Diagnosis.encounter.reference.getId(), Diagnosis.onset, Diagnosis.stage, Diagnosis.evidence, Diagnosis.note }
define "SDE Coverage":
[Coverage] Coverages
where exists ( "Initial Population" IP
where Coverages.period starts before or on day of IP.period
and end of Coverages.period on or after day of end of IP.period
)
return { Coverages.id, Coverages.meta, Coverages.status, Coverages.type, Coverages.policyHolder, Coverages.subscriber, Coverages.subscriberId, Coverages.beneficiary, Coverages.dependent, Coverages.relationship, Coverages.period, Coverages.payor, Coverages.class, Coverages.order, Coverages.network, Coverages.subrogation, Coverages.contract }
define "Encounters":
[Encounter]
define "SDE Encounter Locations":
"Initial Population" IP
where exists ( IP.location InitialPopulationLocation
let types: ( InitialPopulationLocation.location ).getLocation ( ).type
where exists ( types type
where type in "Inpatient, Emergency, and Observation Locations"
)
and InitialPopulationLocation.period during IP.period
)
return { IP.id, IP.meta, IP.identifier, IP.status, IP.statusHistory, IP.class, IP.classHistory, IP.type, IP.serviceType, IP.priority, IP.subject, IP.period, IP.length, IP.reasonCode, IP.reasonReference, IP.diagnosis, IP.account, IP.hospitalization, IP.location, IP.partOf }
define "Get Locations from Initial Population":
flatten ( "Initial Population" IP
let locationElements: IP.location
return locationElements LE
let locationReference: LE.location
return ( locationReference.getLocation ( ) )
)
define "SDE Location":
"Get Locations from Initial Population" Locations
where exists "Initial Population"
and Locations is not null
return { Locations.id, Locations.meta, Locations.extension, Locations.status, Locations.operationalStatus, Locations.name, Locations.alias, Locations.description, Locations.mode, Locations.type, Locations.telecom, Locations.address, Locations.physicalType, Locations.position, Locations.managingOrganization, Locations.partOf, Locations.hoursOfOperation, Locations.availabilityExceptions, Locations.endpoint }
define "SDE Initial Population Encounters":
"Initial Population" IP
return { IP.id, IP.meta, IP.identifier, IP.status, IP.statusHistory, IP.class, IP.classHistory, IP.type, IP.serviceType, IP.priority, IP.subject, IP.period, IP.length, IP.reasonCode, IP.reasonReference, IP.diagnosis, IP.account, IP.hospitalization, IP.location, IP.partOf }
define "SDE Medication":
( "MedicationRequests"
union "MedicationAdministrations" ) MedReqOrAdmin
let medication: GetMedication(MedReqOrAdmin.medication as Reference)
where medication is not null
and exists ( "Initial Population" IP
where Coalesce(MedReqOrAdmin.effective.toInterval(), MedReqOrAdmin.authoredOn.toInterval()) overlaps IP."hospitalizationWithObservation" ( )
)
return { medication.id, medication.meta, medication.code, medication.status, medication.manufacturer, medication.form, medication.amount, medication.ingredient, medication.batch }
define function "GetMedication"(reference Reference):
singleton from ( [Medication] Medication
where reference.references ( Medication )
)
define "MedicationAdministrations":
[MedicationAdministration]
define "SDE Medication Administration":
"MedicationAdministrations" MedAdministrations
where exists ( "Initial Population" InitialPopulation
where MedAdministrations.effective.toInterval ( ) overlaps InitialPopulation."hospitalizationWithObservation" ( )
)
return { MedAdministrations.id, MedAdministrations.meta, MedAdministrations.instantiates, MedAdministrations.partOf, MedAdministrations.status, MedAdministrations.statusReason, MedAdministrations.category, MedAdministrations.medication, MedAdministrations.subject, MedAdministrations.context, MedAdministrations.supportingInformation, MedAdministrations.effective, MedAdministrations.performer, MedAdministrations.reasonCode, MedAdministrations.reasonReference, MedAdministrations.request, MedAdministrations.device, MedAdministrations.note, MedAdministrations.dosage }
define "MedicationRequests":
[MedicationRequest]
define "SDE Medication Request":
"MedicationRequests" MedRequests
where exists ( "Initial Population" InitialPopulation
where MedRequests.authoredOn during InitialPopulation."hospitalizationWithObservation" ( )
)
return { MedRequests.id, MedRequests.meta, MedRequests.status, MedRequests.statusReason, MedRequests.intent, MedRequests.category, MedRequests.priority, MedRequests.doNotPerform, MedRequests.reported, MedRequests.medication, MedRequests.subject, MedRequests.encounter, MedRequests.authoredOn, MedRequests.requester, MedRequests.recorder, MedRequests.reasonCode, MedRequests.reasonReference, MedRequests.instantiatesCanonical, MedRequests.instantiatesUri, MedRequests.courseOfTherapyType, MedRequests.dosageInstruction }
define "SDE Minimal Patient":
[Patient] MinPt
where exists "Initial Population"
return { MinPt.id, MinPt.meta, MinPt.extension, MinPt.identifier, MinPt.active, MinPt.name, MinPt.telecom, MinPt.gender, MinPt.birthDate, MinPt.deceased, MinPt.address, MinPt.maritalStatus, MinPt.multipleBirth, MinPt.photo, MinPt.contact, MinPt.communication, MinPt.generalPractitioner, MinPt.managingOrganization, MinPt.link }
define "SDE Service Request":
[ServiceRequest] ServiceRequests
where exists ( "Initial Population" InitialPopulation
where ServiceRequests.authoredOn during InitialPopulation.period
)
return { ServiceRequests.id, ServiceRequests.meta, ServiceRequests.instantiatesCanonical, ServiceRequests.instantiatesUri, ServiceRequests.basedOn, ServiceRequests.replaces, ServiceRequests.requisition, ServiceRequests.status, ServiceRequests.intent, ServiceRequests.category, ServiceRequests.priority, ServiceRequests.doNotPerform, ServiceRequests.code, ServiceRequests.orderDetail, ServiceRequests.quantity, ServiceRequests.subject, ServiceRequests.encounter, ServiceRequests.occurrence, ServiceRequests.asNeeded, ServiceRequests.authoredOn, ServiceRequests.requester, ServiceRequests.performerType, ServiceRequests.performer, ServiceRequests.locationCode, ServiceRequests.reasonCode, ServiceRequests.reasonReference, ServiceRequests.insurance, ServiceRequests.bodySite, ServiceRequests.note, ServiceRequests.patientInstruction }
define "SDE Ethnicity":
SDE."SDE Ethnicity"
define "SDE Payer":
SDE."SDE Payer"
define "SDE Race":
SDE."SDE Race"
define "SDE Sex":
SDE."SDE Sex"</code></pre>
</td>
</tr>
<tr>
<th colspan="2" scope="row" class="row-header">Generated using version 0.5.6 of the sample-content-ig Liquid templates</th>
</tr>
</tbody>
</table>
</div>
</text>
<extension
url="http://hl7.org/fhir/uv/crmi/StructureDefinition/crmi-softwaresystem">
<valueReference>
<reference value="Device/cqf-tooling"/>
</valueReference>
</extension>
<url
value="https://madie.cms.gov/Library/NHSNGlycemicControlHypoglycemiaInitialPopulation"/>
<identifier>
<use value="official"/>
<system value="https://madie.cms.gov/login"/>
<value value="NHSNGlycemicControlHypoglycemiaInitialPopulation"/>
</identifier>
<version value="1.1.000"/>
<name value="NHSNGlycemicControlHypoglycemiaInitialPopulation"/>
<title value="NHSNGlycemicControlHypoglycemiaInitialPopulation"/>
<status value="active"/>
<experimental value="false"/>
<type>
<coding>
<system value="http://terminology.hl7.org/CodeSystem/library-type"/>
<code value="logic-library"/>
</coding>
</type>
<date value="2025-08-21T20:27:13+00:00"/>
<publisher value="Centers for Disease Control and Prevention (CDC)"/>
<description value="NHSNGlycemicControlHypoglycemiaInitialPopulation"/>
<topic>
<text value="FHIR"/>
</topic>
<topic>
<text value="CQL"/>
</topic>
<content>
<contentType value="text/cql"/>
<data
value="LyoKTk9URTogRm9yIHVzZSBieSBNYXJjaCAyMDI2IFVTIFJlYWxtIENvbm5lY3RhdGhvbiBwYXJ0aWNpcGFudHMgZm9yIGludGVybmFsIHVzZSBvbmx5LiBOb3QgZm9yIHVzZSBvciBkaXN0cmlidXRpb24gaW4gY29tbWVyY2lhbCBwcm9kdWN0cy4KKi8KbGlicmFyeSBOSFNOR2x5Y2VtaWNDb250cm9sSHlwb2dseWNlbWlhSW5pdGlhbFBvcHVsYXRpb24gdmVyc2lvbiAnMS4xLjAwMCcKCnVzaW5nIFVTUXVhbGl0eUNvcmUgdmVyc2lvbiAnMC4xLjAtY2lidWlsZCcKdXNpbmcgVVNDb3JlIHZlcnNpb24gJzYuMS4wLWRlcml2ZWQnCnVzaW5nIEZISVIgdmVyc2lvbiAnNC4wLjEnCgppbmNsdWRlIGhsNy5maGlyLnV2LmNxbC5GSElSSGVscGVycyB2ZXJzaW9uICc0LjAuMScgY2FsbGVkIEZISVJIZWxwZXJzCmluY2x1ZGUgaGw3LmZoaXIudXYuY3FsLkZISVJDb21tb24gdmVyc2lvbiAnMi4wLjAnIGNhbGxlZCBGSElSQ29tbW9uCmluY2x1ZGUgaGw3LmZoaXIudXMuY3FsLlVTQ29yZUNvbW1vbiB2ZXJzaW9uICcyLjAuMC1iYWxsb3QnIGNhbGxlZCBVU0NvcmVDb21tb24KaW5jbHVkZSBobDcuZmhpci51cy5jcWwuVVNDb3JlRWxlbWVudHMgdmVyc2lvbiAnMi4wLjAtYmFsbG90JyBjYWxsZWQgVVNDb3JlRWxlbWVudHMKCmluY2x1ZGUgVVNRdWFsaXR5Q29yZUNvbW1vbiB2ZXJzaW9uICcwLjEuMC1jaWJ1aWxkJyBjYWxsZWQgVVNRdWFsaXR5Q29yZUNvbW1vbgppbmNsdWRlIFN1cHBsZW1lbnRhbERhdGFFbGVtZW50cyB2ZXJzaW9uICc2LjEuMDAwJyBjYWxsZWQgU0RFCmluY2x1ZGUgQ1FNQ29tbW9uIHZlcnNpb24gJzUuMS4wMDAnIGNhbGxlZCBDUU1Db21tb24KCmNvZGVzeXN0ZW0gIkFjdENvZGUiOiAnaHR0cDovL3Rlcm1pbm9sb2d5LmhsNy5vcmcvQ29kZVN5c3RlbS92My1BY3RDb2RlJwpjb2Rlc3lzdGVtICJIU0xPQyI6ICdodHRwczovL3d3dy5jZGMuZ292L25oc24vY2RhcG9ydGFsL3Rlcm1pbm9sb2d5L2NvZGVzeXN0ZW0vaHNsb2MuaHRtbCcKY29kZXN5c3RlbSAiTE9JTkMiOiAnaHR0cDovL2xvaW5jLm9yZycKY29kZXN5c3RlbSAiUnhOb3JtIjogJ2h0dHBzOi8vd3d3Lm5sbS5uaWguZ292L3Jlc2VhcmNoL3VtbHMvcnhub3JtL2luZGV4Lmh0bWwnCmNvZGVzeXN0ZW0gIlNOT01FRENUIjogJ2h0dHA6Ly9zbm9tZWQuaW5mby9zY3QnCgp2YWx1ZXNldCAiQmxvb2QgR2x1Y29zZSBMYWJvcmF0b3J5IGFuZCBQb2ludCBvZiBDYXJlIFRlc3RzIjogJ2h0dHA6Ly9jdHMubmxtLm5paC5nb3YvZmhpci9WYWx1ZVNldC8yLjE2Ljg0MC4xLjExMzc2Mi4xLjQuMTE5MC4zOCcKdmFsdWVzZXQgIkRpYWJldGVzIE1lZGljYXRpb25zIjogJ2h0dHA6Ly9jdHMubmxtLm5paC5nb3YvZmhpci9WYWx1ZVNldC8yLjE2Ljg0MC4xLjExMzc2Mi4xLjQuMTE5MC41OCcKdmFsdWVzZXQgIkVuY291bnRlciBJbnBhdGllbnQiOiAnaHR0cDovL2N0cy5ubG0ubmloLmdvdi9maGlyL1ZhbHVlU2V0LzIuMTYuODQwLjEuMTEzODgzLjMuNjY2LjUuMzA3Jwp2YWx1ZXNldCAiSW5wYXRpZW50LCBFbWVyZ2VuY3ksIGFuZCBPYnNlcnZhdGlvbiBMb2NhdGlvbnMiOiAnaHR0cDovL2N0cy5ubG0ubmloLmdvdi9maGlyL1ZhbHVlU2V0LzIuMTYuODQwLjEuMTEzNzYyLjEuNC4xMDQ2LjI2NScKdmFsdWVzZXQgIk5IU04gSW5wYXRpZW50IEVuY291bnRlciBDbGFzcyBDb2RlcyI6ICdodHRwOi8vY3RzLm5sbS5uaWguZ292L2ZoaXIvVmFsdWVTZXQvMi4xNi44NDAuMS4xMTM3NjIuMS40LjEwNDYuMjc0JwoKcGFyYW1ldGVyICJNZWFzdXJlbWVudCBQZXJpb2QiIEludGVydmFsPERhdGVUaW1lPgogIGRlZmF1bHQgSW50ZXJ2YWxbQDIwMjYtMDEtMDFUMDA6MDA6MDAuMDAwWiwgQDIwMjctMDEtMDFUMDA6MDA6MDAuMDAwWikKCmNvbnRleHQgUGF0aWVudAoKLy8gSW5pdGlhbCBQb3B1bGF0aW9uCgoKZGVmaW5lICJJbml0aWFsIFBvcHVsYXRpb24iOgogICggIklucGF0aWVudCBFbmNvdW50ZXJzIER1cmluZyBNZWFzdXJlbWVudCBQZXJpb2QiCiAgICB1bmlvbiAiRW5jb3VudGVycyB3aXRoIFBhdGllbnQgSG9zcGl0YWwgTG9jYXRpb25zIiApIElucGF0aWVudEVuY291bnRlcnMKICAgIHdpdGggIkFudGlkaWFiZXRpYyBEcnVncyBBZG1pbmlzdGVyZWQgb3IgT3JkZXJlZCIgQURECiAgICAgIHN1Y2ggdGhhdCBDb2FsZXNjZShzdGFydCBvZiBBREQuZWZmZWN0aXZlLnRvSW50ZXJ2YWwoKSwgQURELmF1dGhvcmVkT24pIGR1cmluZyBJbnBhdGllbnRFbmNvdW50ZXJzLiJob3NwaXRhbGl6YXRpb25XaXRoT2JzZXJ2YXRpb24iICggKQogICAgd2hlcmUgKCBJbnBhdGllbnRFbmNvdW50ZXJzLnN0YXR1cyA9ICdmaW5pc2hlZCcKICAgICAgICBvciBJbnBhdGllbnRFbmNvdW50ZXJzLnN0YXR1cyA9ICdpbi1wcm9ncmVzcycKICAgICAgICBvciBJbnBhdGllbnRFbmNvdW50ZXJzLnN0YXR1cyA9ICd0cmlhZ2VkJwogICAgICAgIG9yIElucGF0aWVudEVuY291bnRlcnMuc3RhdHVzID0gJ29ubGVhdmUnCiAgICAgICAgb3IgSW5wYXRpZW50RW5jb3VudGVycy5zdGF0dXMgPSAnZW50ZXJlZC1pbi1lcnJvcicKICAgICkKCmRlZmluZSAiSW5wYXRpZW50IEVuY291bnRlcnMgRHVyaW5nIE1lYXN1cmVtZW50IFBlcmlvZCI6CiAgW0VuY291bnRlcjogIkVuY291bnRlciBJbnBhdGllbnQiXSBJbnBhdGllbnRFbmNvdW50ZXJzCiAgICB3aGVyZSBJbnBhdGllbnRFbmNvdW50ZXJzLnBlcmlvZCBlbmRzIGR1cmluZyBkYXkgb2YgIk1lYXN1cmVtZW50IFBlcmlvZCIKICAgICAgYW5kICggSW5wYXRpZW50RW5jb3VudGVycy5jbGFzcyB+IFVTUXVhbGl0eUNvcmVDb21tb24uImlucGF0aWVudCBub24tYWN1dGUiCiAgICAgICAgICBvciBJbnBhdGllbnRFbmNvdW50ZXJzLmNsYXNzIH4gVVNRdWFsaXR5Q29yZUNvbW1vbi4iaW5wYXRpZW50IG5vbi1hY3V0ZSIKICAgICAgICAgIG9yIElucGF0aWVudEVuY291bnRlcnMuY2xhc3MgfiBVU1F1YWxpdHlDb3JlQ29tbW9uLiJzaG9ydCBzdGF5IgogICAgICAgICAgb3IgSW5wYXRpZW50RW5jb3VudGVycy5jbGFzcyB+IFVTUXVhbGl0eUNvcmVDb21tb24uImlucGF0aWVudCBhY3V0ZSIKICAgICAgICAgIG9yIElucGF0aWVudEVuY291bnRlcnMuY2xhc3MgfiBVU1F1YWxpdHlDb3JlQ29tbW9uLiJpbnBhdGllbnQgZW5jb3VudGVyIgogICAgICApCgpkZWZpbmUgIkVuY291bnRlcnMgd2l0aCBQYXRpZW50IEhvc3BpdGFsIExvY2F0aW9ucyI6CiAgIklucGF0aWVudCBFbmNvdW50ZXJzIER1cmluZyBNZWFzdXJlbWVudCBQZXJpb2QiIElucGF0aWVudEVuY291bnRlcgogICAgd2hlcmUgZXhpc3RzICggSW5wYXRpZW50RW5jb3VudGVyLmxvY2F0aW9uIEhvc3BpdGFsTG9jYXRpb24KICAgICAgICB3aGVyZSBIb3NwaXRhbExvY2F0aW9uLmxvY2F0aW9uLmdldExvY2F0aW9uICggKS50eXBlIGluICJJbnBhdGllbnQsIEVtZXJnZW5jeSwgYW5kIE9ic2VydmF0aW9uIExvY2F0aW9ucyIKICAgICAgICAgIGFuZCBIb3NwaXRhbExvY2F0aW9uLnBlcmlvZCBkdXJpbmcgZGF5IG9mIElucGF0aWVudEVuY291bnRlci5wZXJpb2QKICAgICkKCmRlZmluZSAiQW50aWRpYWJldGljIERydWdzIEFkbWluaXN0ZXJlZCBvciBPcmRlcmVkIjoKICAoICJNZWRpY2F0aW9uUmVxdWVzdHMiCiAgICB1bmlvbiAiTWVkaWNhdGlvbkFkbWluaXN0cmF0aW9ucyIgKSBNZWRSZXFPckFkbWluCiAgICB3aGVyZSBNZWRSZXFPckFkbWluLmdldE1lZGljYXRpb25Db2RlKCkgaW4gIkRpYWJldGVzIE1lZGljYXRpb25zIgoKLy9TdXBwbGVtZW50YWwgRGF0YSBFbGVtZW50cwoKCmRlZmluZSAiU0RFIEJsb29kIEdsdWNvc2UgT2JzZXJ2YXRpb24iOgogICggWyJMYWJvcmF0b3J5UmVzdWx0T2JzZXJ2YXRpb24iOiAiQmxvb2QgR2x1Y29zZSBMYWJvcmF0b3J5IGFuZCBQb2ludCBvZiBDYXJlIFRlc3RzIl0gR2x1Y29zZVRlc3QKICAgICAgd2hlcmUgZXhpc3RzICggIkluaXRpYWwgUG9wdWxhdGlvbiIgSW5pdGlhbFBvcHVsYXRpb24KICAgICAgICAgIHdoZXJlIHN0YXJ0IG9mIEdsdWNvc2VUZXN0LmVmZmVjdGl2ZS50b0ludGVydmFsICggKSBkdXJpbmcgZGF5IG9mIEluaXRpYWxQb3B1bGF0aW9uLnBlcmlvZAogICAgICAgICAgICBvciBHbHVjb3NlVGVzdC5pc3N1ZWQgZHVyaW5nIGRheSBvZiBJbml0aWFsUG9wdWxhdGlvbi5wZXJpb2QKICAgICAgKQogICAgICByZXR1cm4geyBHbHVjb3NlVGVzdC5pZCwgR2x1Y29zZVRlc3QuZXh0ZW5zaW9uLCBHbHVjb3NlVGVzdC50ZXh0LCBHbHVjb3NlVGVzdC5yZWZlcmVuY2VSYW5nZSwgR2x1Y29zZVRlc3QuY29tcG9uZW50LCBHbHVjb3NlVGVzdC5iYXNlZE9uLCBHbHVjb3NlVGVzdC5wYXJ0T2YsIEdsdWNvc2VUZXN0LmNhdGVnb3J5LCBHbHVjb3NlVGVzdC5zdGF0dXMsIEdsdWNvc2VUZXN0LnN1YmplY3QsIEdsdWNvc2VUZXN0LmZvY3VzLCBHbHVjb3NlVGVzdC5lbmNvdW50ZXIsIEdsdWNvc2VUZXN0LmVmZmVjdGl2ZSwgR2x1Y29zZVRlc3QuaXNzdWVkLCBHbHVjb3NlVGVzdC5wZXJmb3JtZXIsIEdsdWNvc2VUZXN0LnZhbHVlLCBHbHVjb3NlVGVzdC5kYXRhQWJzZW50UmVhc29uLCBHbHVjb3NlVGVzdC5pbnRlcnByZXRhdGlvbiwgR2x1Y29zZVRlc3Qubm90ZSwgR2x1Y29zZVRlc3QuYm9keVNpdGUsIEdsdWNvc2VUZXN0Lm1ldGhvZCwgR2x1Y29zZVRlc3Quc3BlY2ltZW4sIEdsdWNvc2VUZXN0LmRldmljZSwgR2x1Y29zZVRlc3QuaGFzTWVtYmVyLCBHbHVjb3NlVGVzdC5kZXJpdmVkRnJvbSB9CiAgKQoKZGVmaW5lICJTREUgQ2hpZWYgQ29tcGxhaW50IjoKICAiSW5pdGlhbCBQb3B1bGF0aW9uIiBJUAogICAgd2hlcmUgZXhpc3RzICggSVAuZGlhZ25vc2lzIEluaXRpYWxQb3B1bGF0aW9uRGlhZ25vc2lzCiAgICAgICAgd2hlcmUgSW5pdGlhbFBvcHVsYXRpb25EaWFnbm9zaXMudXNlIH4gRkhJUkNvbW1vbi4iQ0MiCiAgICApCiAgICByZXR1cm4geyBJUC5pZCwgSVAubWV0YSwgSVAuaWRlbnRpZmllciwgSVAuc3RhdHVzLCBJUC5zdGF0dXNIaXN0b3J5LCBJUC5jbGFzcywgSVAuY2xhc3NIaXN0b3J5LCBJUC50eXBlLCBJUC5zZXJ2aWNlVHlwZSwgSVAucHJpb3JpdHksIElQLnN1YmplY3QsIElQLnBlcmlvZCwgSVAubGVuZ3RoLCBJUC5yZWFzb25Db2RlLCBJUC5yZWFzb25SZWZlcmVuY2UsIElQLmRpYWdub3NpcywgSVAuYWNjb3VudCwgSVAuaG9zcGl0YWxpemF0aW9uLCBJUC5sb2NhdGlvbiwgSVAucGFydE9mIH0KCmRlZmluZSAiQ29uZGl0aW9ucyI6CiAgWyJDb25kaXRpb25Qcm9ibGVtc0hlYWx0aENvbmNlcm5zIl0KICAgIHVuaW9uIFsiQ29uZGl0aW9uRW5jb3VudGVyRGlhZ25vc2lzIl0KCmRlZmluZSAiU0RFIENvbmRpdGlvbiI6CiAgWyJDb25kaXRpb25Qcm9ibGVtc0hlYWx0aENvbmNlcm5zIl0gRGlhZ25vc2lzCiAgICB3aGVyZSBleGlzdHMgKCAiSW5pdGlhbCBQb3B1bGF0aW9uIiBJUAogICAgICAgIHdoZXJlIERpYWdub3Npcy5wcmV2YWxlbmNlSW50ZXJ2YWwgKCApIG92ZXJsYXBzIGRheSBvZiBJUC5wZXJpb2QKICAgICkKICAgIHJldHVybiB7IERpYWdub3Npcy5pZCwgRGlhZ25vc2lzLm1ldGEsIERpYWdub3Npcy5jbGluaWNhbFN0YXR1cywgRGlhZ25vc2lzLnZlcmlmaWNhdGlvblN0YXR1cywgRGlhZ25vc2lzLmNhdGVnb3J5LCBEaWFnbm9zaXMuc2V2ZXJpdHksIERpYWdub3Npcy5jb2RlLCBEaWFnbm9zaXMuYm9keVNpdGUsIERpYWdub3Npcy5zdWJqZWN0LCBEaWFnbm9zaXMuZW5jb3VudGVyLnJlZmVyZW5jZS5nZXRJZCgpLCBEaWFnbm9zaXMub25zZXQsIERpYWdub3Npcy5zdGFnZSwgRGlhZ25vc2lzLmV2aWRlbmNlLCBEaWFnbm9zaXMubm90ZSB9CgpkZWZpbmUgIlNERSBDb3ZlcmFnZSI6CiAgW0NvdmVyYWdlXSBDb3ZlcmFnZXMKICAgIHdoZXJlIGV4aXN0cyAoICJJbml0aWFsIFBvcHVsYXRpb24iIElQCiAgICAgICAgd2hlcmUgQ292ZXJhZ2VzLnBlcmlvZCBzdGFydHMgYmVmb3JlIG9yIG9uIGRheSBvZiBJUC5wZXJpb2QKICAgICAgICAgIGFuZCBlbmQgb2YgQ292ZXJhZ2VzLnBlcmlvZCBvbiBvciBhZnRlciBkYXkgb2YgZW5kIG9mIElQLnBlcmlvZAogICAgKQogICAgcmV0dXJuIHsgQ292ZXJhZ2VzLmlkLCBDb3ZlcmFnZXMubWV0YSwgQ292ZXJhZ2VzLnN0YXR1cywgQ292ZXJhZ2VzLnR5cGUsIENvdmVyYWdlcy5wb2xpY3lIb2xkZXIsIENvdmVyYWdlcy5zdWJzY3JpYmVyLCBDb3ZlcmFnZXMuc3Vic2NyaWJlcklkLCBDb3ZlcmFnZXMuYmVuZWZpY2lhcnksIENvdmVyYWdlcy5kZXBlbmRlbnQsIENvdmVyYWdlcy5yZWxhdGlvbnNoaXAsIENvdmVyYWdlcy5wZXJpb2QsIENvdmVyYWdlcy5wYXlvciwgQ292ZXJhZ2VzLmNsYXNzLCBDb3ZlcmFnZXMub3JkZXIsIENvdmVyYWdlcy5uZXR3b3JrLCBDb3ZlcmFnZXMuc3Vicm9nYXRpb24sIENvdmVyYWdlcy5jb250cmFjdCB9CgpkZWZpbmUgIkVuY291bnRlcnMiOgogIFtFbmNvdW50ZXJdCgpkZWZpbmUgIlNERSBFbmNvdW50ZXIgTG9jYXRpb25zIjoKICAiSW5pdGlhbCBQb3B1bGF0aW9uIiBJUAogICAgd2hlcmUgZXhpc3RzICggSVAubG9jYXRpb24gSW5pdGlhbFBvcHVsYXRpb25Mb2NhdGlvbgogICAgICAgIGxldCB0eXBlczogKCBJbml0aWFsUG9wdWxhdGlvbkxvY2F0aW9uLmxvY2F0aW9uICkuZ2V0TG9jYXRpb24gKCApLnR5cGUKICAgICAgICB3aGVyZSBleGlzdHMgKCB0eXBlcyB0eXBlCiAgICAgICAgICAgIHdoZXJlIHR5cGUgaW4gIklucGF0aWVudCwgRW1lcmdlbmN5LCBhbmQgT2JzZXJ2YXRpb24gTG9jYXRpb25zIgogICAgICAgICkKICAgICAgICAgIGFuZCBJbml0aWFsUG9wdWxhdGlvbkxvY2F0aW9uLnBlcmlvZCBkdXJpbmcgSVAucGVyaW9kCiAgICApCiAgICByZXR1cm4geyBJUC5pZCwgSVAubWV0YSwgSVAuaWRlbnRpZmllciwgSVAuc3RhdHVzLCBJUC5zdGF0dXNIaXN0b3J5LCBJUC5jbGFzcywgSVAuY2xhc3NIaXN0b3J5LCBJUC50eXBlLCBJUC5zZXJ2aWNlVHlwZSwgSVAucHJpb3JpdHksIElQLnN1YmplY3QsIElQLnBlcmlvZCwgSVAubGVuZ3RoLCBJUC5yZWFzb25Db2RlLCBJUC5yZWFzb25SZWZlcmVuY2UsIElQLmRpYWdub3NpcywgSVAuYWNjb3VudCwgSVAuaG9zcGl0YWxpemF0aW9uLCBJUC5sb2NhdGlvbiwgSVAucGFydE9mIH0KCmRlZmluZSAiR2V0IExvY2F0aW9ucyBmcm9tIEluaXRpYWwgUG9wdWxhdGlvbiI6CiAgZmxhdHRlbiAoICJJbml0aWFsIFBvcHVsYXRpb24iIElQCiAgICAgIGxldCBsb2NhdGlvbkVsZW1lbnRzOiBJUC5sb2NhdGlvbgogICAgICByZXR1cm4gbG9jYXRpb25FbGVtZW50cyBMRQogICAgICAgIGxldCBsb2NhdGlvblJlZmVyZW5jZTogTEUubG9jYXRpb24KICAgICAgICByZXR1cm4gKCBsb2NhdGlvblJlZmVyZW5jZS5nZXRMb2NhdGlvbiAoICkgKQogICkKCmRlZmluZSAiU0RFIExvY2F0aW9uIjoKICAiR2V0IExvY2F0aW9ucyBmcm9tIEluaXRpYWwgUG9wdWxhdGlvbiIgTG9jYXRpb25zCiAgICB3aGVyZSBleGlzdHMgIkluaXRpYWwgUG9wdWxhdGlvbiIKICAgICAgYW5kIExvY2F0aW9ucyBpcyBub3QgbnVsbAogICAgcmV0dXJuIHsgTG9jYXRpb25zLmlkLCBMb2NhdGlvbnMubWV0YSwgTG9jYXRpb25zLmV4dGVuc2lvbiwgTG9jYXRpb25zLnN0YXR1cywgTG9jYXRpb25zLm9wZXJhdGlvbmFsU3RhdHVzLCBMb2NhdGlvbnMubmFtZSwgTG9jYXRpb25zLmFsaWFzLCBMb2NhdGlvbnMuZGVzY3JpcHRpb24sIExvY2F0aW9ucy5tb2RlLCBMb2NhdGlvbnMudHlwZSwgTG9jYXRpb25zLnRlbGVjb20sIExvY2F0aW9ucy5hZGRyZXNzLCBMb2NhdGlvbnMucGh5c2ljYWxUeXBlLCBMb2NhdGlvbnMucG9zaXRpb24sIExvY2F0aW9ucy5tYW5hZ2luZ09yZ2FuaXphdGlvbiwgTG9jYXRpb25zLnBhcnRPZiwgTG9jYXRpb25zLmhvdXJzT2ZPcGVyYXRpb24sIExvY2F0aW9ucy5hdmFpbGFiaWxpdHlFeGNlcHRpb25zLCBMb2NhdGlvbnMuZW5kcG9pbnQgfQoKZGVmaW5lICJTREUgSW5pdGlhbCBQb3B1bGF0aW9uIEVuY291bnRlcnMiOgogICJJbml0aWFsIFBvcHVsYXRpb24iIElQCiAgICByZXR1cm4geyBJUC5pZCwgSVAubWV0YSwgSVAuaWRlbnRpZmllciwgSVAuc3RhdHVzLCBJUC5zdGF0dXNIaXN0b3J5LCBJUC5jbGFzcywgSVAuY2xhc3NIaXN0b3J5LCBJUC50eXBlLCBJUC5zZXJ2aWNlVHlwZSwgSVAucHJpb3JpdHksIElQLnN1YmplY3QsIElQLnBlcmlvZCwgSVAubGVuZ3RoLCBJUC5yZWFzb25Db2RlLCBJUC5yZWFzb25SZWZlcmVuY2UsIElQLmRpYWdub3NpcywgSVAuYWNjb3VudCwgSVAuaG9zcGl0YWxpemF0aW9uLCBJUC5sb2NhdGlvbiwgSVAucGFydE9mIH0KCmRlZmluZSAiU0RFIE1lZGljYXRpb24iOgogICggIk1lZGljYXRpb25SZXF1ZXN0cyIKICAgIHVuaW9uICJNZWRpY2F0aW9uQWRtaW5pc3RyYXRpb25zIiApIE1lZFJlcU9yQWRtaW4KICAgIGxldCBtZWRpY2F0aW9uOiBHZXRNZWRpY2F0aW9uKE1lZFJlcU9yQWRtaW4ubWVkaWNhdGlvbiBhcyBSZWZlcmVuY2UpCiAgICB3aGVyZSBtZWRpY2F0aW9uIGlzIG5vdCBudWxsCiAgICAgIGFuZCBleGlzdHMgKCAiSW5pdGlhbCBQb3B1bGF0aW9uIiBJUAogICAgICAgICAgd2hlcmUgQ29hbGVzY2UoTWVkUmVxT3JBZG1pbi5lZmZlY3RpdmUudG9JbnRlcnZhbCgpLCBNZWRSZXFPckFkbWluLmF1dGhvcmVkT24udG9JbnRlcnZhbCgpKSBvdmVybGFwcyBJUC4iaG9zcGl0YWxpemF0aW9uV2l0aE9ic2VydmF0aW9uIiAoICkKICAgICAgKQogICAgcmV0dXJuIHsgbWVkaWNhdGlvbi5pZCwgbWVkaWNhdGlvbi5tZXRhLCBtZWRpY2F0aW9uLmNvZGUsIG1lZGljYXRpb24uc3RhdHVzLCBtZWRpY2F0aW9uLm1hbnVmYWN0dXJlciwgbWVkaWNhdGlvbi5mb3JtLCBtZWRpY2F0aW9uLmFtb3VudCwgbWVkaWNhdGlvbi5pbmdyZWRpZW50LCBtZWRpY2F0aW9uLmJhdGNoIH0KCmRlZmluZSBmdW5jdGlvbiAiR2V0TWVkaWNhdGlvbiIocmVmZXJlbmNlIFJlZmVyZW5jZSk6CiAgc2luZ2xldG9uIGZyb20gKCBbTWVkaWNhdGlvbl0gTWVkaWNhdGlvbgogICAgICB3aGVyZSByZWZlcmVuY2UucmVmZXJlbmNlcyAoIE1lZGljYXRpb24gKQogICkKCmRlZmluZSAiTWVkaWNhdGlvbkFkbWluaXN0cmF0aW9ucyI6CiAgW01lZGljYXRpb25BZG1pbmlzdHJhdGlvbl0KCmRlZmluZSAiU0RFIE1lZGljYXRpb24gQWRtaW5pc3RyYXRpb24iOgogICJNZWRpY2F0aW9uQWRtaW5pc3RyYXRpb25zIiBNZWRBZG1pbmlzdHJhdGlvbnMKICAgIHdoZXJlIGV4aXN0cyAoICJJbml0aWFsIFBvcHVsYXRpb24iIEluaXRpYWxQb3B1bGF0aW9uCiAgICAgICAgd2hlcmUgTWVkQWRtaW5pc3RyYXRpb25zLmVmZmVjdGl2ZS50b0ludGVydmFsICggKSBvdmVybGFwcyBJbml0aWFsUG9wdWxhdGlvbi4iaG9zcGl0YWxpemF0aW9uV2l0aE9ic2VydmF0aW9uIiAoICkKICAgICkKICAgIHJldHVybiB7IE1lZEFkbWluaXN0cmF0aW9ucy5pZCwgTWVkQWRtaW5pc3RyYXRpb25zLm1ldGEsIE1lZEFkbWluaXN0cmF0aW9ucy5pbnN0YW50aWF0ZXMsIE1lZEFkbWluaXN0cmF0aW9ucy5wYXJ0T2YsIE1lZEFkbWluaXN0cmF0aW9ucy5zdGF0dXMsIE1lZEFkbWluaXN0cmF0aW9ucy5zdGF0dXNSZWFzb24sIE1lZEFkbWluaXN0cmF0aW9ucy5jYXRlZ29yeSwgTWVkQWRtaW5pc3RyYXRpb25zLm1lZGljYXRpb24sIE1lZEFkbWluaXN0cmF0aW9ucy5zdWJqZWN0LCBNZWRBZG1pbmlzdHJhdGlvbnMuY29udGV4dCwgTWVkQWRtaW5pc3RyYXRpb25zLnN1cHBvcnRpbmdJbmZvcm1hdGlvbiwgTWVkQWRtaW5pc3RyYXRpb25zLmVmZmVjdGl2ZSwgTWVkQWRtaW5pc3RyYXRpb25zLnBlcmZvcm1lciwgTWVkQWRtaW5pc3RyYXRpb25zLnJlYXNvbkNvZGUsIE1lZEFkbWluaXN0cmF0aW9ucy5yZWFzb25SZWZlcmVuY2UsIE1lZEFkbWluaXN0cmF0aW9ucy5yZXF1ZXN0LCBNZWRBZG1pbmlzdHJhdGlvbnMuZGV2aWNlLCBNZWRBZG1pbmlzdHJhdGlvbnMubm90ZSwgTWVkQWRtaW5pc3RyYXRpb25zLmRvc2FnZSB9CgpkZWZpbmUgIk1lZGljYXRpb25SZXF1ZXN0cyI6CiAgW01lZGljYXRpb25SZXF1ZXN0XQoKZGVmaW5lICJTREUgTWVkaWNhdGlvbiBSZXF1ZXN0IjoKICAiTWVkaWNhdGlvblJlcXVlc3RzIiBNZWRSZXF1ZXN0cwogICAgd2hlcmUgZXhpc3RzICggIkluaXRpYWwgUG9wdWxhdGlvbiIgSW5pdGlhbFBvcHVsYXRpb24KICAgICAgICB3aGVyZSBNZWRSZXF1ZXN0cy5hdXRob3JlZE9uIGR1cmluZyBJbml0aWFsUG9wdWxhdGlvbi4iaG9zcGl0YWxpemF0aW9uV2l0aE9ic2VydmF0aW9uIiAoICkKICAgICkKICAgIHJldHVybiB7IE1lZFJlcXVlc3RzLmlkLCBNZWRSZXF1ZXN0cy5tZXRhLCBNZWRSZXF1ZXN0cy5zdGF0dXMsIE1lZFJlcXVlc3RzLnN0YXR1c1JlYXNvbiwgTWVkUmVxdWVzdHMuaW50ZW50LCBNZWRSZXF1ZXN0cy5jYXRlZ29yeSwgTWVkUmVxdWVzdHMucHJpb3JpdHksIE1lZFJlcXVlc3RzLmRvTm90UGVyZm9ybSwgTWVkUmVxdWVzdHMucmVwb3J0ZWQsIE1lZFJlcXVlc3RzLm1lZGljYXRpb24sIE1lZFJlcXVlc3RzLnN1YmplY3QsIE1lZFJlcXVlc3RzLmVuY291bnRlciwgTWVkUmVxdWVzdHMuYXV0aG9yZWRPbiwgTWVkUmVxdWVzdHMucmVxdWVzdGVyLCBNZWRSZXF1ZXN0cy5yZWNvcmRlciwgTWVkUmVxdWVzdHMucmVhc29uQ29kZSwgTWVkUmVxdWVzdHMucmVhc29uUmVmZXJlbmNlLCBNZWRSZXF1ZXN0cy5pbnN0YW50aWF0ZXNDYW5vbmljYWwsIE1lZFJlcXVlc3RzLmluc3RhbnRpYXRlc1VyaSwgTWVkUmVxdWVzdHMuY291cnNlT2ZUaGVyYXB5VHlwZSwgTWVkUmVxdWVzdHMuZG9zYWdlSW5zdHJ1Y3Rpb24gfQoKZGVmaW5lICJTREUgTWluaW1hbCBQYXRpZW50IjoKICBbUGF0aWVudF0gTWluUHQKICAgIHdoZXJlIGV4aXN0cyAiSW5pdGlhbCBQb3B1bGF0aW9uIgogICAgcmV0dXJuIHsgTWluUHQuaWQsIE1pblB0Lm1ldGEsIE1pblB0LmV4dGVuc2lvbiwgTWluUHQuaWRlbnRpZmllciwgTWluUHQuYWN0aXZlLCBNaW5QdC5uYW1lLCBNaW5QdC50ZWxlY29tLCBNaW5QdC5nZW5kZXIsIE1pblB0LmJpcnRoRGF0ZSwgTWluUHQuZGVjZWFzZWQsIE1pblB0LmFkZHJlc3MsIE1pblB0Lm1hcml0YWxTdGF0dXMsIE1pblB0Lm11bHRpcGxlQmlydGgsIE1pblB0LnBob3RvLCBNaW5QdC5jb250YWN0LCBNaW5QdC5jb21tdW5pY2F0aW9uLCBNaW5QdC5nZW5lcmFsUHJhY3RpdGlvbmVyLCBNaW5QdC5tYW5hZ2luZ09yZ2FuaXphdGlvbiwgTWluUHQubGluayB9CgpkZWZpbmUgIlNERSBTZXJ2aWNlIFJlcXVlc3QiOgogIFtTZXJ2aWNlUmVxdWVzdF0gU2VydmljZVJlcXVlc3RzCiAgICB3aGVyZSBleGlzdHMgKCAiSW5pdGlhbCBQb3B1bGF0aW9uIiBJbml0aWFsUG9wdWxhdGlvbgogICAgICAgIHdoZXJlIFNlcnZpY2VSZXF1ZXN0cy5hdXRob3JlZE9uIGR1cmluZyBJbml0aWFsUG9wdWxhdGlvbi5wZXJpb2QKICAgICkKICAgIHJldHVybiB7IFNlcnZpY2VSZXF1ZXN0cy5pZCwgU2VydmljZVJlcXVlc3RzLm1ldGEsIFNlcnZpY2VSZXF1ZXN0cy5pbnN0YW50aWF0ZXNDYW5vbmljYWwsIFNlcnZpY2VSZXF1ZXN0cy5pbnN0YW50aWF0ZXNVcmksIFNlcnZpY2VSZXF1ZXN0cy5iYXNlZE9uLCBTZXJ2aWNlUmVxdWVzdHMucmVwbGFjZXMsIFNlcnZpY2VSZXF1ZXN0cy5yZXF1aXNpdGlvbiwgU2VydmljZVJlcXVlc3RzLnN0YXR1cywgU2VydmljZVJlcXVlc3RzLmludGVudCwgU2VydmljZVJlcXVlc3RzLmNhdGVnb3J5LCBTZXJ2aWNlUmVxdWVzdHMucHJpb3JpdHksIFNlcnZpY2VSZXF1ZXN0cy5kb05vdFBlcmZvcm0sIFNlcnZpY2VSZXF1ZXN0cy5jb2RlLCBTZXJ2aWNlUmVxdWVzdHMub3JkZXJEZXRhaWwsIFNlcnZpY2VSZXF1ZXN0cy5xdWFudGl0eSwgU2VydmljZVJlcXVlc3RzLnN1YmplY3QsIFNlcnZpY2VSZXF1ZXN0cy5lbmNvdW50ZXIsIFNlcnZpY2VSZXF1ZXN0cy5vY2N1cnJlbmNlLCBTZXJ2aWNlUmVxdWVzdHMuYXNOZWVkZWQsIFNlcnZpY2VSZXF1ZXN0cy5hdXRob3JlZE9uLCBTZXJ2aWNlUmVxdWVzdHMucmVxdWVzdGVyLCBTZXJ2aWNlUmVxdWVzdHMucGVyZm9ybWVyVHlwZSwgU2VydmljZVJlcXVlc3RzLnBlcmZvcm1lciwgU2VydmljZVJlcXVlc3RzLmxvY2F0aW9uQ29kZSwgU2VydmljZVJlcXVlc3RzLnJlYXNvbkNvZGUsIFNlcnZpY2VSZXF1ZXN0cy5yZWFzb25SZWZlcmVuY2UsIFNlcnZpY2VSZXF1ZXN0cy5pbnN1cmFuY2UsIFNlcnZpY2VSZXF1ZXN0cy5ib2R5U2l0ZSwgU2VydmljZVJlcXVlc3RzLm5vdGUsIFNlcnZpY2VSZXF1ZXN0cy5wYXRpZW50SW5zdHJ1Y3Rpb24gfQoKZGVmaW5lICJTREUgRXRobmljaXR5IjoKICBTREUuIlNERSBFdGhuaWNpdHkiCgpkZWZpbmUgIlNERSBQYXllciI6CiAgU0RFLiJTREUgUGF5ZXIiCgpkZWZpbmUgIlNERSBSYWNlIjoKICBTREUuIlNERSBSYWNlIgoKZGVmaW5lICJTREUgU2V4IjoKICBTREUuIlNERSBTZXgi"/>
<url
value="https://madie.cms.gov/Library-NHSNGlycemicControlHypoglycemiaInitialPopulation.cql"/>
</content>
</Library>