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
| Draft as of 2026-09-19 |
<Library xmlns="http://hl7.org/fhir">
<id value="CMS347FHIRStatinPreventionTxCVD"/>
<text>
<status value="extensions"/>
<div xmlns="http://www.w3.org/1999/xhtml">
<table class="narrative-table">
<tbody>
<tr>
<th colspan="2" scope="row" class="row-header"><a name="metadata"> </a>Metadata</th>
</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">Status</th>
<td class="content-container">Draft</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 CMS347FHIRStatinPreventionTxCVD 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.CumulativeMedicationDuration version '2.0.0-ballot' called CMD
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 Status version '2.1.000' called Status
include Hospice version '7.1.000' called Hospice
include PalliativeCare version '2.1.000' called PalliativeCare
codesystem "ICD10CM": 'http://hl7.org/fhir/sid/icd-10-cm'
codesystem "LOINC": 'http://loinc.org'
valueset "Annual Wellness Visit": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.526.3.1240'
valueset "Atherosclerosis and Peripheral Arterial Disease": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1047.21'
valueset "Breastfeeding": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1047.73'
valueset "CABG Surgeries": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.666.5.694'
valueset "CABG or PCI Procedure": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1138.566'
valueset "Carotid Intervention": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.117.1.7.1.204'
valueset "Cerebrovascular Disease Stroke or TIA": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1047.44'
valueset "Diabetes": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.103.12.1001'
valueset "End Stage Renal Disease": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.526.3.353'
valueset "Familial Hypercholesterolemia": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1047.100'
valueset "Hepatitis A": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.110.12.1024'
valueset "Hepatitis B": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.67.1.101.1.269'
valueset "High Intensity Statin Therapy": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.526.3.1572'
valueset "Ischemic Heart Disease or Other Related Diagnoses": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1047.46'
valueset "LDL Cholesterol": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.526.3.1573'
valueset "Liver Disease": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1047.42'
valueset "Low Intensity Statin Therapy": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.526.3.1574'
valueset "Medical Reason": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.526.3.1007'
valueset "Moderate Intensity Statin Therapy": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.526.3.1575'
valueset "Myocardial Infarction": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1108.101'
valueset "Office Visit": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.101.12.1001'
valueset "Outpatient Consultation": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.101.12.1008'
valueset "Outpatient Encounters for Preventive Care": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.526.3.1576'
valueset "PCI": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1045.67'
valueset "Preventive Care Services Established Office Visit, 18 and Up": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.101.12.1025'
valueset "Preventive Care Services Individual Counseling": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.101.12.1026'
valueset "Preventive Care Services Initial Office Visit, 18 and Up": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.101.12.1023'
valueset "Preventive Care Services Other": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113883.3.464.1003.101.11.1150'
valueset "Rhabdomyolysis": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1047.102'
valueset "Stable and Unstable Angina": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1047.47'
valueset "Statin Allergen": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1110.42'
valueset "Statin Associated Muscle Symptoms": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1108.85'
valueset "Telemedicine Services": 'http://cts.nlm.nih.gov/fhir/ValueSet/2.16.840.1.113762.1.4.1248.276'
code "Cardiovascular disease 10Y risk [Likelihood]": '99055-6' from "LOINC" display 'Cardiovascular disease 10Y risk [Likelihood]'
code "Cardiovascular disease 10Y risk [Likelihood] ACC-AHA Pooled Cohort by Goff 2013": '79423-0' from "LOINC" display 'Cardiovascular disease 10Y risk [Likelihood] ACC-AHA Pooled Cohort by Goff 2013'
code "Subsequent non-ST elevation (NSTEMI) myocardial infarction": 'I22.2' from "ICD10CM" display 'Subsequent non-ST elevation (NSTEMI) myocardial infarction'
parameter "Measurement Period" Interval<DateTime>
default Interval[@2026-01-01T00:00:00.000Z, @2027-01-01T00:00:00.000Z)
context Patient
define "Initial Population 1":
exists "ASCVD Diagnosis or Procedure before End of Measurement Period"
and exists "Qualifying Encounter During Day of Measurement Period"
define "Initial Population 2":
"Patients Aged 20 to 75 with LDL Cholesterol Result Greater than or Equal to 190 or Hypercholesterolemia without ASCVD"
and exists "Qualifying Encounter During Day of Measurement Period"
define "Initial Population 3":
"Patients Aged 40 to 75 Years with Diabetes without ASCVD or LDL Greater than 190 or Hypercholesterolemia"
and exists "Qualifying Encounter During Day of Measurement Period"
define "Initial Population 4":
"Patients Age 40 to 75 Years and have a 10 Year CVD Risk of High without ASCVD and High LDL and Diabetes"
and exists "Qualifying Encounter During Day of Measurement Period"
define "Denominator 1":
"Initial Population 1"
define "Denominator 2":
"Initial Population 2"
define "Denominator 3":
"Initial Population 3"
define "Denominator 4":
"Initial Population 4"
define "Denominator Exclusions":
// [E-13] base FHIR.Condition retrieve: sibling-profile union -> Choice<...> cannot widen to
// FHIR.Condition for .prevalenceInterval()/.isVerified() (defect-tracking/engine-issues.md E-13).
// Original:
// exists ( ( [ConditionProblemsHealthConcerns: "Breastfeeding"]
// union [ConditionProblemsHealthConcerns: "Rhabdomyolysis"]
// union [ConditionEncounterDiagnosis: "Breastfeeding"]
// union [ConditionEncounterDiagnosis: "Rhabdomyolysis"] ) ExclusionDiagnosis
exists ( ( [FHIR.Condition: "Breastfeeding"]
union [FHIR.Condition: "Rhabdomyolysis"] ) ExclusionDiagnosis
where ExclusionDiagnosis.prevalenceInterval ( ) overlaps day of "Measurement Period"
and ExclusionDiagnosis.isVerified ( )
)
define "Denominator Exceptions":
"Has Allergy to Statin"
or Hospice."Has Hospice Services"
or PalliativeCare."Has Palliative Care in the Measurement Period"
or "Has Hepatitis or Liver Disease Diagnosis"
or "Has Statin Associated Muscle Symptoms"
or "Has ESRD Diagnosis"
or "Has Adverse Reaction to Statin"
or "Has Medical Reason for Not Ordering Statin Therapy"
define "Numerator":
exists "Statin Therapy Ordered during Measurement Period"
or exists "Medication Active during the Measurement Period"
define "ASCVD Diagnosis or Procedure before End of Measurement Period":
( ( [ConditionProblemsHealthConcerns: "Myocardial Infarction"]
union [ConditionProblemsHealthConcerns: "Subsequent non-ST elevation (NSTEMI) myocardial infarction"]
union [ConditionProblemsHealthConcerns: "Cerebrovascular Disease Stroke or TIA"]
union [ConditionProblemsHealthConcerns: "Atherosclerosis and Peripheral Arterial Disease"]
union [ConditionProblemsHealthConcerns: "Ischemic Heart Disease or Other Related Diagnoses"]
union [ConditionProblemsHealthConcerns: "Stable and Unstable Angina"] ) ASCVDDiagnosis
where ASCVDDiagnosis.prevalenceInterval ( ) starts on or before day of end of "Measurement Period"
and ASCVDDiagnosis.isVerified ( )
)
union ( ( [Procedure: "PCI"]
union [Procedure: "CABG Surgeries"]
union [Procedure: "Carotid Intervention"]
union [Procedure: "CABG or PCI Procedure"] ) ASCVDProcedure
where ASCVDProcedure.performed.toInterval ( ) starts on or before day of end of "Measurement Period"
and ASCVDProcedure.status = 'completed'
)
define "Has Adverse Reaction to Statin":
exists ( [AdverseEvent: "Statin Allergen"] StatinReaction
where Coalesce(StatinReaction.date, StatinReaction.recordedDate) during day of "Measurement Period"
)
define "Has Allergy to Statin":
exists ( [AllergyIntolerance: "Statin Allergen"] StatinAllergy
where StatinAllergy.prevalenceInterval ( ) overlaps day of "Measurement Period"
and StatinAllergy.clinicalStatus ~ FHIRCommon."allergy-active"
)
define "Has Diabetes Diagnosis":
exists ( [ConditionProblemsHealthConcerns: "Diabetes"] DiabetesDiagnosis
where DiabetesDiagnosis.prevalenceInterval ( ) overlaps day of "Measurement Period"
and DiabetesDiagnosis.isVerified ( )
)
define "Has ESRD Diagnosis":
exists ( [ConditionProblemsHealthConcerns: "End Stage Renal Disease"] ESRD
where ESRD.prevalenceInterval ( ) overlaps day of "Measurement Period"
and ESRD.isVerified ( )
)
define "Has Hepatitis or Liver Disease Diagnosis":
exists ( ( [ConditionProblemsHealthConcerns: "Hepatitis A"]
union [ConditionProblemsHealthConcerns: "Hepatitis B"]
union [ConditionProblemsHealthConcerns: "Liver Disease"] ) HepatitisLiverDisease
where HepatitisLiverDisease.prevalenceInterval ( ) overlaps day of "Measurement Period"
and HepatitisLiverDisease.isVerified ( )
)
define "Has Medical Reason for Not Ordering Statin Therapy":
exists ( ( [MedicationNotRequested: "Low Intensity Statin Therapy"]
union [MedicationNotRequested: "Moderate Intensity Statin Therapy"]
union [MedicationNotRequested: "High Intensity Statin Therapy"] ) NoStatinTherapyOrdered
with "Qualifying Encounter During Day of Measurement Period" QualifyingEncounter
such that NoStatinTherapyOrdered.authoredOn during day of QualifyingEncounter.period
and NoStatinTherapyOrdered.status in { 'active', 'completed' }
and NoStatinTherapyOrdered.reasonCode in "Medical Reason"
)
define "Has Statin Associated Muscle Symptoms":
exists ( [ConditionProblemsHealthConcerns: "Statin Associated Muscle Symptoms"] StatinMuscleSymptom
where StatinMuscleSymptom.prevalenceInterval ( ) overlaps day of "Measurement Period"
and StatinMuscleSymptom.isVerified ( )
)
define "Hypercholesterolemia Diagnosis":
( [ConditionProblemsHealthConcerns: "Familial Hypercholesterolemia"] Hypercholesterolemia
where Hypercholesterolemia.prevalenceInterval ( ) starts on or before day of end of "Measurement Period"
and Hypercholesterolemia.isVerified ( )
)
define "LDL Result Greater Than or Equal To 190":
[LaboratoryResultObservation: "LDL Cholesterol"] LDL190
where LDL190.value as Quantity >= 190 'mg/dL'
and LDL190.effective.toInterval ( ) starts on or before day of end of "Measurement Period"
and LDL190.status in { 'final', 'amended', 'corrected', 'appended' }
define "Medication Active during the Measurement Period":
( [MedicationRequest: "Low Intensity Statin Therapy"]
union [MedicationRequest: "Moderate Intensity Statin Therapy"]
union [MedicationRequest: "High Intensity Statin Therapy"] ) ActiveStatin
where ActiveStatin.medicationRequestPeriod ( ) overlaps day of "Measurement Period"
and ActiveStatin.status in { 'active', 'completed' }
define "Patients Aged 20 to 75 with LDL Cholesterol Result Greater than or Equal to 190 or Hypercholesterolemia without ASCVD":
"Patients Aged 20 to 75 at Start of Measurement Period"
and exists ( "LDL Result Greater Than or Equal To 190"
union "Hypercholesterolemia Diagnosis"
)
and not exists ( "ASCVD Diagnosis or Procedure before End of Measurement Period" )
define "Patients Aged 20 to 75 at Start of Measurement Period":
AgeInYearsAt(date from start of "Measurement Period") in Interval[20, 75]
define "Patients Aged 40 to 75 Years with Diabetes without ASCVD or LDL Greater than 190 or Hypercholesterolemia":
AgeInYearsAt(date from start of "Measurement Period") in Interval[40, 75]
and "Has Diabetes Diagnosis"
and ( not exists "ASCVD Diagnosis or Procedure before End of Measurement Period"
and not exists "LDL Result Greater Than or Equal To 190"
and not exists "Hypercholesterolemia Diagnosis"
)
define "Patients Age 40 to 75 Years and have a 10 Year CVD Risk of High without ASCVD and High LDL and Diabetes":
AgeInYearsAt(date from start of "Measurement Period") in Interval[40, 75]
and "Ten Year CVD Risk is High"
and not ( exists "ASCVD Diagnosis or Procedure before End of Measurement Period"
or exists "Hypercholesterolemia Diagnosis"
or exists "LDL Result Greater Than or Equal To 190"
or "Has Diabetes Diagnosis"
)
define "Qualifying Encounter During Day of Measurement Period":
( [Encounter: "Annual Wellness Visit"]
union [Encounter: "Office Visit"]
union [Encounter: "Outpatient Consultation"]
union [Encounter: "Outpatient Encounters for Preventive Care"]
union [Encounter: "Preventive Care Services Established Office Visit, 18 and Up"]
union [Encounter: "Preventive Care Services Individual Counseling"]
union [Encounter: "Preventive Care Services Initial Office Visit, 18 and Up"]
union [Encounter: "Preventive Care Services Other"]
union [Encounter: "Telemedicine Services"] ) QualifyingEncounter
where QualifyingEncounter.period during day of "Measurement Period"
and QualifyingEncounter.status = 'finished'
define "Statin Therapy Ordered during Measurement Period":
( [MedicationRequest: "Low Intensity Statin Therapy"]
union [MedicationRequest: "Moderate Intensity Statin Therapy"]
union [MedicationRequest: "High Intensity Statin Therapy"] ) StatinRequest
where StatinRequest.authoredOn during day of "Measurement Period"
and StatinRequest.status in { 'active', 'completed' }
and StatinRequest.intent in { 'order', 'original-order', 'reflex-order', 'filter-order', 'instance-order' }
define "Ten Year CVD Risk is High":
exists ( ( [ObservationScreeningAssessment: "Cardiovascular disease 10Y risk [Likelihood]"]
union [ObservationScreeningAssessment: "Cardiovascular disease 10Y risk [Likelihood] ACC-AHA Pooled Cohort by Goff 2013"] ) AtRiskCVD
where AtRiskCVD.value as Quantity >= 20 '%'
and AtRiskCVD.effective.toInterval ( ) during day of "Measurement Period"
and AtRiskCVD.status in { 'final', 'amended', 'corrected' }
)
define fluent function isVerified(condition Choice<ConditionEncounterDiagnosis, ConditionProblemsHealthConcerns>):
condition.verificationStatus is not null implies ( condition.verificationStatus ~ Status."confirmed"
or condition.verificationStatus ~ Status."unconfirmed"
or condition.verificationStatus ~ Status."provisional"
or condition.verificationStatus ~ Status."differential"
)
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/CMS347FHIRStatinPreventionTxCVD"/>
<version value="1.1.000"/>
<name value="CMS347FHIRStatinPreventionTxCVD"/>
<status value="draft"/>
<type>
<coding>
<system value="http://terminology.hl7.org/CodeSystem/library-type"/>
<code value="logic-library"/>
</coding>
</type>
<date value="2026-09-19T16:31:14+00:00"/>
<content>
<contentType value="text/cql"/>
<data
value="LyoKTk9URTogRm9yIHVzZSBieSBNYXJjaCAyMDI2IFVTIFJlYWxtIENvbm5lY3RhdGhvbiBwYXJ0aWNpcGFudHMgZm9yIGludGVybmFsIHVzZSBvbmx5LiBOb3QgZm9yIHVzZSBvciBkaXN0cmlidXRpb24gaW4gY29tbWVyY2lhbCBwcm9kdWN0cy4KKi8KbGlicmFyeSBDTVMzNDdGSElSU3RhdGluUHJldmVudGlvblR4Q1ZEIHZlcnNpb24gJzEuMS4wMDAnCgp1c2luZyBVU1F1YWxpdHlDb3JlIHZlcnNpb24gJzAuMS4wLWNpYnVpbGQnCnVzaW5nIFVTQ29yZSB2ZXJzaW9uICc2LjEuMC1kZXJpdmVkJwp1c2luZyBGSElSIHZlcnNpb24gJzQuMC4xJwoKaW5jbHVkZSBobDcuZmhpci51di5jcWwuRkhJUkhlbHBlcnMgdmVyc2lvbiAnNC4wLjEnIGNhbGxlZCBGSElSSGVscGVycwppbmNsdWRlIGhsNy5maGlyLnV2LmNxbC5GSElSQ29tbW9uIHZlcnNpb24gJzIuMC4wJyBjYWxsZWQgRkhJUkNvbW1vbgppbmNsdWRlIGhsNy5maGlyLnVzLmNxbC5DdW11bGF0aXZlTWVkaWNhdGlvbkR1cmF0aW9uIHZlcnNpb24gJzIuMC4wLWJhbGxvdCcgY2FsbGVkIENNRAppbmNsdWRlIGhsNy5maGlyLnVzLmNxbC5VU0NvcmVDb21tb24gdmVyc2lvbiAnMi4wLjAtYmFsbG90JyBjYWxsZWQgVVNDb3JlQ29tbW9uCmluY2x1ZGUgaGw3LmZoaXIudXMuY3FsLlVTQ29yZUVsZW1lbnRzIHZlcnNpb24gJzIuMC4wLWJhbGxvdCcgY2FsbGVkIFVTQ29yZUVsZW1lbnRzCgppbmNsdWRlIFVTUXVhbGl0eUNvcmVDb21tb24gdmVyc2lvbiAnMC4xLjAtY2lidWlsZCcgY2FsbGVkIFVTUXVhbGl0eUNvcmVDb21tb24KaW5jbHVkZSBTdXBwbGVtZW50YWxEYXRhRWxlbWVudHMgdmVyc2lvbiAnNi4xLjAwMCcgY2FsbGVkIFNERQppbmNsdWRlIFN0YXR1cyB2ZXJzaW9uICcyLjEuMDAwJyBjYWxsZWQgU3RhdHVzCmluY2x1ZGUgSG9zcGljZSB2ZXJzaW9uICc3LjEuMDAwJyBjYWxsZWQgSG9zcGljZQppbmNsdWRlIFBhbGxpYXRpdmVDYXJlIHZlcnNpb24gJzIuMS4wMDAnIGNhbGxlZCBQYWxsaWF0aXZlQ2FyZQoKY29kZXN5c3RlbSAiSUNEMTBDTSI6ICdodHRwOi8vaGw3Lm9yZy9maGlyL3NpZC9pY2QtMTAtY20nCmNvZGVzeXN0ZW0gIkxPSU5DIjogJ2h0dHA6Ly9sb2luYy5vcmcnCgp2YWx1ZXNldCAiQW5udWFsIFdlbGxuZXNzIFZpc2l0IjogJ2h0dHA6Ly9jdHMubmxtLm5paC5nb3YvZmhpci9WYWx1ZVNldC8yLjE2Ljg0MC4xLjExMzg4My4zLjUyNi4zLjEyNDAnCnZhbHVlc2V0ICJBdGhlcm9zY2xlcm9zaXMgYW5kIFBlcmlwaGVyYWwgQXJ0ZXJpYWwgRGlzZWFzZSI6ICdodHRwOi8vY3RzLm5sbS5uaWguZ292L2ZoaXIvVmFsdWVTZXQvMi4xNi44NDAuMS4xMTM3NjIuMS40LjEwNDcuMjEnCnZhbHVlc2V0ICJCcmVhc3RmZWVkaW5nIjogJ2h0dHA6Ly9jdHMubmxtLm5paC5nb3YvZmhpci9WYWx1ZVNldC8yLjE2Ljg0MC4xLjExMzc2Mi4xLjQuMTA0Ny43MycKdmFsdWVzZXQgIkNBQkcgU3VyZ2VyaWVzIjogJ2h0dHA6Ly9jdHMubmxtLm5paC5nb3YvZmhpci9WYWx1ZVNldC8yLjE2Ljg0MC4xLjExMzg4My4zLjY2Ni41LjY5NCcKdmFsdWVzZXQgIkNBQkcgb3IgUENJIFByb2NlZHVyZSI6ICdodHRwOi8vY3RzLm5sbS5uaWguZ292L2ZoaXIvVmFsdWVTZXQvMi4xNi44NDAuMS4xMTM3NjIuMS40LjExMzguNTY2Jwp2YWx1ZXNldCAiQ2Fyb3RpZCBJbnRlcnZlbnRpb24iOiAnaHR0cDovL2N0cy5ubG0ubmloLmdvdi9maGlyL1ZhbHVlU2V0LzIuMTYuODQwLjEuMTEzODgzLjMuMTE3LjEuNy4xLjIwNCcKdmFsdWVzZXQgIkNlcmVicm92YXNjdWxhciBEaXNlYXNlIFN0cm9rZSBvciBUSUEiOiAnaHR0cDovL2N0cy5ubG0ubmloLmdvdi9maGlyL1ZhbHVlU2V0LzIuMTYuODQwLjEuMTEzNzYyLjEuNC4xMDQ3LjQ0Jwp2YWx1ZXNldCAiRGlhYmV0ZXMiOiAnaHR0cDovL2N0cy5ubG0ubmloLmdvdi9maGlyL1ZhbHVlU2V0LzIuMTYuODQwLjEuMTEzODgzLjMuNDY0LjEwMDMuMTAzLjEyLjEwMDEnCnZhbHVlc2V0ICJFbmQgU3RhZ2UgUmVuYWwgRGlzZWFzZSI6ICdodHRwOi8vY3RzLm5sbS5uaWguZ292L2ZoaXIvVmFsdWVTZXQvMi4xNi44NDAuMS4xMTM4ODMuMy41MjYuMy4zNTMnCnZhbHVlc2V0ICJGYW1pbGlhbCBIeXBlcmNob2xlc3Rlcm9sZW1pYSI6ICdodHRwOi8vY3RzLm5sbS5uaWguZ292L2ZoaXIvVmFsdWVTZXQvMi4xNi44NDAuMS4xMTM3NjIuMS40LjEwNDcuMTAwJwp2YWx1ZXNldCAiSGVwYXRpdGlzIEEiOiAnaHR0cDovL2N0cy5ubG0ubmloLmdvdi9maGlyL1ZhbHVlU2V0LzIuMTYuODQwLjEuMTEzODgzLjMuNDY0LjEwMDMuMTEwLjEyLjEwMjQnCnZhbHVlc2V0ICJIZXBhdGl0aXMgQiI6ICdodHRwOi8vY3RzLm5sbS5uaWguZ292L2ZoaXIvVmFsdWVTZXQvMi4xNi44NDAuMS4xMTM4ODMuMy42Ny4xLjEwMS4xLjI2OScKdmFsdWVzZXQgIkhpZ2ggSW50ZW5zaXR5IFN0YXRpbiBUaGVyYXB5IjogJ2h0dHA6Ly9jdHMubmxtLm5paC5nb3YvZmhpci9WYWx1ZVNldC8yLjE2Ljg0MC4xLjExMzg4My4zLjUyNi4zLjE1NzInCnZhbHVlc2V0ICJJc2NoZW1pYyBIZWFydCBEaXNlYXNlIG9yIE90aGVyIFJlbGF0ZWQgRGlhZ25vc2VzIjogJ2h0dHA6Ly9jdHMubmxtLm5paC5nb3YvZmhpci9WYWx1ZVNldC8yLjE2Ljg0MC4xLjExMzc2Mi4xLjQuMTA0Ny40NicKdmFsdWVzZXQgIkxETCBDaG9sZXN0ZXJvbCI6ICdodHRwOi8vY3RzLm5sbS5uaWguZ292L2ZoaXIvVmFsdWVTZXQvMi4xNi44NDAuMS4xMTM4ODMuMy41MjYuMy4xNTczJwp2YWx1ZXNldCAiTGl2ZXIgRGlzZWFzZSI6ICdodHRwOi8vY3RzLm5sbS5uaWguZ292L2ZoaXIvVmFsdWVTZXQvMi4xNi44NDAuMS4xMTM3NjIuMS40LjEwNDcuNDInCnZhbHVlc2V0ICJMb3cgSW50ZW5zaXR5IFN0YXRpbiBUaGVyYXB5IjogJ2h0dHA6Ly9jdHMubmxtLm5paC5nb3YvZmhpci9WYWx1ZVNldC8yLjE2Ljg0MC4xLjExMzg4My4zLjUyNi4zLjE1NzQnCnZhbHVlc2V0ICJNZWRpY2FsIFJlYXNvbiI6ICdodHRwOi8vY3RzLm5sbS5uaWguZ292L2ZoaXIvVmFsdWVTZXQvMi4xNi44NDAuMS4xMTM4ODMuMy41MjYuMy4xMDA3Jwp2YWx1ZXNldCAiTW9kZXJhdGUgSW50ZW5zaXR5IFN0YXRpbiBUaGVyYXB5IjogJ2h0dHA6Ly9jdHMubmxtLm5paC5nb3YvZmhpci9WYWx1ZVNldC8yLjE2Ljg0MC4xLjExMzg4My4zLjUyNi4zLjE1NzUnCnZhbHVlc2V0ICJNeW9jYXJkaWFsIEluZmFyY3Rpb24iOiAnaHR0cDovL2N0cy5ubG0ubmloLmdvdi9maGlyL1ZhbHVlU2V0LzIuMTYuODQwLjEuMTEzNzYyLjEuNC4xMTA4LjEwMScKdmFsdWVzZXQgIk9mZmljZSBWaXNpdCI6ICdodHRwOi8vY3RzLm5sbS5uaWguZ292L2ZoaXIvVmFsdWVTZXQvMi4xNi44NDAuMS4xMTM4ODMuMy40NjQuMTAwMy4xMDEuMTIuMTAwMScKdmFsdWVzZXQgIk91dHBhdGllbnQgQ29uc3VsdGF0aW9uIjogJ2h0dHA6Ly9jdHMubmxtLm5paC5nb3YvZmhpci9WYWx1ZVNldC8yLjE2Ljg0MC4xLjExMzg4My4zLjQ2NC4xMDAzLjEwMS4xMi4xMDA4Jwp2YWx1ZXNldCAiT3V0cGF0aWVudCBFbmNvdW50ZXJzIGZvciBQcmV2ZW50aXZlIENhcmUiOiAnaHR0cDovL2N0cy5ubG0ubmloLmdvdi9maGlyL1ZhbHVlU2V0LzIuMTYuODQwLjEuMTEzODgzLjMuNTI2LjMuMTU3NicKdmFsdWVzZXQgIlBDSSI6ICdodHRwOi8vY3RzLm5sbS5uaWguZ292L2ZoaXIvVmFsdWVTZXQvMi4xNi44NDAuMS4xMTM3NjIuMS40LjEwNDUuNjcnCnZhbHVlc2V0ICJQcmV2ZW50aXZlIENhcmUgU2VydmljZXMgRXN0YWJsaXNoZWQgT2ZmaWNlIFZpc2l0LCAxOCBhbmQgVXAiOiAnaHR0cDovL2N0cy5ubG0ubmloLmdvdi9maGlyL1ZhbHVlU2V0LzIuMTYuODQwLjEuMTEzODgzLjMuNDY0LjEwMDMuMTAxLjEyLjEwMjUnCnZhbHVlc2V0ICJQcmV2ZW50aXZlIENhcmUgU2VydmljZXMgSW5kaXZpZHVhbCBDb3Vuc2VsaW5nIjogJ2h0dHA6Ly9jdHMubmxtLm5paC5nb3YvZmhpci9WYWx1ZVNldC8yLjE2Ljg0MC4xLjExMzg4My4zLjQ2NC4xMDAzLjEwMS4xMi4xMDI2Jwp2YWx1ZXNldCAiUHJldmVudGl2ZSBDYXJlIFNlcnZpY2VzIEluaXRpYWwgT2ZmaWNlIFZpc2l0LCAxOCBhbmQgVXAiOiAnaHR0cDovL2N0cy5ubG0ubmloLmdvdi9maGlyL1ZhbHVlU2V0LzIuMTYuODQwLjEuMTEzODgzLjMuNDY0LjEwMDMuMTAxLjEyLjEwMjMnCnZhbHVlc2V0ICJQcmV2ZW50aXZlIENhcmUgU2VydmljZXMgT3RoZXIiOiAnaHR0cDovL2N0cy5ubG0ubmloLmdvdi9maGlyL1ZhbHVlU2V0LzIuMTYuODQwLjEuMTEzODgzLjMuNDY0LjEwMDMuMTAxLjExLjExNTAnCnZhbHVlc2V0ICJSaGFiZG9teW9seXNpcyI6ICdodHRwOi8vY3RzLm5sbS5uaWguZ292L2ZoaXIvVmFsdWVTZXQvMi4xNi44NDAuMS4xMTM3NjIuMS40LjEwNDcuMTAyJwp2YWx1ZXNldCAiU3RhYmxlIGFuZCBVbnN0YWJsZSBBbmdpbmEiOiAnaHR0cDovL2N0cy5ubG0ubmloLmdvdi9maGlyL1ZhbHVlU2V0LzIuMTYuODQwLjEuMTEzNzYyLjEuNC4xMDQ3LjQ3Jwp2YWx1ZXNldCAiU3RhdGluIEFsbGVyZ2VuIjogJ2h0dHA6Ly9jdHMubmxtLm5paC5nb3YvZmhpci9WYWx1ZVNldC8yLjE2Ljg0MC4xLjExMzc2Mi4xLjQuMTExMC40MicKdmFsdWVzZXQgIlN0YXRpbiBBc3NvY2lhdGVkIE11c2NsZSBTeW1wdG9tcyI6ICdodHRwOi8vY3RzLm5sbS5uaWguZ292L2ZoaXIvVmFsdWVTZXQvMi4xNi44NDAuMS4xMTM3NjIuMS40LjExMDguODUnCnZhbHVlc2V0ICJUZWxlbWVkaWNpbmUgU2VydmljZXMiOiAnaHR0cDovL2N0cy5ubG0ubmloLmdvdi9maGlyL1ZhbHVlU2V0LzIuMTYuODQwLjEuMTEzNzYyLjEuNC4xMjQ4LjI3NicKCmNvZGUgIkNhcmRpb3Zhc2N1bGFyIGRpc2Vhc2UgMTBZIHJpc2sgW0xpa2VsaWhvb2RdIjogJzk5MDU1LTYnIGZyb20gIkxPSU5DIiBkaXNwbGF5ICdDYXJkaW92YXNjdWxhciBkaXNlYXNlIDEwWSByaXNrIFtMaWtlbGlob29kXScKY29kZSAiQ2FyZGlvdmFzY3VsYXIgZGlzZWFzZSAxMFkgcmlzayBbTGlrZWxpaG9vZF0gQUNDLUFIQSBQb29sZWQgQ29ob3J0IGJ5IEdvZmYgMjAxMyI6ICc3OTQyMy0wJyBmcm9tICJMT0lOQyIgZGlzcGxheSAnQ2FyZGlvdmFzY3VsYXIgZGlzZWFzZSAxMFkgcmlzayBbTGlrZWxpaG9vZF0gQUNDLUFIQSBQb29sZWQgQ29ob3J0IGJ5IEdvZmYgMjAxMycKY29kZSAiU3Vic2VxdWVudCBub24tU1QgZWxldmF0aW9uIChOU1RFTUkpIG15b2NhcmRpYWwgaW5mYXJjdGlvbiI6ICdJMjIuMicgZnJvbSAiSUNEMTBDTSIgZGlzcGxheSAnU3Vic2VxdWVudCBub24tU1QgZWxldmF0aW9uIChOU1RFTUkpIG15b2NhcmRpYWwgaW5mYXJjdGlvbicKCnBhcmFtZXRlciAiTWVhc3VyZW1lbnQgUGVyaW9kIiBJbnRlcnZhbDxEYXRlVGltZT4KICBkZWZhdWx0IEludGVydmFsW0AyMDI2LTAxLTAxVDAwOjAwOjAwLjAwMFosIEAyMDI3LTAxLTAxVDAwOjAwOjAwLjAwMFopCgpjb250ZXh0IFBhdGllbnQKCmRlZmluZSAiSW5pdGlhbCBQb3B1bGF0aW9uIDEiOgogIGV4aXN0cyAiQVNDVkQgRGlhZ25vc2lzIG9yIFByb2NlZHVyZSBiZWZvcmUgRW5kIG9mIE1lYXN1cmVtZW50IFBlcmlvZCIKICAgIGFuZCBleGlzdHMgIlF1YWxpZnlpbmcgRW5jb3VudGVyIER1cmluZyBEYXkgb2YgTWVhc3VyZW1lbnQgUGVyaW9kIgoKZGVmaW5lICJJbml0aWFsIFBvcHVsYXRpb24gMiI6CiAgIlBhdGllbnRzIEFnZWQgMjAgdG8gNzUgd2l0aCBMREwgQ2hvbGVzdGVyb2wgUmVzdWx0IEdyZWF0ZXIgdGhhbiBvciBFcXVhbCB0byAxOTAgb3IgSHlwZXJjaG9sZXN0ZXJvbGVtaWEgd2l0aG91dCBBU0NWRCIKICAgIGFuZCBleGlzdHMgIlF1YWxpZnlpbmcgRW5jb3VudGVyIER1cmluZyBEYXkgb2YgTWVhc3VyZW1lbnQgUGVyaW9kIgoKZGVmaW5lICJJbml0aWFsIFBvcHVsYXRpb24gMyI6CiAgIlBhdGllbnRzIEFnZWQgNDAgdG8gNzUgWWVhcnMgd2l0aCBEaWFiZXRlcyB3aXRob3V0IEFTQ1ZEIG9yIExETCBHcmVhdGVyIHRoYW4gMTkwIG9yIEh5cGVyY2hvbGVzdGVyb2xlbWlhIgogICAgYW5kIGV4aXN0cyAiUXVhbGlmeWluZyBFbmNvdW50ZXIgRHVyaW5nIERheSBvZiBNZWFzdXJlbWVudCBQZXJpb2QiCgpkZWZpbmUgIkluaXRpYWwgUG9wdWxhdGlvbiA0IjoKICAiUGF0aWVudHMgQWdlIDQwIHRvIDc1IFllYXJzIGFuZCBoYXZlIGEgMTAgWWVhciBDVkQgUmlzayBvZiBIaWdoIHdpdGhvdXQgQVNDVkQgYW5kIEhpZ2ggTERMIGFuZCBEaWFiZXRlcyIKICAgIGFuZCBleGlzdHMgIlF1YWxpZnlpbmcgRW5jb3VudGVyIER1cmluZyBEYXkgb2YgTWVhc3VyZW1lbnQgUGVyaW9kIgoKZGVmaW5lICJEZW5vbWluYXRvciAxIjoKICAiSW5pdGlhbCBQb3B1bGF0aW9uIDEiCgpkZWZpbmUgIkRlbm9taW5hdG9yIDIiOgogICJJbml0aWFsIFBvcHVsYXRpb24gMiIKCmRlZmluZSAiRGVub21pbmF0b3IgMyI6CiAgIkluaXRpYWwgUG9wdWxhdGlvbiAzIgoKZGVmaW5lICJEZW5vbWluYXRvciA0IjoKICAiSW5pdGlhbCBQb3B1bGF0aW9uIDQiCgpkZWZpbmUgIkRlbm9taW5hdG9yIEV4Y2x1c2lvbnMiOgogIC8vIFtFLTEzXSBiYXNlIEZISVIuQ29uZGl0aW9uIHJldHJpZXZlOiBzaWJsaW5nLXByb2ZpbGUgdW5pb24gLT4gQ2hvaWNlPC4uLj4gY2Fubm90IHdpZGVuIHRvCiAgLy8gRkhJUi5Db25kaXRpb24gZm9yIC5wcmV2YWxlbmNlSW50ZXJ2YWwoKS8uaXNWZXJpZmllZCgpIChkZWZlY3QtdHJhY2tpbmcvZW5naW5lLWlzc3Vlcy5tZCBFLTEzKS4KICAvLyBPcmlnaW5hbDoKICAvLyAgIGV4aXN0cyAoICggW0NvbmRpdGlvblByb2JsZW1zSGVhbHRoQ29uY2VybnM6ICJCcmVhc3RmZWVkaW5nIl0KICAvLyAgICAgICB1bmlvbiBbQ29uZGl0aW9uUHJvYmxlbXNIZWFsdGhDb25jZXJuczogIlJoYWJkb215b2x5c2lzIl0KICAvLyAgICAgICB1bmlvbiBbQ29uZGl0aW9uRW5jb3VudGVyRGlhZ25vc2lzOiAiQnJlYXN0ZmVlZGluZyJdCiAgLy8gICAgICAgdW5pb24gW0NvbmRpdGlvbkVuY291bnRlckRpYWdub3NpczogIlJoYWJkb215b2x5c2lzIl0gKSBFeGNsdXNpb25EaWFnbm9zaXMKICBleGlzdHMgKCAoIFtGSElSLkNvbmRpdGlvbjogIkJyZWFzdGZlZWRpbmciXQogICAgICB1bmlvbiBbRkhJUi5Db25kaXRpb246ICJSaGFiZG9teW9seXNpcyJdICkgRXhjbHVzaW9uRGlhZ25vc2lzCiAgICAgIHdoZXJlIEV4Y2x1c2lvbkRpYWdub3Npcy5wcmV2YWxlbmNlSW50ZXJ2YWwgKCApIG92ZXJsYXBzIGRheSBvZiAiTWVhc3VyZW1lbnQgUGVyaW9kIgogICAgICAgIGFuZCBFeGNsdXNpb25EaWFnbm9zaXMuaXNWZXJpZmllZCAoICkKICApCgpkZWZpbmUgIkRlbm9taW5hdG9yIEV4Y2VwdGlvbnMiOgogICJIYXMgQWxsZXJneSB0byBTdGF0aW4iCiAgICBvciBIb3NwaWNlLiJIYXMgSG9zcGljZSBTZXJ2aWNlcyIKICAgIG9yIFBhbGxpYXRpdmVDYXJlLiJIYXMgUGFsbGlhdGl2ZSBDYXJlIGluIHRoZSBNZWFzdXJlbWVudCBQZXJpb2QiCiAgICBvciAiSGFzIEhlcGF0aXRpcyBvciBMaXZlciBEaXNlYXNlIERpYWdub3NpcyIKICAgIG9yICJIYXMgU3RhdGluIEFzc29jaWF0ZWQgTXVzY2xlIFN5bXB0b21zIgogICAgb3IgIkhhcyBFU1JEIERpYWdub3NpcyIKICAgIG9yICJIYXMgQWR2ZXJzZSBSZWFjdGlvbiB0byBTdGF0aW4iCiAgICBvciAiSGFzIE1lZGljYWwgUmVhc29uIGZvciBOb3QgT3JkZXJpbmcgU3RhdGluIFRoZXJhcHkiCgpkZWZpbmUgIk51bWVyYXRvciI6CiAgZXhpc3RzICJTdGF0aW4gVGhlcmFweSBPcmRlcmVkIGR1cmluZyBNZWFzdXJlbWVudCBQZXJpb2QiCiAgICBvciBleGlzdHMgIk1lZGljYXRpb24gQWN0aXZlIGR1cmluZyB0aGUgTWVhc3VyZW1lbnQgUGVyaW9kIgoKZGVmaW5lICJBU0NWRCBEaWFnbm9zaXMgb3IgUHJvY2VkdXJlIGJlZm9yZSBFbmQgb2YgTWVhc3VyZW1lbnQgUGVyaW9kIjoKICAoICggW0NvbmRpdGlvblByb2JsZW1zSGVhbHRoQ29uY2VybnM6ICJNeW9jYXJkaWFsIEluZmFyY3Rpb24iXQogICAgICB1bmlvbiBbQ29uZGl0aW9uUHJvYmxlbXNIZWFsdGhDb25jZXJuczogIlN1YnNlcXVlbnQgbm9uLVNUIGVsZXZhdGlvbiAoTlNURU1JKSBteW9jYXJkaWFsIGluZmFyY3Rpb24iXQogICAgICB1bmlvbiBbQ29uZGl0aW9uUHJvYmxlbXNIZWFsdGhDb25jZXJuczogIkNlcmVicm92YXNjdWxhciBEaXNlYXNlIFN0cm9rZSBvciBUSUEiXQogICAgICB1bmlvbiBbQ29uZGl0aW9uUHJvYmxlbXNIZWFsdGhDb25jZXJuczogIkF0aGVyb3NjbGVyb3NpcyBhbmQgUGVyaXBoZXJhbCBBcnRlcmlhbCBEaXNlYXNlIl0KICAgICAgdW5pb24gW0NvbmRpdGlvblByb2JsZW1zSGVhbHRoQ29uY2VybnM6ICJJc2NoZW1pYyBIZWFydCBEaXNlYXNlIG9yIE90aGVyIFJlbGF0ZWQgRGlhZ25vc2VzIl0KICAgICAgdW5pb24gW0NvbmRpdGlvblByb2JsZW1zSGVhbHRoQ29uY2VybnM6ICJTdGFibGUgYW5kIFVuc3RhYmxlIEFuZ2luYSJdICkgQVNDVkREaWFnbm9zaXMKICAgICAgd2hlcmUgQVNDVkREaWFnbm9zaXMucHJldmFsZW5jZUludGVydmFsICggKSBzdGFydHMgb24gb3IgYmVmb3JlIGRheSBvZiBlbmQgb2YgIk1lYXN1cmVtZW50IFBlcmlvZCIKICAgICAgICBhbmQgQVNDVkREaWFnbm9zaXMuaXNWZXJpZmllZCAoICkKICApCiAgICB1bmlvbiAoICggW1Byb2NlZHVyZTogIlBDSSJdCiAgICAgICAgdW5pb24gW1Byb2NlZHVyZTogIkNBQkcgU3VyZ2VyaWVzIl0KICAgICAgICB1bmlvbiBbUHJvY2VkdXJlOiAiQ2Fyb3RpZCBJbnRlcnZlbnRpb24iXQogICAgICAgIHVuaW9uIFtQcm9jZWR1cmU6ICJDQUJHIG9yIFBDSSBQcm9jZWR1cmUiXSApIEFTQ1ZEUHJvY2VkdXJlCiAgICAgICAgd2hlcmUgQVNDVkRQcm9jZWR1cmUucGVyZm9ybWVkLnRvSW50ZXJ2YWwgKCApIHN0YXJ0cyBvbiBvciBiZWZvcmUgZGF5IG9mIGVuZCBvZiAiTWVhc3VyZW1lbnQgUGVyaW9kIgogICAgICAgICAgYW5kIEFTQ1ZEUHJvY2VkdXJlLnN0YXR1cyA9ICdjb21wbGV0ZWQnCiAgICApCgpkZWZpbmUgIkhhcyBBZHZlcnNlIFJlYWN0aW9uIHRvIFN0YXRpbiI6CiAgZXhpc3RzICggW0FkdmVyc2VFdmVudDogIlN0YXRpbiBBbGxlcmdlbiJdIFN0YXRpblJlYWN0aW9uCiAgICAgIHdoZXJlIENvYWxlc2NlKFN0YXRpblJlYWN0aW9uLmRhdGUsIFN0YXRpblJlYWN0aW9uLnJlY29yZGVkRGF0ZSkgZHVyaW5nIGRheSBvZiAiTWVhc3VyZW1lbnQgUGVyaW9kIgogICkKCmRlZmluZSAiSGFzIEFsbGVyZ3kgdG8gU3RhdGluIjoKICBleGlzdHMgKCBbQWxsZXJneUludG9sZXJhbmNlOiAiU3RhdGluIEFsbGVyZ2VuIl0gU3RhdGluQWxsZXJneQogICAgICB3aGVyZSBTdGF0aW5BbGxlcmd5LnByZXZhbGVuY2VJbnRlcnZhbCAoICkgb3ZlcmxhcHMgZGF5IG9mICJNZWFzdXJlbWVudCBQZXJpb2QiCiAgICAgICAgYW5kIFN0YXRpbkFsbGVyZ3kuY2xpbmljYWxTdGF0dXMgfiBGSElSQ29tbW9uLiJhbGxlcmd5LWFjdGl2ZSIKICApCgpkZWZpbmUgIkhhcyBEaWFiZXRlcyBEaWFnbm9zaXMiOgogIGV4aXN0cyAoIFtDb25kaXRpb25Qcm9ibGVtc0hlYWx0aENvbmNlcm5zOiAiRGlhYmV0ZXMiXSBEaWFiZXRlc0RpYWdub3NpcwogICAgICB3aGVyZSBEaWFiZXRlc0RpYWdub3Npcy5wcmV2YWxlbmNlSW50ZXJ2YWwgKCApIG92ZXJsYXBzIGRheSBvZiAiTWVhc3VyZW1lbnQgUGVyaW9kIgogICAgICAgIGFuZCBEaWFiZXRlc0RpYWdub3Npcy5pc1ZlcmlmaWVkICggKQogICkKCmRlZmluZSAiSGFzIEVTUkQgRGlhZ25vc2lzIjoKICBleGlzdHMgKCBbQ29uZGl0aW9uUHJvYmxlbXNIZWFsdGhDb25jZXJuczogIkVuZCBTdGFnZSBSZW5hbCBEaXNlYXNlIl0gRVNSRAogICAgICB3aGVyZSBFU1JELnByZXZhbGVuY2VJbnRlcnZhbCAoICkgb3ZlcmxhcHMgZGF5IG9mICJNZWFzdXJlbWVudCBQZXJpb2QiCiAgICAgICAgYW5kIEVTUkQuaXNWZXJpZmllZCAoICkKICApCgpkZWZpbmUgIkhhcyBIZXBhdGl0aXMgb3IgTGl2ZXIgRGlzZWFzZSBEaWFnbm9zaXMiOgogIGV4aXN0cyAoICggW0NvbmRpdGlvblByb2JsZW1zSGVhbHRoQ29uY2VybnM6ICJIZXBhdGl0aXMgQSJdCiAgICAgIHVuaW9uIFtDb25kaXRpb25Qcm9ibGVtc0hlYWx0aENvbmNlcm5zOiAiSGVwYXRpdGlzIEIiXQogICAgICB1bmlvbiBbQ29uZGl0aW9uUHJvYmxlbXNIZWFsdGhDb25jZXJuczogIkxpdmVyIERpc2Vhc2UiXSApIEhlcGF0aXRpc0xpdmVyRGlzZWFzZQogICAgICB3aGVyZSBIZXBhdGl0aXNMaXZlckRpc2Vhc2UucHJldmFsZW5jZUludGVydmFsICggKSBvdmVybGFwcyBkYXkgb2YgIk1lYXN1cmVtZW50IFBlcmlvZCIKICAgICAgICBhbmQgSGVwYXRpdGlzTGl2ZXJEaXNlYXNlLmlzVmVyaWZpZWQgKCApCiAgKQoKZGVmaW5lICJIYXMgTWVkaWNhbCBSZWFzb24gZm9yIE5vdCBPcmRlcmluZyBTdGF0aW4gVGhlcmFweSI6CiAgZXhpc3RzICggKCBbTWVkaWNhdGlvbk5vdFJlcXVlc3RlZDogIkxvdyBJbnRlbnNpdHkgU3RhdGluIFRoZXJhcHkiXQogICAgICB1bmlvbiBbTWVkaWNhdGlvbk5vdFJlcXVlc3RlZDogIk1vZGVyYXRlIEludGVuc2l0eSBTdGF0aW4gVGhlcmFweSJdCiAgICAgIHVuaW9uIFtNZWRpY2F0aW9uTm90UmVxdWVzdGVkOiAiSGlnaCBJbnRlbnNpdHkgU3RhdGluIFRoZXJhcHkiXSApIE5vU3RhdGluVGhlcmFweU9yZGVyZWQKICAgICAgd2l0aCAiUXVhbGlmeWluZyBFbmNvdW50ZXIgRHVyaW5nIERheSBvZiBNZWFzdXJlbWVudCBQZXJpb2QiIFF1YWxpZnlpbmdFbmNvdW50ZXIKICAgICAgICBzdWNoIHRoYXQgTm9TdGF0aW5UaGVyYXB5T3JkZXJlZC5hdXRob3JlZE9uIGR1cmluZyBkYXkgb2YgUXVhbGlmeWluZ0VuY291bnRlci5wZXJpb2QKICAgICAgICAgIGFuZCBOb1N0YXRpblRoZXJhcHlPcmRlcmVkLnN0YXR1cyBpbiB7ICdhY3RpdmUnLCAnY29tcGxldGVkJyB9CiAgICAgICAgICBhbmQgTm9TdGF0aW5UaGVyYXB5T3JkZXJlZC5yZWFzb25Db2RlIGluICJNZWRpY2FsIFJlYXNvbiIKICApCgpkZWZpbmUgIkhhcyBTdGF0aW4gQXNzb2NpYXRlZCBNdXNjbGUgU3ltcHRvbXMiOgogIGV4aXN0cyAoIFtDb25kaXRpb25Qcm9ibGVtc0hlYWx0aENvbmNlcm5zOiAiU3RhdGluIEFzc29jaWF0ZWQgTXVzY2xlIFN5bXB0b21zIl0gU3RhdGluTXVzY2xlU3ltcHRvbQogICAgICB3aGVyZSBTdGF0aW5NdXNjbGVTeW1wdG9tLnByZXZhbGVuY2VJbnRlcnZhbCAoICkgb3ZlcmxhcHMgZGF5IG9mICJNZWFzdXJlbWVudCBQZXJpb2QiCiAgICAgICAgYW5kIFN0YXRpbk11c2NsZVN5bXB0b20uaXNWZXJpZmllZCAoICkKICApCgpkZWZpbmUgIkh5cGVyY2hvbGVzdGVyb2xlbWlhIERpYWdub3NpcyI6CiAgKCBbQ29uZGl0aW9uUHJvYmxlbXNIZWFsdGhDb25jZXJuczogIkZhbWlsaWFsIEh5cGVyY2hvbGVzdGVyb2xlbWlhIl0gSHlwZXJjaG9sZXN0ZXJvbGVtaWEKICAgICAgd2hlcmUgSHlwZXJjaG9sZXN0ZXJvbGVtaWEucHJldmFsZW5jZUludGVydmFsICggKSBzdGFydHMgb24gb3IgYmVmb3JlIGRheSBvZiBlbmQgb2YgIk1lYXN1cmVtZW50IFBlcmlvZCIKICAgICAgICBhbmQgSHlwZXJjaG9sZXN0ZXJvbGVtaWEuaXNWZXJpZmllZCAoICkKICApCgpkZWZpbmUgIkxETCBSZXN1bHQgR3JlYXRlciBUaGFuIG9yIEVxdWFsIFRvIDE5MCI6CiAgW0xhYm9yYXRvcnlSZXN1bHRPYnNlcnZhdGlvbjogIkxETCBDaG9sZXN0ZXJvbCJdIExETDE5MAogICAgd2hlcmUgTERMMTkwLnZhbHVlIGFzIFF1YW50aXR5ID49IDE5MCAnbWcvZEwnCiAgICAgIGFuZCBMREwxOTAuZWZmZWN0aXZlLnRvSW50ZXJ2YWwgKCApIHN0YXJ0cyBvbiBvciBiZWZvcmUgZGF5IG9mIGVuZCBvZiAiTWVhc3VyZW1lbnQgUGVyaW9kIgogICAgICBhbmQgTERMMTkwLnN0YXR1cyBpbiB7ICdmaW5hbCcsICdhbWVuZGVkJywgJ2NvcnJlY3RlZCcsICdhcHBlbmRlZCcgfQoKZGVmaW5lICJNZWRpY2F0aW9uIEFjdGl2ZSBkdXJpbmcgdGhlIE1lYXN1cmVtZW50IFBlcmlvZCI6CiAgKCBbTWVkaWNhdGlvblJlcXVlc3Q6ICJMb3cgSW50ZW5zaXR5IFN0YXRpbiBUaGVyYXB5Il0KICAgIHVuaW9uIFtNZWRpY2F0aW9uUmVxdWVzdDogIk1vZGVyYXRlIEludGVuc2l0eSBTdGF0aW4gVGhlcmFweSJdCiAgICB1bmlvbiBbTWVkaWNhdGlvblJlcXVlc3Q6ICJIaWdoIEludGVuc2l0eSBTdGF0aW4gVGhlcmFweSJdICkgQWN0aXZlU3RhdGluCiAgICB3aGVyZSBBY3RpdmVTdGF0aW4ubWVkaWNhdGlvblJlcXVlc3RQZXJpb2QgKCApIG92ZXJsYXBzIGRheSBvZiAiTWVhc3VyZW1lbnQgUGVyaW9kIgogICAgICBhbmQgQWN0aXZlU3RhdGluLnN0YXR1cyBpbiB7ICdhY3RpdmUnLCAnY29tcGxldGVkJyB9CgpkZWZpbmUgIlBhdGllbnRzIEFnZWQgMjAgdG8gNzUgd2l0aCBMREwgQ2hvbGVzdGVyb2wgUmVzdWx0IEdyZWF0ZXIgdGhhbiBvciBFcXVhbCB0byAxOTAgb3IgSHlwZXJjaG9sZXN0ZXJvbGVtaWEgd2l0aG91dCBBU0NWRCI6CiAgIlBhdGllbnRzIEFnZWQgMjAgdG8gNzUgYXQgU3RhcnQgb2YgTWVhc3VyZW1lbnQgUGVyaW9kIgogICAgYW5kIGV4aXN0cyAoICJMREwgUmVzdWx0IEdyZWF0ZXIgVGhhbiBvciBFcXVhbCBUbyAxOTAiCiAgICAgICAgdW5pb24gIkh5cGVyY2hvbGVzdGVyb2xlbWlhIERpYWdub3NpcyIKICAgICkKICAgIGFuZCBub3QgZXhpc3RzICggIkFTQ1ZEIERpYWdub3NpcyBvciBQcm9jZWR1cmUgYmVmb3JlIEVuZCBvZiBNZWFzdXJlbWVudCBQZXJpb2QiICkKCmRlZmluZSAiUGF0aWVudHMgQWdlZCAyMCB0byA3NSBhdCBTdGFydCBvZiBNZWFzdXJlbWVudCBQZXJpb2QiOgogIEFnZUluWWVhcnNBdChkYXRlIGZyb20gc3RhcnQgb2YgIk1lYXN1cmVtZW50IFBlcmlvZCIpIGluIEludGVydmFsWzIwLCA3NV0KCmRlZmluZSAiUGF0aWVudHMgQWdlZCA0MCB0byA3NSBZZWFycyB3aXRoIERpYWJldGVzIHdpdGhvdXQgQVNDVkQgb3IgTERMIEdyZWF0ZXIgdGhhbiAxOTAgb3IgSHlwZXJjaG9sZXN0ZXJvbGVtaWEiOgogIEFnZUluWWVhcnNBdChkYXRlIGZyb20gc3RhcnQgb2YgIk1lYXN1cmVtZW50IFBlcmlvZCIpIGluIEludGVydmFsWzQwLCA3NV0KICAgIGFuZCAiSGFzIERpYWJldGVzIERpYWdub3NpcyIKICAgIGFuZCAoIG5vdCBleGlzdHMgIkFTQ1ZEIERpYWdub3NpcyBvciBQcm9jZWR1cmUgYmVmb3JlIEVuZCBvZiBNZWFzdXJlbWVudCBQZXJpb2QiCiAgICAgICAgYW5kIG5vdCBleGlzdHMgIkxETCBSZXN1bHQgR3JlYXRlciBUaGFuIG9yIEVxdWFsIFRvIDE5MCIKICAgICAgICBhbmQgbm90IGV4aXN0cyAiSHlwZXJjaG9sZXN0ZXJvbGVtaWEgRGlhZ25vc2lzIgogICAgKQoKZGVmaW5lICJQYXRpZW50cyBBZ2UgNDAgdG8gNzUgWWVhcnMgYW5kIGhhdmUgYSAxMCBZZWFyIENWRCBSaXNrIG9mIEhpZ2ggd2l0aG91dCBBU0NWRCBhbmQgSGlnaCBMREwgYW5kIERpYWJldGVzIjoKICBBZ2VJblllYXJzQXQoZGF0ZSBmcm9tIHN0YXJ0IG9mICJNZWFzdXJlbWVudCBQZXJpb2QiKSBpbiBJbnRlcnZhbFs0MCwgNzVdCiAgICBhbmQgIlRlbiBZZWFyIENWRCBSaXNrIGlzIEhpZ2giCiAgICBhbmQgbm90ICggZXhpc3RzICJBU0NWRCBEaWFnbm9zaXMgb3IgUHJvY2VkdXJlIGJlZm9yZSBFbmQgb2YgTWVhc3VyZW1lbnQgUGVyaW9kIgogICAgICAgIG9yIGV4aXN0cyAiSHlwZXJjaG9sZXN0ZXJvbGVtaWEgRGlhZ25vc2lzIgogICAgICAgIG9yIGV4aXN0cyAiTERMIFJlc3VsdCBHcmVhdGVyIFRoYW4gb3IgRXF1YWwgVG8gMTkwIgogICAgICAgIG9yICJIYXMgRGlhYmV0ZXMgRGlhZ25vc2lzIgogICAgKQoKZGVmaW5lICJRdWFsaWZ5aW5nIEVuY291bnRlciBEdXJpbmcgRGF5IG9mIE1lYXN1cmVtZW50IFBlcmlvZCI6CiAgKCBbRW5jb3VudGVyOiAiQW5udWFsIFdlbGxuZXNzIFZpc2l0Il0KICAgIHVuaW9uIFtFbmNvdW50ZXI6ICJPZmZpY2UgVmlzaXQiXQogICAgdW5pb24gW0VuY291bnRlcjogIk91dHBhdGllbnQgQ29uc3VsdGF0aW9uIl0KICAgIHVuaW9uIFtFbmNvdW50ZXI6ICJPdXRwYXRpZW50IEVuY291bnRlcnMgZm9yIFByZXZlbnRpdmUgQ2FyZSJdCiAgICB1bmlvbiBbRW5jb3VudGVyOiAiUHJldmVudGl2ZSBDYXJlIFNlcnZpY2VzIEVzdGFibGlzaGVkIE9mZmljZSBWaXNpdCwgMTggYW5kIFVwIl0KICAgIHVuaW9uIFtFbmNvdW50ZXI6ICJQcmV2ZW50aXZlIENhcmUgU2VydmljZXMgSW5kaXZpZHVhbCBDb3Vuc2VsaW5nIl0KICAgIHVuaW9uIFtFbmNvdW50ZXI6ICJQcmV2ZW50aXZlIENhcmUgU2VydmljZXMgSW5pdGlhbCBPZmZpY2UgVmlzaXQsIDE4IGFuZCBVcCJdCiAgICB1bmlvbiBbRW5jb3VudGVyOiAiUHJldmVudGl2ZSBDYXJlIFNlcnZpY2VzIE90aGVyIl0KICAgIHVuaW9uIFtFbmNvdW50ZXI6ICJUZWxlbWVkaWNpbmUgU2VydmljZXMiXSApIFF1YWxpZnlpbmdFbmNvdW50ZXIKICAgIHdoZXJlIFF1YWxpZnlpbmdFbmNvdW50ZXIucGVyaW9kIGR1cmluZyBkYXkgb2YgIk1lYXN1cmVtZW50IFBlcmlvZCIKICAgICAgYW5kIFF1YWxpZnlpbmdFbmNvdW50ZXIuc3RhdHVzID0gJ2ZpbmlzaGVkJwoKZGVmaW5lICJTdGF0aW4gVGhlcmFweSBPcmRlcmVkIGR1cmluZyBNZWFzdXJlbWVudCBQZXJpb2QiOgogICggW01lZGljYXRpb25SZXF1ZXN0OiAiTG93IEludGVuc2l0eSBTdGF0aW4gVGhlcmFweSJdCiAgICB1bmlvbiBbTWVkaWNhdGlvblJlcXVlc3Q6ICJNb2RlcmF0ZSBJbnRlbnNpdHkgU3RhdGluIFRoZXJhcHkiXQogICAgdW5pb24gW01lZGljYXRpb25SZXF1ZXN0OiAiSGlnaCBJbnRlbnNpdHkgU3RhdGluIFRoZXJhcHkiXSApIFN0YXRpblJlcXVlc3QKICAgIHdoZXJlIFN0YXRpblJlcXVlc3QuYXV0aG9yZWRPbiBkdXJpbmcgZGF5IG9mICJNZWFzdXJlbWVudCBQZXJpb2QiCiAgICAgIGFuZCBTdGF0aW5SZXF1ZXN0LnN0YXR1cyBpbiB7ICdhY3RpdmUnLCAnY29tcGxldGVkJyB9CiAgICAgIGFuZCBTdGF0aW5SZXF1ZXN0LmludGVudCBpbiB7ICdvcmRlcicsICdvcmlnaW5hbC1vcmRlcicsICdyZWZsZXgtb3JkZXInLCAnZmlsdGVyLW9yZGVyJywgJ2luc3RhbmNlLW9yZGVyJyB9CgpkZWZpbmUgIlRlbiBZZWFyIENWRCBSaXNrIGlzIEhpZ2giOgogIGV4aXN0cyAoICggW09ic2VydmF0aW9uU2NyZWVuaW5nQXNzZXNzbWVudDogIkNhcmRpb3Zhc2N1bGFyIGRpc2Vhc2UgMTBZIHJpc2sgW0xpa2VsaWhvb2RdIl0KICAgICAgdW5pb24gW09ic2VydmF0aW9uU2NyZWVuaW5nQXNzZXNzbWVudDogIkNhcmRpb3Zhc2N1bGFyIGRpc2Vhc2UgMTBZIHJpc2sgW0xpa2VsaWhvb2RdIEFDQy1BSEEgUG9vbGVkIENvaG9ydCBieSBHb2ZmIDIwMTMiXSApIEF0Umlza0NWRAogICAgICB3aGVyZSBBdFJpc2tDVkQudmFsdWUgYXMgUXVhbnRpdHkgPj0gMjAgJyUnCiAgICAgICAgYW5kIEF0Umlza0NWRC5lZmZlY3RpdmUudG9JbnRlcnZhbCAoICkgZHVyaW5nIGRheSBvZiAiTWVhc3VyZW1lbnQgUGVyaW9kIgogICAgICAgIGFuZCBBdFJpc2tDVkQuc3RhdHVzIGluIHsgJ2ZpbmFsJywgJ2FtZW5kZWQnLCAnY29ycmVjdGVkJyB9CiAgKQoKZGVmaW5lIGZsdWVudCBmdW5jdGlvbiBpc1ZlcmlmaWVkKGNvbmRpdGlvbiBDaG9pY2U8Q29uZGl0aW9uRW5jb3VudGVyRGlhZ25vc2lzLCBDb25kaXRpb25Qcm9ibGVtc0hlYWx0aENvbmNlcm5zPik6CiAgY29uZGl0aW9uLnZlcmlmaWNhdGlvblN0YXR1cyBpcyBub3QgbnVsbCBpbXBsaWVzICggY29uZGl0aW9uLnZlcmlmaWNhdGlvblN0YXR1cyB+IFN0YXR1cy4iY29uZmlybWVkIgogICAgICBvciBjb25kaXRpb24udmVyaWZpY2F0aW9uU3RhdHVzIH4gU3RhdHVzLiJ1bmNvbmZpcm1lZCIKICAgICAgb3IgY29uZGl0aW9uLnZlcmlmaWNhdGlvblN0YXR1cyB+IFN0YXR1cy4icHJvdmlzaW9uYWwiCiAgICAgIG9yIGNvbmRpdGlvbi52ZXJpZmljYXRpb25TdGF0dXMgfiBTdGF0dXMuImRpZmZlcmVudGlhbCIKICApCgpkZWZpbmUgIlNERSBFdGhuaWNpdHkiOgogIFNERS4iU0RFIEV0aG5pY2l0eSIKCmRlZmluZSAiU0RFIFBheWVyIjoKICBTREUuIlNERSBQYXllciIKCmRlZmluZSAiU0RFIFJhY2UiOgogIFNERS4iU0RFIFJhY2UiCgpkZWZpbmUgIlNERSBTZXgiOgogIFNERS4iU0RFIFNleCI="/>
<url
value="https://madie.cms.gov/Library-CMS347FHIRStatinPreventionTxCVD.cql"/>
</content>
</Library>